{"version":3,"file":"userregistration.js","mappings":";CAAA,SAA2CA,EAAMC,GAChD,GAAsB,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,SAAUA,QAAQ,mBAC/C,GAAqB,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,CAAC,QAAS,aAAcJ,OAC3B,CACJ,IAAIM,EAAuB,iBAAZL,QAAuBD,EAAQG,QAAQ,SAAUA,QAAQ,cAAgBH,EAAQD,EAAY,MAAGA,EAAe,UAC9H,IAAI,IAAIQ,KAAKD,GAAuB,iBAAZL,QAAuBA,QAAUF,GAAMQ,GAAKD,EAAEC,IAPxE,CASGC,MAAM,SAASC,EAAkCC,GACpD,uCCTA,IAAIC,EAAQ,eACRC,EAAgB,IAAIC,OAAOF,EAAO,MAClCG,EAAe,IAAID,OAAO,IAAMF,EAAQ,KAAM,MAElD,SAASI,EAAiBC,EAAYC,GACrC,IAEC,OAAOC,mBAAmBF,EAAWG,KAAK,KACzC,MAAOC,IAIT,GAA0B,IAAtBJ,EAAWK,OACd,OAAOL,EAGRC,EAAQA,GAAS,EAGjB,IAAIK,EAAON,EAAWO,MAAM,EAAGN,GAC3BO,EAAQR,EAAWO,MAAMN,GAE7B,OAAOQ,MAAMC,UAAUC,OAAOC,KAAK,GAAIb,EAAiBO,GAAOP,EAAiBS,IAGjF,SAASK,EAAOC,GACf,IACC,OAAOZ,mBAAmBY,GACzB,MAAOV,GAGR,IAFA,IAAIW,EAASD,EAAME,MAAMpB,GAEhBL,EAAI,EAAGA,EAAIwB,EAAOV,OAAQd,IAGlCwB,GAFAD,EAAQf,EAAiBgB,EAAQxB,GAAGY,KAAK,KAE1Ba,MAAMpB,GAGtB,OAAOkB,GAyCT5B,EAAOD,QAAU,SAAUgC,GAC1B,GAA0B,iBAAfA,EACV,MAAM,IAAIC,UAAU,6DAA+DD,EAAa,KAGjG,IAIC,OAHAA,EAAaA,EAAWE,QAAQ,MAAO,KAGhCjB,mBAAmBe,GACzB,MAAOb,GAER,OAjDF,SAAkCU,GAQjC,IANA,IAAIM,EAAa,CAChB,SAAU,KACV,SAAU,MAGPJ,EAAQlB,EAAauB,KAAKP,GACvBE,GAAO,CACb,IAECI,EAAWJ,EAAM,IAAMd,mBAAmBc,EAAM,IAC/C,MAAOZ,GACR,IAAIkB,EAAST,EAAOG,EAAM,IAEtBM,IAAWN,EAAM,KACpBI,EAAWJ,EAAM,IAAMM,GAIzBN,EAAQlB,EAAauB,KAAKP,GAI3BM,EAAW,OAAS,IAIpB,IAFA,IAAIG,EAAUC,OAAOC,KAAKL,GAEjB7B,EAAI,EAAGA,EAAIgC,EAAQlB,OAAQd,IAAK,CAExC,IAAImC,EAAMH,EAAQhC,GAClBuB,EAAQA,EAAMK,QAAQ,IAAItB,OAAO6B,EAAK,KAAMN,EAAWM,IAGxD,OAAOZ,EAeCa,CAAyBV,2BC1FlC/B,EAAOD,QAAU,SAAU2C,EAAKC,GAK/B,IAJA,IAAIC,EAAM,GACNL,EAAOD,OAAOC,KAAKG,GACnBG,EAAQtB,MAAMuB,QAAQH,GAEjBtC,EAAI,EAAGA,EAAIkC,EAAKpB,OAAQd,IAAK,CACrC,IAAImC,EAAMD,EAAKlC,GACX0C,EAAML,EAAIF,IAEVK,GAAoC,IAA5BF,EAAUK,QAAQR,GAAcG,EAAUH,EAAKO,EAAKL,MAC/DE,EAAIJ,GAAOO,GAIb,OAAOH,+BCbR,IAAIK,EAAU,EAAQ,KAMlBC,EAAgB,CAClBC,mBAAmB,EACnBC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,aAAa,EACbC,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRC,WAAW,EACXC,MAAM,GAEJC,EAAgB,CAClBC,MAAM,EACN5C,QAAQ,EACRK,WAAW,EACXwC,QAAQ,EACRC,QAAQ,EACRC,WAAW,EACXC,OAAO,GASLC,EAAe,CACjB,UAAY,EACZC,SAAS,EACTf,cAAc,EACdC,aAAa,EACbK,WAAW,EACXC,MAAM,GAEJS,EAAe,GAInB,SAASC,EAAWC,GAElB,OAAIvB,EAAQwB,OAAOD,GACVJ,EAIFE,EAAaE,EAAoB,WAAMtB,EAVhDoB,EAAarB,EAAQyB,YAhBK,CACxB,UAAY,EACZC,QAAQ,EACRrB,cAAc,EACdC,aAAa,EACbK,WAAW,GAYbU,EAAarB,EAAQ2B,MAAQR,EAY7B,IAAIS,EAAiBvC,OAAOuC,eACxBC,EAAsBxC,OAAOwC,oBAC7BC,EAAwBzC,OAAOyC,sBAC/BC,EAA2B1C,OAAO0C,yBAClCC,EAAiB3C,OAAO2C,eACxBC,EAAkB5C,OAAOd,UAsC7BxB,EAAOD,QArCP,SAASoF,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,iBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqBN,EAAeI,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,GAI9D,IAAI/C,EAAOuC,EAAoBO,GAE3BN,IACFxC,EAAOA,EAAKd,OAAOsD,EAAsBM,KAM3C,IAHA,IAAIG,EAAgBjB,EAAWa,GAC3BK,EAAgBlB,EAAWc,GAEtBhF,EAAI,EAAGA,EAAIkC,EAAKpB,SAAUd,EAAG,CACpC,IAAImC,EAAMD,EAAKlC,GAEf,KAAKyD,EAActB,IAAU8C,GAAaA,EAAU9C,IAAWiD,GAAiBA,EAAcjD,IAAWgD,GAAiBA,EAAchD,IAAO,CAC7I,IAAIkD,EAAaV,EAAyBK,EAAiB7C,GAE3D,IAEEqC,EAAeO,EAAiB5C,EAAKkD,GACrC,MAAOC,OAKf,OAAOP,YCnGTpF,EAAOD,QAAUwB,MAAMuB,SAAW,SAAU8C,GAC1C,MAA8C,kBAAvCtD,OAAOd,UAAUqE,SAASnE,KAAKkE,mBCDxC,IAAIE,EAAU,EAAQ,KAKtB9F,EAAOD,QAmZP,SAASgG,EAAcC,EAAMzD,EAAM0D,GAQjC,OAPKH,EAAQvD,KACX0D,EAAkC1D,GAAQ0D,EAC1C1D,EAAO,IAGT0D,EAAUA,GAAW,GAEjBD,aAAgBrF,OAlJtB,SAAyBqF,EAAMzD,GAE7B,IAAI2D,EAASF,EAAKG,OAAOrE,MAAM,aAE/B,GAAIoE,EACF,IAAK,IAAI7F,EAAI,EAAGA,EAAI6F,EAAO/E,OAAQd,IACjCkC,EAAK6D,KAAK,CACRrC,KAAM1D,EACNgG,OAAQ,KACRC,UAAW,KACXC,UAAU,EACVC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,QAAS,OAKf,OAAOC,EAAWZ,EAAMzD,GAgIfsE,CAAeb,EAA4B,GAGhDF,EAAQE,GAxHd,SAAwBA,EAAMzD,EAAM0D,GAGlC,IAFA,IAAIa,EAAQ,GAEHzG,EAAI,EAAGA,EAAI2F,EAAK7E,OAAQd,IAC/ByG,EAAMV,KAAKL,EAAaC,EAAK3F,GAAIkC,EAAM0D,GAASE,QAKlD,OAAOS,EAFM,IAAIjG,OAAO,MAAQmG,EAAM7F,KAAK,KAAO,IAAK8F,EAAMd,IAEnC1D,GAgHjByE,CAAoC,EAA8B,EAAQf,GArGrF,SAAyBD,EAAMzD,EAAM0D,GACnC,OAAOgB,EAAeC,EAAMlB,EAAMC,GAAU1D,EAAM0D,GAuG3CkB,CAAqC,EAA8B,EAAQlB,IAlapFjG,EAAOD,QAAQmH,MAAQA,EACvBlH,EAAOD,QAAQqH,QAsGf,SAAkBC,EAAKpB,GACrB,OAAOqB,EAAiBJ,EAAMG,EAAKpB,GAAUA,IAtG/CjG,EAAOD,QAAQuH,iBAAmBA,EAClCtH,EAAOD,QAAQkH,eAAiBA,EAOhC,IAAIM,EAAc,IAAI5G,OAAO,CAG3B,UAOA,0GACAM,KAAK,KAAM,KASb,SAASiG,EAAOG,EAAKpB,GAQnB,IAPA,IAKIuB,EALA3F,EAAS,GACTW,EAAM,EACNiF,EAAQ,EACRzB,EAAO,GACP0B,EAAmBzB,GAAWA,EAAQK,WAAa,IAGf,OAAhCkB,EAAMD,EAAYpF,KAAKkF,KAAe,CAC5C,IAAIM,EAAIH,EAAI,GACRI,EAAUJ,EAAI,GACdK,EAASL,EAAIC,MAKjB,GAJAzB,GAAQqB,EAAIhG,MAAMoG,EAAOI,GACzBJ,EAAQI,EAASF,EAAExG,OAGfyG,EACF5B,GAAQ4B,EAAQ,OADlB,CAKA,IAAIE,EAAOT,EAAII,GACXpB,EAASmB,EAAI,GACbzD,EAAOyD,EAAI,GACXO,EAAUP,EAAI,GACdQ,EAAQR,EAAI,GACZS,EAAWT,EAAI,GACfd,EAAWc,EAAI,GAGfxB,IACFnE,EAAOuE,KAAKJ,GACZA,EAAO,IAGT,IAAIS,EAAoB,MAAVJ,GAA0B,MAARyB,GAAgBA,IAASzB,EACrDG,EAAsB,MAAbyB,GAAiC,MAAbA,EAC7B1B,EAAwB,MAAb0B,GAAiC,MAAbA,EAC/B3B,EAAYkB,EAAI,IAAME,EACtBf,EAAUoB,GAAWC,EAEzBnG,EAAOuE,KAAK,CACVrC,KAAMA,GAAQvB,IACd6D,OAAQA,GAAU,GAClBC,UAAWA,EACXC,SAAUA,EACVC,OAAQA,EACRC,QAASA,EACTC,WAAYA,EACZC,QAASA,EAAUuB,EAAYvB,GAAYD,EAAW,KAAO,KAAOyB,EAAa7B,GAAa,SAclG,OATImB,EAAQJ,EAAIlG,SACd6E,GAAQqB,EAAIe,OAAOX,IAIjBzB,GACFnE,EAAOuE,KAAKJ,GAGPnE,EAoBT,SAASwG,EAA0BhB,GACjC,OAAOiB,UAAUjB,GAAKpF,QAAQ,WAAW,SAAUsG,GACjD,MAAO,IAAMA,EAAEC,WAAW,GAAG3C,SAAS,IAAI4C,iBAmB9C,SAASnB,EAAkBzF,EAAQoE,GAKjC,IAHA,IAAIyC,EAAU,IAAInH,MAAMM,EAAOV,QAGtBd,EAAI,EAAGA,EAAIwB,EAAOV,OAAQd,IACR,iBAAdwB,EAAOxB,KAChBqI,EAAQrI,GAAK,IAAIM,OAAO,OAASkB,EAAOxB,GAAGsG,QAAU,KAAMI,EAAMd,KAIrE,OAAO,SAAUvD,EAAKiG,GAMpB,IALA,IAAI3C,EAAO,GACP4C,EAAOlG,GAAO,GAEdmG,GADUF,GAAQ,IACDG,OAAST,EAA2BU,mBAEhD1I,EAAI,EAAGA,EAAIwB,EAAOV,OAAQd,IAAK,CACtC,IAAII,EAAQoB,EAAOxB,GAEnB,GAAqB,iBAAVI,EAAX,CAMA,IACIuI,EADAC,EAAQL,EAAKnI,EAAMsD,MAGvB,GAAa,MAATkF,EAAe,CACjB,GAAIxI,EAAM8F,SAAU,CAEd9F,EAAMgG,UACRT,GAAQvF,EAAM4F,QAGhB,SAEA,MAAM,IAAIrE,UAAU,aAAevB,EAAMsD,KAAO,mBAIpD,GAAI+B,EAAQmD,GAAZ,CACE,IAAKxI,EAAM+F,OACT,MAAM,IAAIxE,UAAU,aAAevB,EAAMsD,KAAO,kCAAoCmF,KAAKC,UAAUF,GAAS,KAG9G,GAAqB,IAAjBA,EAAM9H,OAAc,CACtB,GAAIV,EAAM8F,SACR,SAEA,MAAM,IAAIvE,UAAU,aAAevB,EAAMsD,KAAO,qBAIpD,IAAK,IAAIqF,EAAI,EAAGA,EAAIH,EAAM9H,OAAQiI,IAAK,CAGrC,GAFAJ,EAAUH,EAAOI,EAAMG,KAElBV,EAAQrI,GAAGgJ,KAAKL,GACnB,MAAM,IAAIhH,UAAU,iBAAmBvB,EAAMsD,KAAO,eAAiBtD,EAAMkG,QAAU,oBAAsBuC,KAAKC,UAAUH,GAAW,KAGvIhD,IAAe,IAANoD,EAAU3I,EAAM4F,OAAS5F,EAAM6F,WAAa0C,OApBzD,CA4BA,GAFAA,EAAUvI,EAAMiG,SA5Eb4B,UA4EuCW,GA5ExBhH,QAAQ,SAAS,SAAUsG,GAC/C,MAAO,IAAMA,EAAEC,WAAW,GAAG3C,SAAS,IAAI4C,iBA2EWI,EAAOI,IAErDP,EAAQrI,GAAGgJ,KAAKL,GACnB,MAAM,IAAIhH,UAAU,aAAevB,EAAMsD,KAAO,eAAiBtD,EAAMkG,QAAU,oBAAsBqC,EAAU,KAGnHhD,GAAQvF,EAAM4F,OAAS2C,QArDrBhD,GAAQvF,EAwDZ,OAAOuF,GAUX,SAASmC,EAAcd,GACrB,OAAOA,EAAIpF,QAAQ,6BAA8B,QASnD,SAASiG,EAAaF,GACpB,OAAOA,EAAM/F,QAAQ,gBAAiB,QAUxC,SAAS2E,EAAY0C,EAAI/G,GAEvB,OADA+G,EAAG/G,KAAOA,EACH+G,EAST,SAASvC,EAAOd,GACd,OAAOA,GAAWA,EAAQsD,UAAY,GAAK,IAwE7C,SAAStC,EAAgBpF,EAAQU,EAAM0D,GAChCH,EAAQvD,KACX0D,EAAkC1D,GAAQ0D,EAC1C1D,EAAO,IAUT,IALA,IAAIiH,GAFJvD,EAAUA,GAAW,IAEAuD,OACjBC,GAAsB,IAAhBxD,EAAQwD,IACdC,EAAQ,GAGHrJ,EAAI,EAAGA,EAAIwB,EAAOV,OAAQd,IAAK,CACtC,IAAII,EAAQoB,EAAOxB,GAEnB,GAAqB,iBAAVI,EACTiJ,GAASvB,EAAa1H,OACjB,CACL,IAAI4F,EAAS8B,EAAa1H,EAAM4F,QAC5B0B,EAAU,MAAQtH,EAAMkG,QAAU,IAEtCpE,EAAK6D,KAAK3F,GAENA,EAAM+F,SACRuB,GAAW,MAAQ1B,EAAS0B,EAAU,MAaxC2B,GANI3B,EAJAtH,EAAM8F,SACH9F,EAAMgG,QAGCJ,EAAS,IAAM0B,EAAU,KAFzB,MAAQ1B,EAAS,IAAM0B,EAAU,MAKnC1B,EAAS,IAAM0B,EAAU,KAOzC,IAAIzB,EAAY6B,EAAalC,EAAQK,WAAa,KAC9CqD,EAAoBD,EAAMrI,OAAOiF,EAAUnF,UAAYmF,EAkB3D,OAZKkD,IACHE,GAASC,EAAoBD,EAAMrI,MAAM,GAAIiF,EAAUnF,QAAUuI,GAAS,MAAQpD,EAAY,WAI9FoD,GADED,EACO,IAIAD,GAAUG,EAAoB,GAAK,MAAQrD,EAAY,MAG3DM,EAAW,IAAIjG,OAAO,IAAM+I,EAAO3C,EAAMd,IAAW1D,gCChY7D,IAAIqH,EAAuB,EAAQ,KAEnC,SAASC,KACT,SAASC,KACTA,EAAuBC,kBAAoBF,EAE3C7J,EAAOD,QAAU,WACf,SAASiK,EAAKC,EAAOC,EAAUC,EAAeC,EAAUC,EAAcC,GACpE,GAAIA,IAAWV,EAAf,CAIA,IAAI1I,EAAM,IAAIqJ,MACZ,mLAKF,MADArJ,EAAI6C,KAAO,sBACL7C,GAGR,SAASsJ,IACP,OAAOR,EAFTA,EAAKS,WAAaT,EAMlB,IAAIU,EAAiB,CACnBC,MAAOX,EACPY,OAAQZ,EACRa,KAAMb,EACNc,KAAMd,EACNe,OAAQf,EACRgB,OAAQhB,EACRiB,OAAQjB,EACRkB,OAAQlB,EAERmB,IAAKnB,EACLoB,QAASZ,EACTa,QAASrB,EACTsB,YAAatB,EACbuB,WAAYf,EACZgB,KAAMxB,EACNyB,SAAUjB,EACVkB,MAAOlB,EACPmB,UAAWnB,EACXoB,MAAOpB,EACPqB,MAAOrB,EAEPsB,eAAgBhC,EAChBC,kBAAmBF,GAKrB,OAFAa,EAAeqB,UAAYrB,EAEpBA,kBC9CP1K,EAAOD,QAAU,EAAQ,IAAR,yBCNnBC,EAAOD,QAFoB,2ECR3B,MAAMiM,EAAkB,EAAQ,KAC1BC,EAAkB,EAAQ,IAC1BC,EAAe,EAAQ,KACvBC,EAAe,EAAQ,KA4I7B,SAASC,EAA6BnD,GACrC,GAAqB,iBAAVA,GAAuC,IAAjBA,EAAM9H,OACtC,MAAM,IAAIa,UAAU,wDAItB,SAAS6G,EAAOI,EAAOhD,GACtB,OAAIA,EAAQ4C,OACJ5C,EAAQuD,OAASwC,EAAgB/C,GAASF,mBAAmBE,GAG9DA,EAGR,SAAStH,EAAOsH,EAAOhD,GACtB,OAAIA,EAAQtE,OACJsK,EAAgBhD,GAGjBA,EAGR,SAASoD,EAAWzK,GACnB,OAAIL,MAAMuB,QAAQlB,GACVA,EAAM0K,OAGO,iBAAV1K,EACHyK,EAAW/J,OAAOC,KAAKX,IAC5B0K,MAAK,CAAClM,EAAGmM,IAAMC,OAAOpM,GAAKoM,OAAOD,KAClCE,KAAIjK,GAAOZ,EAAMY,KAGbZ,EAGR,SAAS8K,EAAW9K,GACnB,MAAM+K,EAAY/K,EAAMoB,QAAQ,KAKhC,OAJmB,IAAf2J,IACH/K,EAAQA,EAAMP,MAAM,EAAGsL,IAGjB/K,EAaR,SAASgL,EAAQhL,GAEhB,MAAMiL,GADNjL,EAAQ8K,EAAW9K,IACMoB,QAAQ,KACjC,OAAoB,IAAhB6J,EACI,GAGDjL,EAAMP,MAAMwL,EAAa,GAGjC,SAASC,EAAW7D,EAAOhD,GAO1B,OANIA,EAAQ8G,eAAiBP,OAAOQ,MAAMR,OAAOvD,KAA6B,iBAAVA,GAAuC,KAAjBA,EAAMgE,OAC/FhE,EAAQuD,OAAOvD,IACLhD,EAAQiH,eAA2B,OAAVjE,GAA2C,SAAxBA,EAAMkE,eAAoD,UAAxBlE,EAAMkE,gBAC9FlE,EAAgC,SAAxBA,EAAMkE,eAGRlE,EAGR,SAAS/B,EAAMkG,EAAOnH,GAUrBmG,GATAnG,EAAU3D,OAAO+K,OAAO,CACvB1L,QAAQ,EACR2K,MAAM,EACNgB,YAAa,OACbC,qBAAsB,IACtBR,cAAc,EACdG,eAAe,GACbjH,IAEkCsH,sBAErC,MAAMC,EArJP,SAA8BvH,GAC7B,IAAI7D,EAEJ,OAAQ6D,EAAQqH,aACf,IAAK,QACJ,MAAO,CAAC9K,EAAKyG,EAAOwE,KACnBrL,EAAS,aAAaD,KAAKK,GAE3BA,EAAMA,EAAIP,QAAQ,WAAY,IAEzBG,QAKoBsL,IAArBD,EAAYjL,KACfiL,EAAYjL,GAAO,IAGpBiL,EAAYjL,GAAKJ,EAAO,IAAM6G,GAR7BwE,EAAYjL,GAAOyG,GAWtB,IAAK,UACJ,MAAO,CAACzG,EAAKyG,EAAOwE,KACnBrL,EAAS,UAAUD,KAAKK,GACxBA,EAAMA,EAAIP,QAAQ,QAAS,IAEtBG,OAKoBsL,IAArBD,EAAYjL,GAKhBiL,EAAYjL,GAAO,GAAGf,OAAOgM,EAAYjL,GAAMyG,GAJ9CwE,EAAYjL,GAAO,CAACyG,GALpBwE,EAAYjL,GAAOyG,GAYtB,IAAK,QACL,IAAK,YACJ,MAAO,CAACzG,EAAKyG,EAAOwE,KACnB,MAAM3K,EAA2B,iBAAVmG,GAAsBA,EAAM0E,SAAS1H,EAAQsH,sBAC9DK,EAAmC,iBAAV3E,IAAuBnG,GAAWnB,EAAOsH,EAAOhD,GAAS0H,SAAS1H,EAAQsH,sBACzGtE,EAAQ2E,EAAiBjM,EAAOsH,EAAOhD,GAAWgD,EAClD,MAAM4E,EAAW/K,GAAW8K,EAAiB3E,EAAMlI,MAAMkF,EAAQsH,sBAAsBd,KAAIqB,GAAQnM,EAAOmM,EAAM7H,KAAsB,OAAVgD,EAAiBA,EAAQtH,EAAOsH,EAAOhD,GACnKwH,EAAYjL,GAAOqL,GAGrB,QACC,MAAO,CAACrL,EAAKyG,EAAOwE,UACMC,IAArBD,EAAYjL,GAKhBiL,EAAYjL,GAAO,GAAGf,OAAOgM,EAAYjL,GAAMyG,GAJ9CwE,EAAYjL,GAAOyG,IAgGL8E,CAAqB9H,GAGjCrD,EAAMN,OAAO0L,OAAO,MAE1B,GAAqB,iBAAVZ,EACV,OAAOxK,EAKR,KAFAwK,EAAQA,EAAMH,OAAOhL,QAAQ,SAAU,KAGtC,OAAOW,EAGR,IAAK,MAAMqL,KAASb,EAAMrM,MAAM,KAAM,CACrC,GAAc,KAAVkN,EACH,SAGD,IAAKzL,EAAKyG,GAASiD,EAAajG,EAAQtE,OAASsM,EAAMhM,QAAQ,MAAO,KAAOgM,EAAO,KAIpFhF,OAAkByE,IAAVzE,EAAsB,KAAO,CAAC,QAAS,aAAa0E,SAAS1H,EAAQqH,aAAerE,EAAQtH,EAAOsH,EAAOhD,GAClHuH,EAAU7L,EAAOa,EAAKyD,GAAUgD,EAAOrG,GAGxC,IAAK,MAAMJ,KAAOF,OAAOC,KAAKK,GAAM,CACnC,MAAMqG,EAAQrG,EAAIJ,GAClB,GAAqB,iBAAVyG,GAAgC,OAAVA,EAChC,IAAK,MAAMiF,KAAK5L,OAAOC,KAAK0G,GAC3BA,EAAMiF,GAAKpB,EAAW7D,EAAMiF,GAAIjI,QAGjCrD,EAAIJ,GAAOsK,EAAW7D,EAAOhD,GAI/B,OAAqB,IAAjBA,EAAQqG,KACJ1J,IAGiB,IAAjBqD,EAAQqG,KAAgBhK,OAAOC,KAAKK,GAAK0J,OAAShK,OAAOC,KAAKK,GAAK0J,KAAKrG,EAAQqG,OAAO6B,QAAO,CAAC/L,EAAQI,KAC9G,MAAMyG,EAAQrG,EAAIJ,GAQlB,OAPI4L,QAAQnF,IAA2B,iBAAVA,IAAuB1H,MAAMuB,QAAQmG,GAEjE7G,EAAOI,GAAO6J,EAAWpD,GAEzB7G,EAAOI,GAAOyG,EAGR7G,IACLE,OAAO0L,OAAO,OAGlBjO,EAAQ6M,QAAUA,EAClB7M,EAAQmH,MAAQA,EAEhBnH,EAAQoJ,UAAY,CAAC6B,EAAQ/E,KAC5B,IAAK+E,EACJ,MAAO,GAURoB,GAPAnG,EAAU3D,OAAO+K,OAAO,CACvBxE,QAAQ,EACRW,QAAQ,EACR8D,YAAa,OACbC,qBAAsB,KACpBtH,IAEkCsH,sBAErC,MAAMc,EAAe7L,GACnByD,EAAQqI,UA3SwBrF,MA2SM+B,EAAOxI,IAC7CyD,EAAQsI,iBAAmC,KAAhBvD,EAAOxI,GAG9BgL,EA7SP,SAA+BvH,GAC9B,OAAQA,EAAQqH,aACf,IAAK,QACJ,OAAO9K,GAAO,CAACJ,EAAQ6G,KACtB,MAAMxB,EAAQrF,EAAOjB,OAErB,YACWuM,IAAVzE,GACChD,EAAQqI,UAAsB,OAAVrF,GACpBhD,EAAQsI,iBAA6B,KAAVtF,EAErB7G,EAGM,OAAV6G,EACI,IAAI7G,EAAQ,CAACyG,EAAOrG,EAAKyD,GAAU,IAAKwB,EAAO,KAAKxG,KAAK,KAG1D,IACHmB,EACH,CAACyG,EAAOrG,EAAKyD,GAAU,IAAK4C,EAAOpB,EAAOxB,GAAU,KAAM4C,EAAOI,EAAOhD,IAAUhF,KAAK,MAI1F,IAAK,UACJ,OAAOuB,GAAO,CAACJ,EAAQ6G,SAEXyE,IAAVzE,GACChD,EAAQqI,UAAsB,OAAVrF,GACpBhD,EAAQsI,iBAA6B,KAAVtF,EAErB7G,EAGM,OAAV6G,EACI,IAAI7G,EAAQ,CAACyG,EAAOrG,EAAKyD,GAAU,MAAMhF,KAAK,KAG/C,IAAImB,EAAQ,CAACyG,EAAOrG,EAAKyD,GAAU,MAAO4C,EAAOI,EAAOhD,IAAUhF,KAAK,KAGhF,IAAK,QACL,IAAK,YACJ,OAAOuB,GAAO,CAACJ,EAAQ6G,IAClBA,MAAAA,GAA0D,IAAjBA,EAAM9H,OAC3CiB,EAGc,IAAlBA,EAAOjB,OACH,CAAC,CAAC0H,EAAOrG,EAAKyD,GAAU,IAAK4C,EAAOI,EAAOhD,IAAUhF,KAAK,KAG3D,CAAC,CAACmB,EAAQyG,EAAOI,EAAOhD,IAAUhF,KAAKgF,EAAQsH,uBAGxD,QACC,OAAO/K,GAAO,CAACJ,EAAQ6G,SAEXyE,IAAVzE,GACChD,EAAQqI,UAAsB,OAAVrF,GACpBhD,EAAQsI,iBAA6B,KAAVtF,EAErB7G,EAGM,OAAV6G,EACI,IAAI7G,EAAQyG,EAAOrG,EAAKyD,IAGzB,IAAI7D,EAAQ,CAACyG,EAAOrG,EAAKyD,GAAU,IAAK4C,EAAOI,EAAOhD,IAAUhF,KAAK,MAwO7DuN,CAAsBvI,GAElCwI,EAAa,GAEnB,IAAK,MAAMjM,KAAOF,OAAOC,KAAKyI,GACxBqD,EAAa7L,KACjBiM,EAAWjM,GAAOwI,EAAOxI,IAI3B,MAAMD,EAAOD,OAAOC,KAAKkM,GAMzB,OAJqB,IAAjBxI,EAAQqG,MACX/J,EAAK+J,KAAKrG,EAAQqG,MAGZ/J,EAAKkK,KAAIjK,IACf,MAAMyG,EAAQ+B,EAAOxI,GAErB,YAAckL,IAAVzE,EACI,GAGM,OAAVA,EACIJ,EAAOrG,EAAKyD,GAGhB1E,MAAMuB,QAAQmG,GACVA,EACLkF,OAAOX,EAAUhL,GAAM,IACvBvB,KAAK,KAGD4H,EAAOrG,EAAKyD,GAAW,IAAM4C,EAAOI,EAAOhD,MAChDyI,QAAOC,GAAKA,EAAExN,OAAS,IAAGF,KAAK,MAGnClB,EAAQ6O,SAAW,CAACC,EAAK5I,KACxBA,EAAU3D,OAAO+K,OAAO,CACvB1L,QAAQ,GACNsE,GAEH,MAAO6I,EAAMC,GAAQ7C,EAAa2C,EAAK,KAEvC,OAAOvM,OAAO+K,OACb,CACCwB,IAAKC,EAAK/N,MAAM,KAAK,IAAM,GAC3BqM,MAAOlG,EAAM0F,EAAQiC,GAAM5I,IAE5BA,GAAWA,EAAQ+I,yBAA2BD,EAAO,CAACE,mBAAoBtN,EAAOoN,EAAM9I,IAAY,KAIrGlG,EAAQmP,aAAe,CAAClE,EAAQ/E,KAC/BA,EAAU3D,OAAO+K,OAAO,CACvBxE,QAAQ,EACRW,QAAQ,GACNvD,GAEH,MAAM4I,EAAMnC,EAAW1B,EAAO6D,KAAK9N,MAAM,KAAK,IAAM,GAC9CoO,EAAepP,EAAQ6M,QAAQ5B,EAAO6D,KACtCO,EAAqBrP,EAAQmH,MAAMiI,EAAc,CAAC7C,MAAM,IAExDc,EAAQ9K,OAAO+K,OAAO+B,EAAoBpE,EAAOoC,OACvD,IAAIiC,EAActP,EAAQoJ,UAAUiE,EAAOnH,GACvCoJ,IACHA,EAAc,IAAIA,KAGnB,IAAIN,EA7LL,SAAiBF,GAChB,IAAIE,EAAO,GACX,MAAMpC,EAAYkC,EAAI7L,QAAQ,KAK9B,OAJmB,IAAf2J,IACHoC,EAAOF,EAAIxN,MAAMsL,IAGXoC,EAsLIO,CAAQtE,EAAO6D,KAK1B,OAJI7D,EAAOiE,qBACVF,EAAO,IAAIlG,EAAOmC,EAAOiE,mBAAoBhJ,MAGvC,GAAG4I,IAAMQ,IAAcN,KAG/BhP,EAAQwP,KAAO,CAAC3N,EAAO8M,EAAQzI,KAC9BA,EAAU3D,OAAO+K,OAAO,CACvB2B,yBAAyB,GACvB/I,GAEH,MAAM,IAAC4I,EAAG,MAAEzB,EAAK,mBAAE6B,GAAsBlP,EAAQ6O,SAAShN,EAAOqE,GACjE,OAAOlG,EAAQmP,aAAa,CAC3BL,IAAAA,EACAzB,MAAOjB,EAAaiB,EAAOsB,GAC3BO,mBAAAA,GACEhJ,IAGJlG,EAAQyP,QAAU,CAAC5N,EAAO8M,EAAQzI,KACjC,MAAMwJ,EAAkBlO,MAAMuB,QAAQ4L,GAAUlM,IAAQkM,EAAOf,SAASnL,GAAO,CAACA,EAAKyG,KAAWyF,EAAOlM,EAAKyG,GAE5G,OAAOlJ,EAAQwP,KAAK3N,EAAO6N,EAAiBxJ,8BCzYhC,IAAIsG,EAAE,mBAAoBmD,QAAQA,OAAOC,IAAIpH,EAAEgE,EAAEmD,OAAOC,IAAI,iBAAiB,MAAMC,EAAErD,EAAEmD,OAAOC,IAAI,gBAAgB,MAAMhK,EAAE4G,EAAEmD,OAAOC,IAAI,kBAAkB,MAAME,EAAEtD,EAAEmD,OAAOC,IAAI,qBAAqB,MAAMG,EAAEvD,EAAEmD,OAAOC,IAAI,kBAAkB,MAAMI,EAAExD,EAAEmD,OAAOC,IAAI,kBAAkB,MAAMzB,EAAE3B,EAAEmD,OAAOC,IAAI,iBAAiB,MAAMK,EAAEzD,EAAEmD,OAAOC,IAAI,oBAAoB,MAAMhI,EAAE4E,EAAEmD,OAAOC,IAAI,yBAAyB,MAAMM,EAAE1D,EAAEmD,OAAOC,IAAI,qBAAqB,MAAMO,EAAE3D,EAAEmD,OAAOC,IAAI,kBAAkB,MAAMQ,EAAE5D,EACpfmD,OAAOC,IAAI,uBAAuB,MAAMS,EAAE7D,EAAEmD,OAAOC,IAAI,cAAc,MAAMU,EAAE9D,EAAEmD,OAAOC,IAAI,cAAc,MAAMW,EAAE/D,EAAEmD,OAAOC,IAAI,eAAe,MAAMY,EAAEhE,EAAEmD,OAAOC,IAAI,qBAAqB,MAAMhB,EAAEpC,EAAEmD,OAAOC,IAAI,mBAAmB,MAAMa,EAAEjE,EAAEmD,OAAOC,IAAI,eAAe,MAClQ,SAASc,EAAErQ,GAAG,GAAG,iBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIsQ,EAAEtQ,EAAEuQ,SAAS,OAAOD,GAAG,KAAKnI,EAAE,OAAOnI,EAAEA,EAAEyD,MAAQ,KAAKmM,EAAE,KAAKrI,EAAE,KAAKhC,EAAE,KAAKmK,EAAE,KAAKD,EAAE,KAAKK,EAAE,OAAO9P,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEuQ,UAAY,KAAKzC,EAAE,KAAK+B,EAAE,KAAKI,EAAE,KAAKD,EAAE,KAAKL,EAAE,OAAO3P,EAAE,QAAQ,OAAOsQ,GAAG,KAAKd,EAAE,OAAOc,IAAI,SAASE,EAAExQ,GAAG,OAAOqQ,EAAErQ,KAAKuH,EAAE5H,EAAQ8Q,UAAUb,EAAEjQ,EAAQ+Q,eAAenJ,EAAE5H,EAAQgR,gBAAgB7C,EAAEnO,EAAQiR,gBAAgBjB,EAAEhQ,EAAQkR,QAAQ1I,EAAExI,EAAQ2E,WAAWuL,EAAElQ,EAAQmR,SAASvL,EAAE5F,EAAQoR,KAAKd,EAAEtQ,EAAQ6E,KAAKwL,EAAErQ,EAAQqR,OAAOxB,EAChf7P,EAAQsR,SAASvB,EAAE/P,EAAQuR,WAAWzB,EAAE9P,EAAQwR,SAASrB,EAAEnQ,EAAQyR,YAAY,SAASpR,GAAG,OAAOwQ,EAAExQ,IAAIqQ,EAAErQ,KAAK4P,GAAGjQ,EAAQ0R,iBAAiBb,EAAE7Q,EAAQ2R,kBAAkB,SAAStR,GAAG,OAAOqQ,EAAErQ,KAAK8N,GAAGnO,EAAQ4R,kBAAkB,SAASvR,GAAG,OAAOqQ,EAAErQ,KAAK2P,GAAGhQ,EAAQ6R,UAAU,SAASxR,GAAG,MAAM,iBAAkBA,GAAG,OAAOA,GAAGA,EAAEuQ,WAAWpI,GAAGxI,EAAQ8R,aAAa,SAASzR,GAAG,OAAOqQ,EAAErQ,KAAK6P,GAAGlQ,EAAQ+R,WAAW,SAAS1R,GAAG,OAAOqQ,EAAErQ,KAAKuF,GAAG5F,EAAQgS,OAAO,SAAS3R,GAAG,OAAOqQ,EAAErQ,KAAKiQ,GACzdtQ,EAAQ0E,OAAO,SAASrE,GAAG,OAAOqQ,EAAErQ,KAAKgQ,GAAGrQ,EAAQiS,SAAS,SAAS5R,GAAG,OAAOqQ,EAAErQ,KAAKwP,GAAG7P,EAAQkS,WAAW,SAAS7R,GAAG,OAAOqQ,EAAErQ,KAAK0P,GAAG/P,EAAQmS,aAAa,SAAS9R,GAAG,OAAOqQ,EAAErQ,KAAKyP,GAAG9P,EAAQoS,WAAW,SAAS/R,GAAG,OAAOqQ,EAAErQ,KAAK8P,GACzOnQ,EAAQqS,mBAAmB,SAAShS,GAAG,MAAM,iBAAkBA,GAAG,mBAAoBA,GAAGA,IAAIuF,GAAGvF,IAAIuH,GAAGvH,IAAI0P,GAAG1P,IAAIyP,GAAGzP,IAAI8P,GAAG9P,IAAI+P,GAAG,iBAAkB/P,GAAG,OAAOA,IAAIA,EAAEuQ,WAAWN,GAAGjQ,EAAEuQ,WAAWP,GAAGhQ,EAAEuQ,WAAWZ,GAAG3P,EAAEuQ,WAAWzC,GAAG9N,EAAEuQ,WAAWV,GAAG7P,EAAEuQ,WAAWJ,GAAGnQ,EAAEuQ,WAAWhC,GAAGvO,EAAEuQ,WAAWH,GAAGpQ,EAAEuQ,WAAWL,IAAIvQ,EAAQsS,OAAO5B,8BCXjUzQ,EAAOD,QAAU,EAAjB,mCCKewM,EAAE,MAAMhE,EAAE,MAAMqH,EAAE,MAAMjK,EAAE,MAAMkK,EAAE,MAAMC,EAAE,MAAMC,EAAE,MAAM7B,EAAE,MAAM8B,EAAE,MAAMrI,EAAE,MAAMsI,EAAE,MAAMC,EAAE,MAC3G,GAAG,mBAAoBR,QAAQA,OAAOC,IAAI,CAAC,IAAIhB,EAAEe,OAAOC,IAAIpD,EAAEoC,EAAE,iBAAiBpG,EAAEoG,EAAE,gBAAgBiB,EAAEjB,EAAE,kBAAkBhJ,EAAEgJ,EAAE,qBAAqBkB,EAAElB,EAAE,kBAAkBmB,EAAEnB,EAAE,kBAAkBoB,EAAEpB,EAAE,iBAAiBT,EAAES,EAAE,qBAAqBqB,EAAErB,EAAE,kBAAkBhH,EAAEgH,EAAE,uBAAuBsB,EAAEtB,EAAE,cAAcuB,EAAEvB,EAAE,cAAgBA,EAAE,eAAiBA,EAAE,sBAAwBA,EAAE,qBAAuBA,EAAE,0BAA4BA,EAAE,uBAEjU5O,EAAQ2R,kBAAkB,SAAStR,GAAG,OADhJ,SAAWA,GAAG,GAAG,iBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIiQ,EAAEjQ,EAAEuQ,SAAS,OAAON,GAAG,KAAK9D,EAAE,OAAOnM,EAAEA,EAAEyD,MAAQ,KAAK+L,EAAE,KAAKC,EAAE,KAAKlK,EAAE,KAAKqK,EAAE,KAAKrI,EAAE,OAAOvH,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEuQ,UAAY,KAAKZ,EAAE,KAAK7B,EAAE,KAAKgC,EAAE,KAAKD,EAAE,KAAKH,EAAE,OAAO1P,EAAE,QAAQ,OAAOiQ,GAAG,KAAK9H,EAAE,OAAO8H,IACxGG,CAAEpQ,KAAK2P,+BCR5J/P,EAAOD,QAAU,EAAjB,2BCDFC,EAAOD,QAAU,CAACkL,EAAQqH,KACzB,GAAwB,iBAAXrH,GAA4C,iBAAdqH,EAC1C,MAAM,IAAItQ,UAAU,iDAGrB,GAAkB,KAAdsQ,EACH,MAAO,CAACrH,GAGT,MAAMsH,EAAiBtH,EAAOjI,QAAQsP,GAEtC,OAAwB,IAApBC,EACI,CAACtH,GAGF,CACNA,EAAO5J,MAAM,EAAGkR,GAChBtH,EAAO5J,MAAMkR,EAAiBD,EAAUnR,gCClB1CnB,EAAOD,QAAUsH,GAAO0B,mBAAmB1B,GAAKpF,QAAQ,YAAY0M,GAAK,IAAIA,EAAEnG,WAAW,GAAG3C,SAAS,IAAI4C,wCCD1GzI,EAAOD,QAAUQ,wBCAjBP,EAAOD,QAAUS,ICCbgS,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBhF,IAAjBiF,EACH,OAAOA,EAAa5S,QAGrB,IAAIC,EAASwS,EAAyBE,GAAY,CAGjD3S,QAAS,IAOV,OAHA6S,EAAoBF,GAAU1S,EAAQA,EAAOD,QAAS0S,GAG/CzS,EAAOD,QCpBf0S,EAAoBxC,EAAKjQ,IACxB,IAAI6S,EAAS7S,GAAUA,EAAO8S,WAC7B,IAAO9S,EAAiB,QACxB,IAAM,EAEP,OADAyS,EAAoB7C,EAAEiD,EAAQ,CAAEzS,EAAGyS,IAC5BA,GCLRJ,EAAoB7C,EAAI,CAAC7P,EAASgT,KACjC,IAAI,IAAIvQ,KAAOuQ,EACXN,EAAoBO,EAAED,EAAYvQ,KAASiQ,EAAoBO,EAAEjT,EAASyC,IAC5EF,OAAOuC,eAAe9E,EAASyC,EAAK,CAAEyQ,YAAY,EAAMC,IAAKH,EAAWvQ,MCJ3EiQ,EAAoB3C,EAAI,WACvB,GAA0B,iBAAfqD,WAAyB,OAAOA,WAC3C,IACC,OAAOC,MAAQ,IAAIC,SAAS,cAAb,GACd,MAAO1N,GACR,GAAsB,iBAAX2N,OAAqB,OAAOA,QALjB,GCAxBb,EAAoBO,EAAI,CAACtQ,EAAK6Q,IAAUjR,OAAOd,UAAUgS,eAAe9R,KAAKgB,EAAK6Q,GCClFd,EAAoBrC,EAAKrQ,IACH,oBAAX2P,QAA0BA,OAAO+D,aAC1CnR,OAAOuC,eAAe9E,EAAS2P,OAAO+D,YAAa,CAAExK,MAAO,WAE7D3G,OAAOuC,eAAe9E,EAAS,aAAc,CAAEkJ,OAAO,sFCJ5C,EAAiC,kBAAoB,MCI5DyK,EAJJ,SAA0BC,GACxBA,KASSC,EAAW,WACpB,OAAOF,GCwDLG,EAAgB,CAClBC,OAAQ,aACRZ,IAAK,WACH,MAAO,KAGJ,SAAS,EAAmBa,EAAOC,GACxC,IAAIC,EACAC,EAAYL,EAWhB,SAASM,IACHC,EAAaC,eACfD,EAAaC,gBAQjB,SAASC,IACFL,IACHA,EAAcD,EAAYA,EAAUO,aAAaJ,GAAuBJ,EAAMS,UAAUL,GACxFD,EAhGN,WACE,IAAIR,EAAQE,IACRa,EAAQ,KACRC,EAAO,KACX,MAAO,CACLC,MAAO,WACLF,EAAQ,KACRC,EAAO,MAETZ,OAAQ,WACNJ,GAAM,WAGJ,IAFA,IAAIkB,EAAWH,EAERG,GACLA,EAASjB,WACTiB,EAAWA,EAAS9M,SAI1BoL,IAAK,WAIH,IAHA,IAAIgB,EAAY,GACZU,EAAWH,EAERG,GACLV,EAAU9N,KAAKwO,GACfA,EAAWA,EAAS9M,KAGtB,OAAOoM,GAETM,UAAW,SAAmBb,GAC5B,IAAIkB,GAAe,EACfD,EAAWF,EAAO,CACpBf,SAAUA,EACV7L,KAAM,KACNgN,KAAMJ,GASR,OANIE,EAASE,KACXF,EAASE,KAAKhN,KAAO8M,EAErBH,EAAQG,EAGH,WACAC,GAA0B,OAAVJ,IACrBI,GAAe,EAEXD,EAAS9M,KACX8M,EAAS9M,KAAKgN,KAAOF,EAASE,KAE9BJ,EAAOE,EAASE,KAGdF,EAASE,KACXF,EAASE,KAAKhN,KAAO8M,EAAS9M,KAE9B2M,EAAQG,EAAS9M,SAuCTiN,IAahB,IAAIX,EAAe,CACjBG,aApCF,SAAsBK,GAEpB,OADAN,IACOJ,EAAUM,UAAUI,IAmC3BI,iBAhCF,WACEd,EAAUJ,UAgCVK,oBAAqBA,EACrBU,aAxBF,WACE,OAAOzG,QAAQ6F,IAwBfK,aAAcA,EACdW,eAfF,WACMhB,IACFA,IACAA,OAAcvG,EACdwG,EAAUS,QACVT,EAAYL,IAWdqB,aAAc,WACZ,OAAOhB,IAGX,OAAOE,ECnHF,IAAI,EAA8C,oBAAXd,aAAqD,IAApBA,OAAO6B,eAAqE,IAAlC7B,OAAO6B,SAASC,cAAgC,EAAAC,gBAAkB,EAAAC,UC2C3L,QA9CA,SAAkBC,GAChB,IAAIxB,EAAQwB,EAAKxB,MACbyB,EAAUD,EAAKC,QACfC,EAAWF,EAAKE,SAChBC,GAAe,IAAAC,UAAQ,WACzB,IAAIvB,EAAe,EAAmBL,GAEtC,OADAK,EAAaC,cAAgBD,EAAaY,iBACnC,CACLjB,MAAOA,EACPK,aAAcA,KAEf,CAACL,IACA6B,GAAgB,IAAAD,UAAQ,WAC1B,OAAO5B,EAAM8B,aACZ,CAAC9B,IACJ,GAA0B,WACxB,IAAIK,EAAesB,EAAatB,aAOhC,OANAA,EAAaE,eAETsB,IAAkB7B,EAAM8B,YAC1BzB,EAAaY,mBAGR,WACLZ,EAAaa,iBACbb,EAAaC,cAAgB,QAE9B,CAACqB,EAAcE,IAClB,IAAIE,EAAUN,GAAW,EACzB,OAAoB,kBAAoBM,EAAQC,SAAU,CACxD9M,MAAOyM,GACND,ICrCU,SAAS,IAetB,OAdA,EAAWnT,OAAO+K,QAAU,SAAU2I,GACpC,IAAK,IAAI3V,EAAI,EAAGA,EAAI6D,UAAU/C,OAAQd,IAAK,CACzC,IAAI8F,EAASjC,UAAU7D,GAEvB,IAAK,IAAImC,KAAO2D,EACV7D,OAAOd,UAAUgS,eAAe9R,KAAKyE,EAAQ3D,KAC/CwT,EAAOxT,GAAO2D,EAAO3D,IAK3B,OAAOwT,GAGF,EAASC,MAAM7C,KAAMlP,WCff,SAAS,EAA8BiC,EAAQ+P,GAC5D,GAAc,MAAV/P,EAAgB,MAAO,GAC3B,IAEI3D,EAAKnC,EAFL2V,EAAS,GACTG,EAAa7T,OAAOC,KAAK4D,GAG7B,IAAK9F,EAAI,EAAGA,EAAI8V,EAAWhV,OAAQd,IACjCmC,EAAM2T,EAAW9V,GACb6V,EAASlT,QAAQR,IAAQ,IAC7BwT,EAAOxT,GAAO2D,EAAO3D,IAGvB,OAAOwT,iCCVLI,EAAY,CAAC,iBAAkB,aAAc,kBAAmB,2BAA4B,WAAY,UAAW,aAAc,WACjIC,EAAa,CAAC,0BAQdC,EAAc,GACdC,EAAwB,CAAC,KAAM,MAUnC,SAASC,EAAyBC,EAAOC,GACvC,IAAIC,EAAcF,EAAM,GACxB,MAAO,CAACC,EAAOE,QAASD,EAAc,GAGxC,SAASE,EAAkCC,EAAYC,EAAYC,GACjE,GAA0B,WACxB,OAAOF,EAAWb,WAAM,EAAQc,KAC/BC,GAGL,SAASC,EAAoBC,EAAkBC,EAAgBC,EAAmBC,EAAcC,EAAkBC,EAA2BvC,GAE3IkC,EAAiBM,QAAUH,EAC3BF,EAAeK,QAAUF,EACzBF,EAAkBI,SAAU,EAExBD,EAA0BC,UAC5BD,EAA0BC,QAAU,KACpCxC,KAIJ,SAASyC,EAAiBC,EAA0B3D,EAAOK,EAAcuD,EAAoBT,EAAkBC,EAAgBC,EAAmBG,EAA2BvC,EAAkB4C,GAE7L,GAAKF,EAAL,CAEA,IAAIG,GAAiB,EACjBC,EAAkB,KAElBC,EAAkB,WACpB,IAAIF,EAAJ,CAMA,IACIG,EAAeC,EADfC,EAAmBnE,EAAM8B,WAG7B,IAGEmC,EAAgBL,EAAmBO,EAAkBhB,EAAiBM,SACtE,MAAO7R,GACPsS,EAAQtS,EACRmS,EAAkBnS,EAGfsS,IACHH,EAAkB,MAIhBE,IAAkBb,EAAeK,QAC9BJ,EAAkBI,SACrBxC,KAOFmC,EAAeK,QAAUQ,EACzBT,EAA0BC,QAAUQ,EACpCZ,EAAkBI,SAAU,EAE5BI,EAA6B,CAC3B/T,KAAM,gBACN+S,QAAS,CACPqB,MAAOA,QA4Bf,OArBA7D,EAAaC,cAAgB0D,EAC7B3D,EAAaE,eAGbyD,IAEyB,WAKvB,GAJAF,GAAiB,EACjBzD,EAAaa,iBACbb,EAAaC,cAAgB,KAEzByD,EAMF,MAAMA,IAOZ,IAAIK,EAAmB,WACrB,MAAO,CAAC,KAAM,IAGD,SAASC,EAexBC,EACA9C,QACe,IAATA,IACFA,EAAO,IAGT,IAAI+C,EAAQ/C,EACRgD,EAAuBD,EAAME,eAC7BA,OAA0C,IAAzBD,EAAkC,SAAUxU,GAC/D,MAAO,mBAAqBA,EAAO,KACjCwU,EACAE,EAAmBH,EAAMI,WACzBA,OAAkC,IAArBD,EAA8B,kBAAoBA,EAC/DE,EAAwBL,EAAMM,gBAC9BA,OAA4C,IAA1BD,OAAmCjL,EAAYiL,EACjEE,EAAwBP,EAAMZ,yBAC9BA,OAAqD,IAA1BmB,GAA0CA,EACrEC,EAAiBR,EAAMS,SACvBA,OAA8B,IAAnBD,EAA4B,QAAUA,EAGjDE,GAFgBV,EAAMW,QAEHX,EAAMY,YACzBA,OAAkC,IAArBF,GAAsCA,EACnDG,EAAgBb,EAAM9C,QACtBA,OAA4B,IAAlB2D,EAA2B,EAAoBA,EACzDC,EAAiB,EAA8Bd,EAAOlC,GAkBtDN,EAAUN,EACd,OAAO,SAAyB6D,GAK9B,IAAIC,EAAuBD,EAAiB9V,aAAe8V,EAAiBtV,MAAQ,YAChFR,EAAciV,EAAec,GAE7BC,EAAyB,EAAS,GAAIH,EAAgB,CACxDZ,eAAgBA,EAChBE,WAAYA,EACZE,gBAAiBA,EACjBlB,yBAA0BA,EAC1BqB,SAAUA,EACVxV,YAAaA,EACb+V,qBAAsBA,EACtBD,iBAAkBA,IAGhBG,EAAOJ,EAAeI,KAStBC,EAAkBD,EAAO,EAAA7D,QAAU,SAAUhC,GAC/C,OAAOA,KAGT,SAAS+F,EAAgBzP,GACvB,IAAI0P,GAAW,IAAAhE,UAAQ,WAIrB,IAAIiE,EAAyB3P,EAAM2P,uBAC/BvC,EAAe,EAA8BpN,EAAOoM,GAExD,MAAO,CAACpM,EAAMuL,QAASoE,EAAwBvC,KAC9C,CAACpN,IACA4P,EAAeF,EAAS,GACxBC,EAAyBD,EAAS,GAClCtC,EAAesC,EAAS,GAExBG,GAAe,IAAAnE,UAAQ,WAGzB,OAAOkE,GAAgBA,EAAaE,WAAY,IAAArI,mBAAgC,kBAAoBmI,EAAaE,SAAU,OAASF,EAAe/D,IAClJ,CAAC+D,EAAc/D,IAEdJ,GAAe,IAAAsE,YAAWF,GAI1BG,EAAwB7L,QAAQnE,EAAM8J,QAAU3F,QAAQnE,EAAM8J,MAAM8B,WAAazH,QAAQnE,EAAM8J,MAAMmG,UAC3E9L,QAAQsH,IAAiBtH,QAAQsH,EAAa3B,OAO5E,IAAIA,EAAQkG,EAAwBhQ,EAAM8J,MAAQ2B,EAAa3B,MAC3D4D,GAAqB,IAAAhC,UAAQ,WAG/B,OA/CJ,SAA6B5B,GAC3B,OAAOsE,EAAgBtE,EAAMmG,SAAUX,GA8C9BY,CAAoBpG,KAC1B,CAACA,IAEAqG,GAAY,IAAAzE,UAAQ,WACtB,IAAK+B,EAA0B,OAAOnB,EAKtC,IAAInC,EAAe,EAAmBL,EAAOkG,EAAwB,KAAOvE,EAAatB,cASrFY,EAAmBZ,EAAaY,iBAAiBqF,KAAKjG,GAC1D,MAAO,CAACA,EAAcY,KACrB,CAACjB,EAAOkG,EAAuBvE,IAC9BtB,EAAegG,EAAU,GACzBpF,EAAmBoF,EAAU,GAI7BE,GAAyB,IAAA3E,UAAQ,WACnC,OAAIsE,EAIKvE,EAKF,EAAS,GAAIA,EAAc,CAChCtB,aAAcA,MAEf,CAAC6F,EAAuBvE,EAActB,IAGrCmG,GAAc,IAAAC,YAAWhE,EAA0BF,EAAa6B,GAEhEsC,EADeF,EAAY,GACc,GACzC3C,EAA+B2C,EAAY,GAG/C,GAAIE,GAA6BA,EAA0BxC,MACzD,MAAMwC,EAA0BxC,MAIlC,IAAId,GAAiB,IAAAuD,UACjBxD,GAAmB,IAAAwD,QAAOrD,GAC1BE,GAA4B,IAAAmD,UAC5BtD,GAAoB,IAAAsD,SAAO,GAC3BpD,EAAmBmC,GAAgB,WAOrC,OAAIlC,EAA0BC,SAAWH,IAAiBH,EAAiBM,QAClED,EAA0BC,QAO5BG,EAAmB5D,EAAM8B,WAAYwB,KAC3C,CAACtD,EAAO0G,EAA2BpD,IAItCR,EAAkCI,EAAqB,CAACC,EAAkBC,EAAgBC,EAAmBC,EAAcC,EAAkBC,EAA2BvC,IAExK6B,EAAkCY,EAAkB,CAACC,EAA0B3D,EAAOK,EAAcuD,EAAoBT,EAAkBC,EAAgBC,EAAmBG,EAA2BvC,EAAkB4C,GAA+B,CAAC7D,EAAOK,EAAcuD,IAG/Q,IAAIgD,GAA2B,IAAAhF,UAAQ,WACrC,OAAoB,kBAAoB0D,EAAkB,EAAS,GAAI/B,EAAkB,CACvFsD,IAAKhB,OAEN,CAACA,EAAwBP,EAAkB/B,IAe9C,OAZoB,IAAA3B,UAAQ,WAC1B,OAAI+B,EAIkB,kBAAoBoC,EAAa/D,SAAU,CAC7D9M,MAAOqR,GACNK,GAGEA,IACN,CAACb,EAAca,EAA0BL,IAK9C,IAAIO,EAAUrB,EAAO,SAAWE,GAAmBA,EAInD,GAHAmB,EAAQxB,iBAAmBA,EAC3BwB,EAAQtX,YAAcmW,EAAgBnW,YAAcA,EAEhD2V,EAAY,CACd,IAAI4B,EAAY,gBAAiB,SAA2B7Q,EAAO2Q,GACjE,OAAoB,kBAAoBC,EAAS,EAAS,GAAI5Q,EAAO,CACnE2P,uBAAwBgB,QAK5B,OAFAE,EAAUvX,YAAcA,EACxBuX,EAAUzB,iBAAmBA,EACtB,IAAayB,EAAWzB,GAGjC,OAAO,IAAawB,EAASxB,ICtXjC,SAAS0B,EAAGpM,EAAG6B,GACb,OAAI7B,IAAM6B,EACK,IAAN7B,GAAiB,IAAN6B,GAAW,EAAI7B,GAAM,EAAI6B,EAEpC7B,GAAMA,GAAK6B,GAAMA,EAIb,SAASwK,EAAaC,EAAMC,GACzC,GAAIH,EAAGE,EAAMC,GAAO,OAAO,EAE3B,GAAoB,iBAATD,GAA8B,OAATA,GAAiC,iBAATC,GAA8B,OAATA,EAC3E,OAAO,EAGT,IAAIC,EAAQ7Y,OAAOC,KAAK0Y,GACpBG,EAAQ9Y,OAAOC,KAAK2Y,GACxB,GAAIC,EAAMha,SAAWia,EAAMja,OAAQ,OAAO,EAE1C,IAAK,IAAId,EAAI,EAAGA,EAAI8a,EAAMha,OAAQd,IAChC,IAAKiC,OAAOd,UAAUgS,eAAe9R,KAAKwZ,EAAMC,EAAM9a,MAAQ0a,EAAGE,EAAKE,EAAM9a,IAAK6a,EAAKC,EAAM9a,KAC1F,OAAO,EAIX,OAAO,ECxBF,SAASgb,EAAuBC,GACrC,OAAO,SAA8BpB,EAAUjU,GAC7C,IAAIsV,EAAWD,EAAYpB,EAAUjU,GAErC,SAASuV,IACP,OAAOD,EAIT,OADAC,EAAiBC,mBAAoB,EAC9BD,GAUJ,SAASE,EAAqBC,GACnC,OAAwC,OAAjCA,EAAWF,wBAA+D/N,IAAjCiO,EAAWF,kBAAkCrN,QAAQuN,EAAWF,mBAA2C,IAAtBE,EAAWxa,OAc3I,SAASya,EAAmBD,EAAYjD,GAC7C,OAAO,SAA2BwB,EAAU3E,GACxBA,EAAKhS,YAAvB,IAEIsY,EAAQ,SAAyBC,EAAiBC,GACpD,OAAOF,EAAMJ,kBAAoBI,EAAMF,WAAWG,EAAiBC,GAAYF,EAAMF,WAAWG,IAqBlG,OAjBAD,EAAMJ,mBAAoB,EAE1BI,EAAMF,WAAa,SAAgCG,EAAiBC,GAClEF,EAAMF,WAAaA,EACnBE,EAAMJ,kBAAoBC,EAAqBC,GAC/C,IAAI1R,EAAQ4R,EAAMC,EAAiBC,GASnC,MAPqB,mBAAV9R,IACT4R,EAAMF,WAAa1R,EACnB4R,EAAMJ,kBAAoBC,EAAqBzR,GAC/CA,EAAQ4R,EAAMC,EAAiBC,IAI1B9R,GAGF4R,GC5CX,SAfO,SAA0CG,GAC/C,MAAqC,mBAAvBA,EAAoCJ,EAAmBI,QAA4CtO,GAE5G,SAAyCsO,GAC9C,OAAQA,OAIHtO,EAJwB2N,GAAuB,SAAUnB,GAC5D,MAAO,CACLA,SAAUA,OAIT,SAAwC8B,GAC7C,OAAOA,GAAoD,iBAAvBA,EAAkCX,GAAuB,SAAUnB,GACrG,OCdW,SAA4B+B,EAAgB/B,GACzD,IAAIgC,EAAsB,GAEtBC,EAAQ,SAAe3Z,GACzB,IAAI4Z,EAAgBH,EAAezZ,GAEN,mBAAlB4Z,IACTF,EAAoB1Z,GAAO,WACzB,OAAO0X,EAASkC,EAAcnG,WAAM,EAAQ/R,eAKlD,IAAK,IAAI1B,KAAOyZ,EACdE,EAAM3Z,GAGR,OAAO0Z,EDHEG,CAAmBL,EAAoB9B,WAC3CxM,IENP,GARO,SAAuC4O,GAC5C,MAAkC,mBAApBA,EAAiCV,EAAmBU,QAAsC5O,GAEnG,SAAsC4O,GAC3C,OAAQA,OAEH5O,EAFqB2N,GAAuB,WAC/C,MAAO,QCJJ,SAASkB,EAAkBC,EAAYC,EAAeV,GAC3D,OAAO,EAAS,GAAIA,EAAUS,EAAYC,GAgC5C,SARO,SAAkCC,GACvC,MAA6B,mBAAfA,EAvBT,SAA4BA,GACjC,OAAO,SAA6BxC,EAAU3E,GAC1BA,EAAKhS,YAAvB,IAIIoZ,EAHAnD,EAAOjE,EAAKiE,KACZoD,EAAsBrH,EAAKqH,oBAC3BC,GAAa,EAEjB,OAAO,SAAyBL,EAAYC,EAAeV,GACzD,IAAIe,EAAkBJ,EAAWF,EAAYC,EAAeV,GAU5D,OARIc,EACGrD,GAASoD,EAAoBE,EAAiBH,KAAcA,EAAcG,IAE/ED,GAAa,EACbF,EAAcG,GAITH,IAK+BI,CAAmBL,QAAchP,GAEtE,SAAiCgP,GACtC,OAAQA,OAEJhP,EAFiB,WACnB,OAAO6O,KC/BX,IAAI,EAAY,CAAC,sBAAuB,yBAA0B,kBAE3D,SAASS,EAAgCV,EAAiBN,EAAoBU,EAAYxC,GAC/F,OAAO,SAAkCzD,EAAOsF,GAC9C,OAAOW,EAAWJ,EAAgB7F,EAAOsF,GAAWC,EAAmB9B,EAAU6B,GAAWA,IAGzF,SAASkB,EAA8BX,EAAiBN,EAAoBU,EAAYxC,EAAU3E,GACvG,IAIIkB,EACAsF,EACAS,EACAC,EACAE,EARAO,EAAiB3H,EAAK2H,eACtBC,EAAmB5H,EAAK4H,iBACxBC,EAAqB7H,EAAK6H,mBAC1BC,GAAoB,EAkDxB,OAAO,SAAgCC,EAAWC,GAChD,OAAOF,EAZT,SAA+BC,EAAWC,GACxC,IARIC,EACAC,EAOAC,GAAgBP,EAAiBI,EAAcxB,GAC/C4B,GAAgBT,EAAeI,EAAW7G,GAG9C,OAFAA,EAAQ6G,EACRvB,EAAWwB,EACPG,GAAgBC,GA1BpBnB,EAAaF,EAAgB7F,EAAOsF,GAChCC,EAAmBP,oBAAmBgB,EAAgBT,EAAmB9B,EAAU6B,IACvFY,EAAcD,EAAWF,EAAYC,EAAeV,IAyBhD2B,GApBApB,EAAgBb,oBAAmBe,EAAaF,EAAgB7F,EAAOsF,IACvEC,EAAmBP,oBAAmBgB,EAAgBT,EAAmB9B,EAAU6B,IACvFY,EAAcD,EAAWF,EAAYC,EAAeV,IAmBhD4B,GAdAH,EAAiBlB,EAAgB7F,EAAOsF,GACxC0B,GAAqBL,EAAmBI,EAAgBhB,GAC5DA,EAAagB,EACTC,IAAmBd,EAAcD,EAAWF,EAAYC,EAAeV,IACpEY,GAWAA,EAIoBiB,CAAsBN,EAAWC,IAzC5Df,EAAaF,EAFb7F,EA2C4F6G,EA1C5FvB,EA0CuGwB,GAxCvGd,EAAgBT,EAAmB9B,EAAU6B,GAC7CY,EAAcD,EAAWF,EAAYC,EAAeV,GACpDsB,GAAoB,EACbV,IA6CI,SAASkB,EAA0B3D,EAAU5B,GAC1D,IAAIwF,EAAsBxF,EAAMwF,oBAC5BC,EAAyBzF,EAAMyF,uBAC/BC,EAAiB1F,EAAM0F,eACvB/X,EAAU,EAA8BqS,EAAO,GAE/CgE,EAAkBwB,EAAoB5D,EAAUjU,GAChD+V,EAAqB+B,EAAuB7D,EAAUjU,GACtDyW,EAAasB,EAAe9D,EAAUjU,GAO1C,OADsBA,EAAQuT,KAAOyD,EAAgCD,GAC9CV,EAAiBN,EAAoBU,EAAYxC,EAAUjU,GCpFpF,IAAI,EAAY,CAAC,OAAQ,iBAAkB,mBAAoB,qBAAsB,uBAwBrF,SAASnE,EAAMmc,EAAKC,EAAWna,GAC7B,IAAK,IAAI1D,EAAI6d,EAAU/c,OAAS,EAAGd,GAAK,EAAGA,IAAK,CAC9C,IAAI+B,EAAS8b,EAAU7d,GAAG4d,GAC1B,GAAI7b,EAAQ,OAAOA,EAGrB,OAAO,SAAU8X,EAAUjU,GACzB,MAAM,IAAIsE,MAAM,gCAAkC0T,EAAM,QAAUla,EAAO,uCAAyCkC,EAAQqT,qBAAuB,MAIrJ,SAAS6E,EAAY/d,EAAGmM,GACtB,OAAOnM,IAAMmM,EAKR,SAAS6R,EAAcC,GAC5B,IAAI9I,OAAiB,IAAV8I,EAAmB,GAAKA,EAC/BC,EAAkB/I,EAAKgJ,WACvBA,OAAiC,IAApBD,EAA6BlG,EAAkBkG,EAC5DE,EAAwBjJ,EAAKkJ,yBAC7BA,OAAqD,IAA1BD,EAAmC,EAAkCA,EAChGE,EAAwBnJ,EAAKoJ,4BAC7BA,OAAwD,IAA1BD,EAAmC,EAAqCA,EACtGE,EAAwBrJ,EAAKsJ,oBAC7BA,OAAgD,IAA1BD,EAAmC,EAA6BA,EACtFE,EAAuBvJ,EAAK8C,gBAC5BA,OAA2C,IAAzByG,EAAkC,EAAyBA,EAEjF,OAAO,SAAiBxC,EAAiBN,EAAoBU,EAAYpE,QACzD,IAAVA,IACFA,EAAQ,IAGV,IAAIyG,EAAQzG,EACR0G,EAAaD,EAAMvF,KACnBA,OAAsB,IAAfwF,GAA+BA,EACtCC,EAAuBF,EAAM7B,eAC7BA,OAA0C,IAAzB+B,EAAkCd,EAAcc,EACjEC,EAAwBH,EAAM5B,iBAC9BA,OAA6C,IAA1B+B,EAAmClE,EAAekE,EACrEC,EAAwBJ,EAAM3B,mBAC9BA,OAA+C,IAA1B+B,EAAmCnE,EAAemE,EACvEC,EAAwBL,EAAMnC,oBAC9BA,OAAgD,IAA1BwC,EAAmCpE,EAAeoE,EACxEC,EAAe,EAA8BN,EAAO,GAEpDjB,EAAsBhc,EAAMwa,EAAiBmC,EAA0B,mBACvEV,EAAyBjc,EAAMka,EAAoB2C,EAA6B,sBAChFX,EAAiBlc,EAAM4a,EAAYmC,EAAqB,cAC5D,OAAON,EAAWlG,EAAiB,EAAS,CAE1CK,WAAY,UAEZF,eAAgB,SAAwBzU,GACtC,MAAO,WAAaA,EAAO,KAG7B2T,yBAA0BtJ,QAAQkO,GAElCwB,oBAAqBA,EACrBC,uBAAwBA,EACxBC,eAAgBA,EAChBxE,KAAMA,EACN0D,eAAgBA,EAChBC,iBAAkBA,EAClBC,mBAAoBA,EACpBR,oBAAqBA,GACpByC,KAGP,QAA4BjB,IC2DrB,IftJiCkB,EgBPxC,SAASrP,EAAEA,GAAG,IAAI,IAAIG,EAAElM,UAAU/C,OAAOkP,EAAE9O,MAAM6O,EAAE,EAAEA,EAAE,EAAE,GAAGzK,EAAE,EAAEA,EAAEyK,EAAEzK,IAAI0K,EAAE1K,EAAE,GAAGzB,UAAUyB,GAAkJ,MAAM4E,MAAM,8BAA8B0F,GAAGI,EAAElP,OAAO,IAAIkP,EAAE5D,KAAI,SAAUwD,GAAG,MAAM,IAAIA,EAAE,OAAOhP,KAAK,KAAK,IAAI,oDAAoD,SAASmP,EAAEH,GAAG,QAAQA,KAAKA,EAAEsP,IAAG,SAASlP,EAAEJ,GAAG,QAAQA,IAAI,SAASA,GAAG,IAAIA,GAAG,iBAAiBA,EAAE,OAAM,EAAG,IAAIG,EAAE9N,OAAO2C,eAAegL,GAAG,GAAG,OAAOG,EAAE,OAAM,EAAG,IAAIC,EAAE/N,OAAOkR,eAAe9R,KAAK0O,EAAE,gBAAgBA,EAAEoP,YAAY,OAAOnP,IAAI/N,QAAQ,mBAAmB+N,GAAGgD,SAASxN,SAASnE,KAAK2O,KAAKoP,GAAzO,CAA4OxP,IAAI1O,MAAMuB,QAAQmN,MAAMA,EAAEyP,OAAMzP,EAAEuP,YAAYE,KAAIC,GAAE1P,IAAIK,GAAEL,IAA8C,SAAS5P,EAAE4P,EAAEG,EAAEC,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAI2C,EAAE/C,IAAII,EAAE/N,OAAOC,KAAKqd,IAAI3P,GAAG4P,SAAQ,SAAUla,GAAG0K,GAAG,iBAAiB1K,GAAGyK,EAAEzK,EAAEsK,EAAEtK,GAAGsK,MAAMA,EAAE4P,SAAQ,SAAUxP,EAAE1K,GAAG,OAAOyK,EAAEzK,EAAE0K,EAAEJ,MAAM,SAAS+C,EAAE/C,GAAG,IAAIG,EAAEH,EAAEsP,IAAG,OAAOnP,EAAEA,EAAE/P,EAAE,EAAE+P,EAAE/P,EAAE,EAAE+P,EAAE/P,EAAEkB,MAAMuB,QAAQmN,GAAG,EAAE0P,GAAE1P,GAAG,EAAEK,GAAEL,GAAG,EAAE,EAAE,SAASS,EAAET,EAAEG,GAAG,OAAO,IAAI4C,EAAE/C,GAAGA,EAAE6P,IAAI1P,GAAG9N,OAAOd,UAAUgS,eAAe9R,KAAKuO,EAAEG,GAAiD,SAASP,EAAEI,EAAEG,EAAEC,GAAG,IAAI1K,EAAEqN,EAAE/C,GAAG,IAAItK,EAAEsK,EAAE8P,IAAI3P,EAAEC,GAAG,IAAI1K,GAAGsK,EAAE+P,OAAO5P,GAAGH,EAAEgQ,IAAI5P,IAAIJ,EAAEG,GAAGC,EAAE,SAAS9H,GAAE0H,EAAEG,GAAG,OAAOH,IAAIG,EAAE,IAAIH,GAAG,EAAEA,GAAG,EAAEG,EAAEH,GAAGA,GAAGG,GAAGA,EAAE,SAASuP,GAAE1P,GAAG,OAAOiQ,IAAGjQ,aAAakQ,IAAI,SAAS7P,GAAEL,GAAG,OAAOE,IAAGF,aAAamQ,IAAI,SAASlQ,GAAED,GAAG,OAAOA,EAAE+C,GAAG/C,EAAEI,EAAE,SAASL,GAAEC,GAAG,GAAG1O,MAAMuB,QAAQmN,GAAG,OAAO1O,MAAMC,UAAUH,MAAMK,KAAKuO,GAAG,IAAIG,EAAEiQ,GAAGpQ,UAAUG,EAAEmP,IAAG,IAAI,IAAIlP,EAAEuP,GAAGxP,GAAGzK,EAAE,EAAEA,EAAE0K,EAAElP,OAAOwE,IAAI,CAAC,IAAItF,EAAEgQ,EAAE1K,GAAGqN,EAAE5C,EAAE/P,IAAG,IAAK2S,EAAEsN,WAAWtN,EAAEsN,UAAS,EAAGtN,EAAEuN,cAAa,IAAKvN,EAAEE,KAAKF,EAAE+M,OAAO3P,EAAE/P,GAAG,CAACkgB,cAAa,EAAGD,UAAS,EAAGrN,WAAWD,EAAEC,WAAWhK,MAAMgH,EAAE5P,KAAK,OAAOiC,OAAO0L,OAAO1L,OAAO2C,eAAegL,GAAGG,GAAG,SAASR,GAAEK,EAAEtK,GAAG,YAAO,IAASA,IAAIA,GAAE,GAAI6K,GAAEP,IAAIG,EAAEH,KAAKI,EAAEJ,KAAM+C,EAAE/C,GAAG,IAAIA,EAAE8P,IAAI9P,EAAEgQ,IAAIhQ,EAAE0E,MAAM1E,EAAE+P,OAAOjQ,IAAGzN,OAAOke,OAAOvQ,GAAGtK,GAAGtF,EAAE4P,GAAE,SAAUA,EAAEG,GAAG,OAAOR,GAAEQ,GAAE,MAAM,IAApGH,EAA2G,SAASF,KAAIE,EAAE,GAAG,SAASO,GAAEP,GAAG,OAAO,MAAMA,GAAG,iBAAiBA,GAAG3N,OAAOme,SAASxQ,GAAG,SAAS1D,GAAE6D,GAAG,IAAIC,EAAEqQ,GAAGtQ,GAAG,OAAOC,GAAGJ,EAAE,GAAGG,GAAGC,EAAmC,SAASsQ,KAAI,OAAmDC,GAAE,SAASxX,GAAE6G,EAAEG,GAAGA,IAAI7D,GAAE,WAAW0D,EAAES,EAAE,GAAGT,EAAE0P,EAAE,GAAG1P,EAAEK,EAAEF,GAAG,SAASyQ,GAAE5Q,GAAGH,GAAEG,GAAGA,EAAEC,EAAE2P,QAAQiB,IAAG7Q,EAAEC,EAAE,KAAK,SAASJ,GAAEG,GAAGA,IAAI2Q,KAAIA,GAAE3Q,EAAED,GAAG,SAASO,GAAEN,GAAG,OAAO2Q,GAAE,CAAC1Q,EAAE,GAAGF,EAAE4Q,GAAE7Q,EAAEE,EAAEtI,GAAE,EAAGgZ,EAAE,GAAG,SAASG,GAAE7Q,GAAG,IAAIG,EAAEH,EAAEsP,IAAG,IAAInP,EAAE/P,GAAG,IAAI+P,EAAE/P,EAAE+P,EAAEhH,IAAIgH,EAAEyQ,GAAE,EAAG,SAASE,GAAE3Q,EAAEzK,GAAGA,EAAEgb,EAAEhb,EAAEuK,EAAE/O,OAAO,IAAId,EAAEsF,EAAEuK,EAAE,GAAG8C,OAAE,IAAS5C,GAAGA,IAAI/P,EAAE,OAAOsF,EAAEoK,EAAED,GAAGvD,GAAE,OAAOuU,EAAEnb,EAAEyK,EAAE4C,GAAGA,GAAG3S,EAAEkf,IAAGwB,IAAIF,GAAElb,GAAGsK,EAAE,IAAII,EAAED,KAAKA,EAAE4Q,GAAErb,EAAEyK,GAAGzK,EAAEqK,GAAGrB,GAAEhJ,EAAEyK,IAAIzK,EAAE+K,GAAGnE,GAAE,WAAWyU,EAAE3gB,EAAEkf,IAAGlP,EAAED,EAAEzK,EAAE+K,EAAE/K,EAAEga,IAAIvP,EAAE4Q,GAAErb,EAAEtF,EAAE,IAAIwgB,GAAElb,GAAGA,EAAE+K,GAAG/K,EAAE2K,EAAE3K,EAAE+K,EAAE/K,EAAEga,GAAGvP,IAAI6Q,GAAE7Q,OAAE,EAAO,SAAS4Q,GAAE/Q,EAAEG,EAAEC,GAAG,GAAGG,GAAEJ,GAAG,OAAOA,EAAE,IAAIzK,EAAEyK,EAAEmP,IAAG,IAAI5Z,EAAE,OAAOtF,EAAE+P,GAAE,SAAU/P,EAAE2S,GAAG,OAAOpC,GAAEX,EAAEtK,EAAEyK,EAAE/P,EAAE2S,EAAE3C,MAAK,GAAID,EAAE,GAAGzK,EAAEiL,IAAIX,EAAE,OAAOG,EAAE,IAAIzK,EAAEob,EAAE,OAAOpS,GAAEsB,EAAEtK,EAAE0K,GAAE,GAAI1K,EAAE0K,EAAE,IAAI1K,EAAEub,EAAE,CAACvb,EAAEub,GAAE,EAAGvb,EAAEiL,EAAE+P,IAAI,IAAI3N,EAAE,IAAIrN,EAAEtF,GAAG,IAAIsF,EAAEtF,EAAEsF,EAAEqN,EAAEhD,GAAErK,EAAEuI,GAAGvI,EAAEqN,EAAE3S,EAAE,IAAIsF,EAAEtF,EAAE,IAAI+f,IAAIpN,GAAGA,GAAE,SAAU5C,EAAE/P,GAAG,OAAOuQ,GAAEX,EAAEtK,EAAEqN,EAAE5C,EAAE/P,EAAEgQ,MAAM1B,GAAEsB,EAAE+C,GAAE,GAAI3C,GAAGJ,EAAES,GAAGnE,GAAE,WAAW4U,EAAExb,EAAE0K,EAAEJ,EAAES,EAAET,EAAE0P,GAAG,OAAOha,EAAEqN,EAAE,SAASpC,GAAEjL,EAAEtF,EAAE2S,EAAE5S,EAAEmI,EAAEoX,GAAG,GAAoDvP,EAAE7H,GAAG,CAAC,IAAI+H,EAAE0Q,GAAErb,EAAE4C,EAAEoX,GAAGtf,GAAG,IAAIA,EAAEA,IAAIqQ,EAAErQ,EAAE+gB,EAAEhhB,GAAGuf,EAAEle,OAAOrB,QAAG,GAAQ,GAAGyP,EAAEmD,EAAE5S,EAAEkQ,IAAIF,EAAEE,GAAG,OAAO3K,EAAEgC,GAAE,EAAG,GAAG0I,EAAE9H,KAAKiI,GAAEjI,GAAG,CAAC,IAAI5C,EAAEoK,EAAEsR,GAAG1b,EAAEgb,EAAE,EAAE,OAAOK,GAAErb,EAAE4C,GAAGlI,GAAGA,EAAEuQ,EAAEZ,GAAGrB,GAAEhJ,EAAE4C,IAAI,SAASoG,GAAEsB,EAAEG,EAAEC,QAAG,IAASA,IAAIA,GAAE,GAAIJ,EAAEF,EAAEsR,GAAGpR,EAAEtI,GAAGiI,GAAEQ,EAAEC,GAAG,SAASI,GAAER,EAAEG,GAAG,IAAIC,EAAEJ,EAAEsP,IAAG,OAAOlP,EAAEH,GAAEG,GAAGJ,GAAGG,GAAG,SAAS8Q,GAAEjR,EAAEG,GAAG,GAAGA,KAAKH,EAAE,IAAI,IAAII,EAAE/N,OAAO2C,eAAegL,GAAGI,GAAG,CAAC,IAAI1K,EAAErD,OAAO0C,yBAAyBqL,EAAED,GAAG,GAAGzK,EAAE,OAAOA,EAAE0K,EAAE/N,OAAO2C,eAAeoL,IAAI,SAASnC,GAAE+B,GAAGA,EAAE8Q,IAAI9Q,EAAE8Q,GAAE,EAAG9Q,EAAED,GAAG9B,GAAE+B,EAAED,IAAI,SAASsR,GAAErR,GAAGA,EAAE+C,IAAI/C,EAAE+C,EAAEhD,GAAEC,EAAEI,IAAI,SAAS8Q,GAAElR,EAAEG,EAAEC,GAAG,IAAI1K,EAAEga,GAAEvP,GAAG7D,GAAE,UAAUgV,EAAEnR,EAAEC,GAAGC,GAAEF,GAAG7D,GAAE,UAAUiV,EAAEpR,EAAEC,GAAGJ,EAAEH,EAAE,SAASG,EAAEG,GAAG,IAAIC,EAAE9O,MAAMuB,QAAQmN,GAAGtK,EAAE,CAACtF,EAAEgQ,EAAE,EAAE,EAAEO,EAAER,EAAEA,EAAEQ,EAAE+P,KAAII,GAAE,EAAGG,GAAE,EAAGE,EAAE,GAAGpR,EAAEI,EAAEC,EAAEJ,EAAE/B,EAAE,KAAK8E,EAAE,KAAK5J,EAAE,KAAKqY,GAAE,GAAIphB,EAAEsF,EAAEqN,EAAE0O,GAAGrR,IAAIhQ,EAAE,CAACsF,GAAGqN,EAAE2O,IAAI,IAAIjR,EAAEkR,MAAMC,UAAUxhB,EAAE2S,GAAG5S,EAAEsQ,EAAEoR,OAAOjS,EAAEa,EAAEmL,MAAM,OAAOlW,EAAEuI,EAAE2B,EAAElK,EAAEyD,EAAEhJ,EAAEyP,EAA1M,CAA6MO,EAAEC,GAAG9D,GAAE,OAAOwV,EAAE3R,EAAEC,GAAG,OAAOA,EAAEA,EAAEO,EAAE+P,MAAKzQ,EAAE9J,KAAKT,GAAGA,EAAE,SAASyb,GAAEzb,GAAG,OAAOyK,EAAEzK,IAAIsK,EAAE,GAAGtK,GAAG,SAASsK,EAAEG,GAAG,IAAIC,EAAED,GAAG,OAAOA,EAAE,IAAIzK,EAAE+K,EAAEN,EAAEmP,IAAGhX,EAAEyK,EAAE5C,GAAG,GAAGM,EAAE,CAAC,IAAIA,EAAEqQ,IAAIrQ,EAAErQ,EAAE,IAAIkM,GAAE,OAAOyV,EAAEtR,IAAI,OAAOA,EAAEL,EAAEK,EAAEwQ,GAAE,EAAGvb,EAAE0b,GAAEjR,EAAE7H,GAAGmI,EAAEwQ,GAAE,OAAQvb,EAAE0b,GAAEjR,EAAE7H,GAAG,OAAOlI,EAAEsF,GAAE,SAAUyK,EAAEC,GAAGK,GAAn3F,SAAWT,EAAEG,GAAG,OAAO,IAAI4C,EAAE/C,GAAGA,EAAEiD,IAAI9C,GAAGH,EAAEG,GAA20FhQ,CAAEsQ,EAAEL,EAAED,KAAKC,GAAGR,EAAElK,EAAEyK,EAAEH,EAAEI,OAAO,IAAI9H,EAAE,IAAI6X,IAAIza,GAAGA,EAAtN,CAAyNA,GAAG,SAAS0b,GAAEpR,EAAEG,GAAG,OAAOA,GAAG,KAAK,EAAE,OAAO,IAAI+P,IAAIlQ,GAAG,KAAK,EAAE,OAAO1O,MAAM0gB,KAAKhS,GAAG,OAAOD,GAAEC,GhBOxkIqP,EiBF/B,0BjBGA5L,EAAQ4L,EgBR+wW,IAAI4C,GAAEtB,GAAEuB,GAAE,oBAAoBzS,QAAQ,iBAAiBA,OAAO,KAAKwQ,GAAE,oBAAoBC,IAAIhQ,GAAE,oBAAoBiQ,IAAIgC,GAAE,oBAAoBR,YAAO,IAASA,MAAMC,WAAW,oBAAoBQ,QAAQpB,GAAEkB,GAAEzS,OAAOC,IAAI,mBAAmBuS,GAAE,IAAI,kBAAiB,EAAGA,IAAGxC,GAAEyC,GAAEzS,OAAOC,IAAI,mBAAmB,qBAAqB4P,GAAE4C,GAAEzS,OAAOC,IAAI,eAAe,iBAAy2D8P,IAAt1D,oBAAoB/P,QAAQA,OAAO4S,SAAqzD,GAAGhgB,OAAOd,UAAUge,aAAYI,GAAG,oBAAoByC,SAASA,QAAQE,QAAQF,QAAQE,aAAQ,IAASjgB,OAAOyC,sBAAsB,SAASkL,GAAG,OAAO3N,OAAOwC,oBAAoBmL,GAAGxO,OAAOa,OAAOyC,sBAAsBkL,KAAK3N,OAAOwC,oBAAoBub,GAAG/d,OAAOkgB,2BAA2B,SAASvS,GAAG,IAAIG,EAAE,GAAG,OAAOwP,GAAG3P,GAAG4P,SAAQ,SAAUxP,GAAGD,EAAEC,GAAG/N,OAAO0C,yBAAyBiL,EAAEI,MAAMD,GAAGsQ,GAAG,GAAGgB,GAAG,CAACxO,IAAI,SAASjD,EAAEG,GAAG,GAAGA,IAAImP,GAAE,OAAOtP,EAAE,IAAItK,EAAEuK,GAAED,GAAG,IAAIS,EAAE/K,EAAEyK,GAAG,OAAO,SAASH,EAAEG,EAAEC,GAAG,IAAI1K,EAAEtF,EAAE6gB,GAAE9Q,EAAEC,GAAG,OAAOhQ,EAAE,UAAUA,EAAEA,EAAE4I,MAAM,QAAQtD,EAAEtF,EAAE6S,WAAM,IAASvN,OAAE,EAAOA,EAAEjE,KAAKuO,EAAE/B,QAAG,EAA5G,CAAoH+B,EAAEtK,EAAEyK,GAAG,IAAI/P,EAAEsF,EAAEyK,GAAG,OAAOH,EAAEiR,IAAI7Q,EAAEhQ,GAAGA,EAAEA,IAAIoQ,GAAER,EAAEI,EAAED,IAAIkR,GAAErR,GAAGA,EAAE+C,EAAE5C,GAAG+Q,GAAElR,EAAEW,EAAEb,EAAE1P,EAAE4P,IAAI5P,GAAGyf,IAAI,SAAS7P,EAAEG,GAAG,OAAOA,KAAKF,GAAED,IAAIsS,QAAQ,SAAStS,GAAG,OAAOoS,QAAQE,QAAQrS,GAAED,KAAK8P,IAAI,SAAS9P,EAAEG,EAAEC,GAAG,IAAI1K,EAAEub,GAAEhR,GAAED,GAAGG,GAAG,GAAG,MAAMzK,OAAE,EAAOA,EAAEoa,IAAI,OAAOpa,EAAEoa,IAAIre,KAAKuO,EAAE/B,EAAEmC,IAAG,EAAG,IAAIJ,EAAE8Q,EAAE,CAAC,IAAI1gB,EAAEoQ,GAAEP,GAAED,GAAGG,GAAG4C,EAAE,MAAM3S,OAAE,EAAOA,EAAEkf,IAAG,GAAGvM,GAAGA,EAAE3C,IAAIA,EAAE,OAAOJ,EAAE+C,EAAE5C,GAAGC,EAAEJ,EAAEmR,EAAEhR,IAAG,GAAG,EAAG,GAAG7H,GAAE8H,EAAEhQ,UAAK,IAASgQ,GAAGK,EAAET,EAAEI,EAAED,IAAI,OAAM,EAAGkR,GAAErR,GAAG/B,GAAE+B,GAAG,OAAOA,EAAE+C,EAAE5C,KAAKC,GAAG,iBAAiBA,SAAI,IAASA,GAAGD,KAAKH,EAAE+C,KAAK/C,EAAE+C,EAAE5C,GAAGC,EAAEJ,EAAEmR,EAAEhR,IAAG,GAAG,IAAKqS,eAAe,SAASxS,EAAEG,GAAG,YAAO,IAASK,GAAER,EAAEI,EAAED,IAAIA,KAAKH,EAAEI,GAAGJ,EAAEmR,EAAEhR,IAAG,EAAGkR,GAAErR,GAAG/B,GAAE+B,WAAWA,EAAEmR,EAAEhR,GAAGH,EAAE+C,UAAU/C,EAAE+C,EAAE5C,IAAG,GAAIpL,yBAAyB,SAASiL,EAAEG,GAAG,IAAIC,EAAEH,GAAED,GAAGtK,EAAE0c,QAAQrd,yBAAyBqL,EAAED,GAAG,OAAOzK,EAAE,CAAC2a,UAAS,EAAGC,aAAa,IAAItQ,EAAE5P,GAAG,WAAW+P,EAAE6C,WAAWtN,EAAEsN,WAAWhK,MAAMoH,EAAED,IAAIzK,GAAGd,eAAe,WAAWoL,EAAE,KAAKhL,eAAe,SAASgL,GAAG,OAAO3N,OAAO2C,eAAegL,EAAEI,IAAIqS,eAAe,WAAWzS,EAAE,MAAM0R,GAAG,GAAGthB,EAAEqhB,IAAG,SAAUzR,EAAEG,GAAGuR,GAAG1R,GAAG,WAAW,OAAO/L,UAAU,GAAGA,UAAU,GAAG,GAAGkM,EAAE6F,MAAM7C,KAAKlP,eAAeyd,GAAGc,eAAe,SAASrS,EAAEC,GAAG,OAAqEsR,GAAG5B,IAAIre,KAAK0R,KAAKhD,EAAEC,OAAE,IAASsR,GAAG5B,IAAI,SAAS3P,EAAEC,EAAE1K,GAAG,OAAmF+b,GAAG3B,IAAIre,KAAK0R,KAAKhD,EAAE,GAAGC,EAAE1K,EAAEyK,EAAE,KAAK,IAAIuS,GAAG,WAAW,SAAShd,EAAEyK,GAAG,IAAIzK,EAAEyN,KAAKA,KAAKtD,EAAEsS,GAAEhP,KAAKiO,GAAE,EAAGjO,KAAKwP,QAAQ,SAASxS,EAAE/P,EAAE2S,GAAG,GAAG,mBAAmB5C,GAAG,mBAAmB/P,EAAE,CAAC,IAAIqQ,EAAErQ,EAAEA,EAAE+P,EAAE,IAAIhQ,EAAEuF,EAAE,OAAO,SAASsK,GAAG,IAAIG,EAAEgD,UAAK,IAASnD,IAAIA,EAAES,GAAG,IAAI,IAAIL,EAAEnM,UAAU/C,OAAOwE,EAAEpE,MAAM8O,EAAE,EAAEA,EAAE,EAAE,GAAG2C,EAAE,EAAEA,EAAE3C,EAAE2C,IAAIrN,EAAEqN,EAAE,GAAG9O,UAAU8O,GAAG,OAAO5S,EAAEwiB,QAAQ3S,GAAE,SAAUA,GAAG,IAAII,EAAE,OAAOA,EAAEhQ,GAAGqB,KAAKuU,MAAM5F,EAAE,CAACD,EAAEH,GAAGxO,OAAOkE,QAAQ,IAAIkK,EAAE,GAAG,mBAAmBxP,GAAG4P,EAAE,QAAG,IAAS+C,GAAG,mBAAmBA,GAAG/C,EAAE,GAAGI,EAAED,GAAG,CAAC,IAAI7H,EAAEgI,GAAE5K,GAAGga,EAAEwB,GAAExb,EAAEyK,OAAE,GAAQE,GAAE,EAAG,IAAIT,EAAExP,EAAEsf,GAAGrP,GAAE,EAAG,QAAQA,EAAEuQ,GAAEtY,GAAGuH,GAAEvH,GAAG,MAAM,oBAAoBsa,SAAShT,aAAagT,QAAQhT,EAAEiT,MAAK,SAAU7S,GAAG,OAAO7G,GAAEb,EAAEyK,GAAG+N,GAAE9Q,EAAE1H,MAAK,SAAU0H,GAAG,MAAM4Q,GAAEtY,GAAG0H,MAAM7G,GAAEb,EAAEyK,GAAG+N,GAAElR,EAAEtH,IAAI,IAAI6H,GAAG,iBAAiBA,EAAE,CAAC,QAAG,KAAUP,EAAExP,EAAE+P,MAAMP,EAAEO,GAAGP,IAAIoR,KAAIpR,OAAE,GAAQlK,EAAE0b,GAAGzR,GAAEC,GAAE,GAAImD,EAAE,CAAC,IAAI9C,EAAE,GAAGF,EAAE,GAAGzD,GAAE,WAAWyU,EAAE5Q,EAAEP,EAAEK,EAAEF,GAAGgD,EAAE9C,EAAEF,GAAG,OAAOH,EAAEI,EAAE,GAAGG,IAAIgD,KAAK2P,mBAAmB,SAAS9S,EAAEG,GAAG,GAAG,mBAAmBH,EAAE,OAAO,SAASG,GAAG,IAAI,IAAIC,EAAEnM,UAAU/C,OAAOd,EAAEkB,MAAM8O,EAAE,EAAEA,EAAE,EAAE,GAAG2C,EAAE,EAAEA,EAAE3C,EAAE2C,IAAI3S,EAAE2S,EAAE,GAAG9O,UAAU8O,GAAG,OAAOrN,EAAEod,mBAAmB3S,GAAE,SAAUA,GAAG,OAAOH,EAAEgG,WAAM,EAAO,CAAC7F,GAAG3O,OAAOpB,QAAQ,IAAIgQ,EAAEhQ,EAAE2S,EAAErN,EAAEid,QAAQ3S,EAAEG,GAAE,SAAUH,EAAEG,GAAGC,EAAEJ,EAAE5P,EAAE+P,KAAK,MAAM,oBAAoByS,SAAS7P,aAAa6P,QAAQ7P,EAAE8P,MAAK,SAAU7S,GAAG,MAAM,CAACA,EAAEI,EAAEhQ,MAAM,CAAC2S,EAAE3C,EAAEhQ,IAAI,kBAAkB,MAAM+P,OAAE,EAAOA,EAAE4S,aAAa5P,KAAK6P,cAAc7S,EAAE4S,YAAY,kBAAkB,MAAM5S,OAAE,EAAOA,EAAE8S,aAAa9P,KAAK+P,cAAc/S,EAAE8S,YAAY,IAAI7iB,EAAEsF,EAAEnE,UAAU,OAAOnB,EAAE+iB,YAAY,SAASzd,GAAG0K,EAAE1K,IAAIsK,EAAE,GAAGG,EAAEzK,KAAKA,EAAEyb,GAAEzb,IAAI,IAAItF,EAAEkQ,GAAE6C,MAAMJ,EAAEmO,GAAE/N,KAAKzN,OAAE,GAAQ,OAAOqN,EAAEuM,IAAGkC,GAAE,EAAG3R,GAAEzP,GAAG2S,GAAG3S,EAAEgjB,YAAY,SAASjT,EAAEC,GAAG,IAAiFhQ,GAA3E+P,GAAGA,EAAEmP,KAA0E3O,EAAE,OAAOxH,GAAE/I,EAAEgQ,GAAG0Q,QAAE,EAAO1gB,IAAIA,EAAE8iB,cAAc,SAASlT,GAAGmD,KAAKiO,EAAEpR,GAAG5P,EAAE4iB,cAAc,SAAS7S,GAAGA,IAAIgS,IAAGnS,EAAE,IAAImD,KAAKtD,EAAEM,GAAG/P,EAAEijB,aAAa,SAASrT,EAAEI,GAAG,IAAI1K,EAAE,IAAIA,EAAE0K,EAAElP,OAAO,EAAEwE,GAAG,EAAEA,IAAI,CAAC,IAAItF,EAAEgQ,EAAE1K,GAAG,GAAG,IAAItF,EAAE2F,KAAK7E,QAAQ,YAAYd,EAAEkjB,GAAG,CAACtT,EAAE5P,EAAE4I,MAAM,OAAOtD,GAAG,IAAI0K,EAAEA,EAAEhP,MAAMsE,EAAE,IAAI,IAAIqN,EAAEzG,GAAE,WAAWiX,EAAE,OAAOpT,EAAEH,GAAG+C,EAAE/C,EAAEI,GAAG+C,KAAKwP,QAAQ3S,GAAE,SAAUA,GAAG,OAAO+C,EAAE/C,EAAEI,OAAO1K,EAAh7D,GAAq7D8d,GAAG,IAAId,GAAGe,GAAGD,GAAGb,QAAWa,GAAGV,mBAAmB1I,KAAKoJ,IAAOA,GAAGN,cAAc9I,KAAKoJ,IAAOA,GAAGR,cAAc5I,KAAKoJ,IAAOA,GAAGH,aAAajJ,KAAKoJ,IAAOA,GAAGL,YAAY/I,KAAKoJ,IAAOA,GAAGJ,YAAYhJ,KAAKoJ,IAAI,YEAv7iB,SAASE,GAAgBjhB,EAAKF,EAAKyG,GAYhD,OAXIzG,KAAOE,EACTJ,OAAOuC,eAAenC,EAAKF,EAAK,CAC9ByG,MAAOA,EACPgK,YAAY,EACZsN,cAAc,EACdD,UAAU,IAGZ5d,EAAIF,GAAOyG,EAGNvG,ECVT,SAAS6f,GAAQvX,EAAQ4Y,GACvB,IAAIrhB,EAAOD,OAAOC,KAAKyI,GAEvB,GAAI1I,OAAOyC,sBAAuB,CAChC,IAAI8e,EAAUvhB,OAAOyC,sBAAsBiG,GAC3C4Y,IAAmBC,EAAUA,EAAQnV,QAAO,SAAUoV,GACpD,OAAOxhB,OAAO0C,yBAAyBgG,EAAQ8Y,GAAK7Q,eACjD1Q,EAAK6D,KAAK6P,MAAM1T,EAAMshB,GAG7B,OAAOthB,EAGM,SAASwhB,GAAe/N,GACrC,IAAK,IAAI3V,EAAI,EAAGA,EAAI6D,UAAU/C,OAAQd,IAAK,CACzC,IAAI8F,EAAS,MAAQjC,UAAU7D,GAAK6D,UAAU7D,GAAK,GACnDA,EAAI,EAAIkiB,GAAQjgB,OAAO6D,IAAS,GAAI0Z,SAAQ,SAAUrd,GACpD,GAAewT,EAAQxT,EAAK2D,EAAO3D,OAChCF,OAAOkgB,0BAA4BlgB,OAAO0hB,iBAAiBhO,EAAQ1T,OAAOkgB,0BAA0Brc,IAAWoc,GAAQjgB,OAAO6D,IAAS0Z,SAAQ,SAAUrd,GAC5JF,OAAOuC,eAAemR,EAAQxT,EAAKF,OAAO0C,yBAAyBmB,EAAQ3D,OAI/E,OAAOwT,EChBT,SAASiO,GAAuBC,GAC9B,MAAO,yBAA2BA,EAAO,4CAA8CA,EAAhF,kFAIT,IAAIC,GACuB,mBAAXzU,QAAyBA,OAAO0U,YAAc,eAS1DC,GAAe,WACjB,OAAOC,KAAKC,SAAS1e,SAAS,IAAI2e,UAAU,GAAGzjB,MAAM,IAAIE,KAAK,MAG5DwjB,GAAc,CAChBC,KAAM,eAAiBL,KACvBM,QAAS,kBAAoBN,KAC7BO,qBAAsB,WACpB,MAAO,+BAAiCP,OAQ5C,SAASQ,GAAcniB,GACrB,GAAmB,iBAARA,GAA4B,OAARA,EAAc,OAAO,EAGpD,IAFA,IAAIoiB,EAAQpiB,EAE4B,OAAjCJ,OAAO2C,eAAe6f,IAC3BA,EAAQxiB,OAAO2C,eAAe6f,GAGhC,OAAOxiB,OAAO2C,eAAevC,KAASoiB,EAwFxC,SAASC,GAAYC,EAASC,EAAgBC,GAC5C,IAAI5M,EAEJ,GAA8B,mBAAnB2M,GAAqD,mBAAbC,GAA+C,mBAAbA,GAAmD,mBAAjBhhB,UAAU,GAC/H,MAAM,IAAIqG,MAA8C0Z,GAAuB,IAQjF,GAL8B,mBAAnBgB,QAAqD,IAAbC,IACjDA,EAAWD,EACXA,OAAiBvX,QAGK,IAAbwX,EAA0B,CACnC,GAAwB,mBAAbA,EACT,MAAM,IAAI3a,MAA8C0Z,GAAuB,IAGjF,OAAOiB,EAASH,GAATG,CAAsBF,EAASC,GAGxC,GAAuB,mBAAZD,EACT,MAAM,IAAIza,MAA8C0Z,GAAuB,IAGjF,IAAIkB,EAAiBH,EACjBI,EAAeH,EACfI,EAAmB,GACnBC,EAAgBD,EAChBE,GAAgB,EASpB,SAASC,IACHF,IAAkBD,IACpBC,EAAgBD,EAAiBhkB,SAUrC,SAASwU,IACP,GAAI0P,EACF,MAAM,IAAIhb,MAA8C0Z,GAAuB,IAGjF,OAAOmB,EA2BT,SAAS5Q,EAAUI,GACjB,GAAwB,mBAAbA,EACT,MAAM,IAAIrK,MAA8C0Z,GAAuB,IAGjF,GAAIsB,EACF,MAAM,IAAIhb,MAA8C0Z,GAAuB,IAGjF,IAAIpP,GAAe,EAGnB,OAFA2Q,IACAF,EAAclf,KAAKwO,GACZ,WACL,GAAKC,EAAL,CAIA,GAAI0Q,EACF,MAAM,IAAIhb,MAA8C0Z,GAAuB,IAGjFpP,GAAe,EACf2Q,IACA,IAAI/d,EAAQ6d,EAActiB,QAAQ4R,GAClC0Q,EAAcG,OAAOhe,EAAO,GAC5B4d,EAAmB,OA8BvB,SAASnL,EAASxD,GAChB,IAAKmO,GAAcnO,GACjB,MAAM,IAAInM,MAA8C0Z,GAAuB,IAGjF,QAA2B,IAAhBvN,EAAO7S,KAChB,MAAM,IAAI0G,MAA8C0Z,GAAuB,IAGjF,GAAIsB,EACF,MAAM,IAAIhb,MAA8C0Z,GAAuB,IAGjF,IACEsB,GAAgB,EAChBH,EAAeD,EAAeC,EAAc1O,GAC5C,QACA6O,GAAgB,EAKlB,IAFA,IAAIrR,EAAYmR,EAAmBC,EAE1BjlB,EAAI,EAAGA,EAAI6T,EAAU/S,OAAQd,KAEpCuU,EADeV,EAAU7T,MAI3B,OAAOqW,EAcT,SAASgP,EAAeC,GACtB,GAA2B,mBAAhBA,EACT,MAAM,IAAIpb,MAA8C0Z,GAAuB,KAGjFkB,EAAiBQ,EAKjBzL,EAAS,CACPrW,KAAM4gB,GAAYE,UAWtB,SAASP,IACP,IAAI7O,EAEAqQ,EAAiBpR,EACrB,OAAOe,EAAO,CASZf,UAAW,SAAmBqR,GAC5B,GAAwB,iBAAbA,GAAsC,OAAbA,EAClC,MAAM,IAAItb,MAA8C0Z,GAAuB,KAGjF,SAAS6B,IACHD,EAAS/d,MACX+d,EAAS/d,KAAK+N,KAMlB,OAFAiQ,IAEO,CACL7R,YAFgB2R,EAAeE,OAK7B3B,IAAgB,WACtB,OAAO/Q,MACNmC,EASL,OAHA2E,EAAS,CACPrW,KAAM4gB,GAAYC,QAEbpM,EAAQ,CACb4B,SAAUA,EACV1F,UAAWA,EACXqB,SAAUA,EACV6P,eAAgBA,IACTvB,IAAgBC,EAAY9L,EAuFvC,SAASyN,GAAgBC,GAIvB,IAHA,IAAIC,EAAc3jB,OAAOC,KAAKyjB,GAC1BE,EAAgB,GAEX7lB,EAAI,EAAGA,EAAI4lB,EAAY9kB,OAAQd,IAAK,CAC3C,IAAImC,EAAMyjB,EAAY5lB,GAQO,mBAAlB2lB,EAASxjB,KAClB0jB,EAAc1jB,GAAOwjB,EAASxjB,IAIlC,IASI2jB,EATAC,EAAmB9jB,OAAOC,KAAK2jB,GAWnC,KAjEF,SAA4BF,GAC1B1jB,OAAOC,KAAKyjB,GAAUnG,SAAQ,SAAUrd,GACtC,IAAIwiB,EAAUgB,EAASxjB,GAKvB,QAA4B,IAJTwiB,OAAQtX,EAAW,CACpC7J,KAAM4gB,GAAYC,OAIlB,MAAM,IAAIna,MAA8C0Z,GAAuB,KAGjF,QAEO,IAFIe,OAAQtX,EAAW,CAC5B7J,KAAM4gB,GAAYG,yBAElB,MAAM,IAAIra,MAA8C0Z,GAAuB,QAoDjFoC,CAAmBH,GACnB,MAAOvgB,GACPwgB,EAAsBxgB,EAGxB,OAAO,SAAqB8Q,EAAOC,GAKjC,QAJc,IAAVD,IACFA,EAAQ,IAGN0P,EACF,MAAMA,EAcR,IAX2C,IAQvCG,GAAa,EACbhJ,EAAY,GAEPiJ,EAAK,EAAGA,EAAKH,EAAiBjlB,OAAQolB,IAAM,CACnD,IAAIC,EAAOJ,EAAiBG,GACxBvB,EAAUkB,EAAcM,GACxBC,EAAsBhQ,EAAM+P,GAC5BE,EAAkB1B,EAAQyB,EAAqB/P,GAEnD,QAA+B,IAApBgQ,EAET,MADiBhQ,GAAUA,EAAO7S,KAC5B,IAAI0G,MAA8C0Z,GAAuB,KAGjF3G,EAAUkJ,GAAQE,EAClBJ,EAAaA,GAAcI,IAAoBD,EAIjD,OADAH,EAAaA,GAAcF,EAAiBjlB,SAAWmB,OAAOC,KAAKkU,GAAOtV,QACtDmc,EAAY7G,GAgEpC,SAASkQ,KACP,IAAK,IAAIC,EAAO1iB,UAAU/C,OAAQ0lB,EAAQ,IAAItlB,MAAMqlB,GAAOJ,EAAO,EAAGA,EAAOI,EAAMJ,IAChFK,EAAML,GAAQtiB,UAAUsiB,GAG1B,OAAqB,IAAjBK,EAAM1lB,OACD,SAAU8c,GACf,OAAOA,GAIU,IAAjB4I,EAAM1lB,OACD0lB,EAAM,GAGRA,EAAM1Y,QAAO,SAAU/N,EAAGmM,GAC/B,OAAO,WACL,OAAOnM,EAAEmM,EAAE0J,WAAM,EAAQ/R,gBAsB/B,SAAS4iB,KACP,IAAK,IAAIF,EAAO1iB,UAAU/C,OAAQ4lB,EAAc,IAAIxlB,MAAMqlB,GAAOJ,EAAO,EAAGA,EAAOI,EAAMJ,IACtFO,EAAYP,GAAQtiB,UAAUsiB,GAGhC,OAAO,SAAUzB,GACf,OAAO,WACL,IAAIhR,EAAQgR,EAAY9O,WAAM,EAAQ/R,WAElC8iB,EAAY,WACd,MAAM,IAAIzc,MAA8C0Z,GAAuB,MAG7EgD,EAAgB,CAClBpR,SAAU9B,EAAM8B,SAChBqE,SAAU,WACR,OAAO8M,EAAU/Q,WAAM,EAAQ/R,aAG/BgjB,EAAQH,EAAYta,KAAI,SAAU0a,GACpC,OAAOA,EAAWF,MAGpB,OADAD,EAAYL,GAAQ1Q,WAAM,EAAQiR,EAAtBP,CAA6B5S,EAAMmG,UACxC,GAAc,GAAc,GAAInG,GAAQ,GAAI,CACjDmG,SAAU8M,MCvpBlB,SAASI,GAAsBC,GAqB7B,OAlBiB,SAAoB9R,GACnC,IAAI2E,EAAW3E,EAAK2E,SAChBrE,EAAWN,EAAKM,SACpB,OAAO,SAAU/N,GACf,OAAO,SAAU4O,GAGf,MAAsB,mBAAXA,EAEFA,EAAOwD,EAAUrE,EAAUwR,GAI7Bvf,EAAK4O,MAQpB,IAAI4Q,GAAQF,KAGZE,GAAMC,kBAAoBH,GAC1B,YC/BA,IACQI,GADJC,IACID,GAAgB,SAAU5X,EAAGrD,GAI7B,OAHAib,GAAgBllB,OAAOogB,gBAClB,CAAEgF,UAAW,cAAgBnmB,OAAS,SAAUqO,EAAGrD,GAAKqD,EAAE8X,UAAYnb,IACvE,SAAUqD,EAAGrD,GAAK,IAAK,IAAI2D,KAAK3D,EAAOjK,OAAOd,UAAUgS,eAAe9R,KAAK6K,EAAG2D,KAAIN,EAAEM,GAAK3D,EAAE2D,KACzFsX,GAAc5X,EAAGrD,IAErB,SAAUqD,EAAGrD,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIvK,UAAU,uBAAyB2lB,OAAOpb,GAAK,iCAE7D,SAASqb,IAAOxU,KAAKoM,YAAc5P,EADnC4X,GAAc5X,EAAGrD,GAEjBqD,EAAEpO,UAAkB,OAAN+K,EAAajK,OAAO0L,OAAOzB,IAAMqb,EAAGpmB,UAAY+K,EAAE/K,UAAW,IAAIomB,KA8BnFC,GAAgD,SAAUC,EAAI7F,GAC9D,IAAK,IAAI5hB,EAAI,EAAG0nB,EAAK9F,EAAK9gB,OAAQiI,EAAI0e,EAAG3mB,OAAQd,EAAI0nB,EAAI1nB,IAAK+I,IAC1D0e,EAAG1e,GAAK6Y,EAAK5hB,GACjB,OAAOynB,GAEPE,GAAY1lB,OAAOuC,eACnBojB,GAAa3lB,OAAO0hB,iBACpBkE,GAAoB5lB,OAAOkgB,0BAC3B2F,GAAsB7lB,OAAOyC,sBAC7BqjB,GAAe9lB,OAAOd,UAAUgS,eAChC6U,GAAe/lB,OAAOd,UAAU8mB,qBAChCC,GAAkB,SAAU7lB,EAAKF,EAAKyG,GAAS,OAAOzG,KAAOE,EAAMslB,GAAUtlB,EAAKF,EAAK,CAAEyQ,YAAY,EAAMsN,cAAc,EAAMD,UAAU,EAAMrX,MAAOA,IAAWvG,EAAIF,GAAOyG,GAC5Kuf,GAAiB,SAAUpoB,EAAGmM,GAC9B,IAAK,IAAIgH,KAAQhH,IAAMA,EAAI,IACnB6b,GAAa1mB,KAAK6K,EAAGgH,IACrBgV,GAAgBnoB,EAAGmT,EAAMhH,EAAEgH,IACnC,GAAI4U,GACA,IAAK,IAAI5B,EAAK,EAAGkC,EAAKN,GAAoB5b,GAAIga,EAAKkC,EAAGtnB,OAAQolB,IACtDhT,EAAOkV,EAAGlC,GACV8B,GAAa3mB,KAAK6K,EAAGgH,IACrBgV,GAAgBnoB,EAAGmT,EAAMhH,EAAEgH,IAEvC,OAAOnT,GAEPsoB,GAAgB,SAAUtoB,EAAGmM,GAAK,OAAO0b,GAAW7nB,EAAG8nB,GAAkB3b,KAkDzEoc,GAAwC,oBAAXrV,QAA0BA,OAAOsV,qCAAuCtV,OAAOsV,qCAAuC,WACnJ,GAAyB,IAArB1kB,UAAU/C,OAEd,MAA4B,iBAAjB+C,UAAU,GACVyiB,GACJA,GAAQ1Q,MAAM,KAAM/R,YAEU,oBAAXoP,QAA0BA,OAAOuV,8BAA+BvV,OAAOuV,6BAyCrG,IAAIC,GAAiC,SAAUC,GAE3C,SAASD,IAEL,IADA,IAAIE,EAAO,GACFzC,EAAK,EAAGA,EAAKriB,UAAU/C,OAAQolB,IACpCyC,EAAKzC,GAAMriB,UAAUqiB,GAEzB,IAAI0C,EAAQF,EAAO9S,MAAM7C,KAAM4V,IAAS5V,KAExC,OADA9Q,OAAOogB,eAAeuG,EAAOH,EAAgBtnB,WACtCynB,EA0BX,OAlCAxB,GAAUqB,EAAiBC,GAU3BzmB,OAAOuC,eAAeikB,EAAiBpZ,OAAOwZ,QAAS,CACnDhW,IAAK,WACD,OAAO4V,GAEX7V,YAAY,EACZsN,cAAc,IAElBuI,EAAgBtnB,UAAUC,OAAS,WAE/B,IADA,IAAImE,EAAM,GACD2gB,EAAK,EAAGA,EAAKriB,UAAU/C,OAAQolB,IACpC3gB,EAAI2gB,GAAMriB,UAAUqiB,GAExB,OAAOwC,EAAOvnB,UAAUC,OAAOwU,MAAM7C,KAAMxN,IAE/CkjB,EAAgBtnB,UAAU2nB,QAAU,WAEhC,IADA,IAAIvjB,EAAM,GACD2gB,EAAK,EAAGA,EAAKriB,UAAU/C,OAAQolB,IACpC3gB,EAAI2gB,GAAMriB,UAAUqiB,GAExB,OAAmB,IAAf3gB,EAAIzE,QAAgBI,MAAMuB,QAAQ8C,EAAI,IAC/B,IAAKkjB,EAAgBzO,KAAKpE,MAAM6S,EAAiBjB,GAAc,MAAC,GAASjiB,EAAI,GAAGnE,OAAO2R,SAE3F,IAAK0V,EAAgBzO,KAAKpE,MAAM6S,EAAiBjB,GAAc,MAAC,GAASjiB,EAAInE,OAAO2R,UAExF0V,EAnCyB,CAoClCvnB,OA6RF,SAAS6nB,GAAavlB,EAAMwlB,GACxB,SAASjN,IAEL,IADA,IAAI4M,EAAO,GACFzC,EAAK,EAAGA,EAAKriB,UAAU/C,OAAQolB,IACpCyC,EAAKzC,GAAMriB,UAAUqiB,GAEzB,GAAI8C,EAAe,CACf,IAAIC,EAAWD,EAAcpT,WAAM,EAAQ+S,GAC3C,IAAKM,EACD,MAAM,IAAI/e,MAAM,0CAEpB,OAAOie,GAAeA,GAAe,CACjC3kB,KAAMA,EACN+S,QAAS0S,EAAS1S,SACnB,SAAU0S,GAAY,CAAEC,KAAMD,EAASC,OAAS,UAAWD,GAAY,CAAErR,MAAOqR,EAASrR,QAEhG,MAAO,CAAEpU,KAAMA,EAAM+S,QAASoS,EAAK,IAKvC,OAHA5M,EAAcvW,SAAW,WAAc,MAAO,GAAKhC,GACnDuY,EAAcvY,KAAOA,EACrBuY,EAActa,MAAQ,SAAU4U,GAAU,OAAOA,EAAO7S,OAASA,GAC1DuY,EAcX,SAASoN,GAA8BC,GACnC,IAEIC,EAFAC,EAAa,GACbC,EAAiB,GAEjBC,EAAU,CACVC,QAAS,SAAUC,EAAqB/E,GASpC,IAAInhB,EAAsC,iBAAxBkmB,EAAmCA,EAAsBA,EAAoBlmB,KAC/F,GAAIA,KAAQ8lB,EACR,MAAM,IAAIpf,MAAM,uEAGpB,OADAof,EAAW9lB,GAAQmhB,EACZ6E,GAEXG,WAAY,SAAUC,EAASjF,GAO3B,OADA4E,EAAexjB,KAAK,CAAE6jB,QAASA,EAASjF,QAASA,IAC1C6E,GAEXK,eAAgB,SAAUlF,GAOtB,OADA0E,EAAqB1E,EACd6E,IAIf,OADAJ,EAAgBI,GACT,CAACF,EAAYC,EAAgBF,GAqExC,SAASS,GAAYlkB,GACjB,IAAIlC,EAAOkC,EAAQlC,KACnB,IAAKA,EACD,MAAM,IAAIwG,MAAM,+CAEpB,IA4BI6f,EA5BAC,EAA8C,mBAAxBpkB,EAAQokB,aAA6BpkB,EAAQokB,aAAe,GAASpkB,EAAQokB,cAAc,eAEjHrE,EAAW/f,EAAQ+f,UAAY,GAC/BsE,EAAehoB,OAAOC,KAAKyjB,GAC3BuE,EAA0B,GAC1BC,EAA0B,GAC1BvO,EAAiB,GAiBrB,SAASwO,IACL,IAAIhC,EAAsC,mBAA1BxiB,EAAQykB,cAA+BlB,GAA8BvjB,EAAQykB,eAAiB,CAACzkB,EAAQykB,eAAgBC,EAAKlC,EAAG,GAAIiC,OAAuB,IAAPC,EAAgB,GAAKA,EAAIC,EAAKnC,EAAG,GAAImB,OAAwB,IAAPgB,EAAgB,GAAKA,EAAIC,EAAKpC,EAAG,GAAIiB,OAA4B,IAAPmB,OAAgB,EAASA,EACxSC,EAAoBtC,GAAeA,GAAe,GAAIkC,GAAgBF,GAC1E,OA9FR,SAAuBH,EAAcU,EAAsBnB,EAAgBF,QAChD,IAAnBE,IAA6BA,EAAiB,IAClD,IACIoB,EADAvC,EAAqC,mBAAzBsC,EAAsCvB,GAA8BuB,GAAwB,CAACA,EAAsBnB,EAAgBF,GAAqBC,EAAalB,EAAG,GAAIwC,EAAsBxC,EAAG,GAAIyC,EAA0BzC,EAAG,GAEtP,GAPJ,SAAyB9Z,GACrB,MAAoB,mBAANA,EAMVwc,CAAgBd,GAChBW,EAAkB,WAAc,OAAO,GAAgBX,KAAgB,oBAGtE,CACD,IAAIe,EAAuB,GAAgBf,GAAc,eAEzDW,EAAkB,WAAc,OAAOI,GAE3C,SAASpG,EAAQvO,EAAOC,QACN,IAAVD,IAAoBA,EAAQuU,KAChC,IAAIK,EAAexD,GAAc,CAC7B8B,EAAWjT,EAAO7S,OACnBonB,EAAoBvc,QAAO,SAAU+Z,GAEpC,OAAOwB,EADOxB,EAAGwB,SACFvT,MAChBjK,KAAI,SAAUgc,GAEb,OADeA,EAAGzD,YAMtB,OAHmE,IAA/DqG,EAAa3c,QAAO,SAAU4c,GAAM,QAASA,KAAOnqB,SACpDkqB,EAAe,CAACH,IAEbG,EAAald,QAAO,SAAUyH,EAAe2V,GAChD,GAAIA,EAAa,CAET,IAQInpB,EATR,GAAI,EAASwT,GAGT,YAAsB,KADlBxT,EAASmpB,EADD3V,EACoBc,IAErBd,EAEJxT,EAEN,GAAK,EAAYwT,GAWlB,OAAO,GAAgBA,GAAe,SAAU4V,GAC5C,OAAOD,EAAYC,EAAO9U,MAV9B,QAAsB,KADlBtU,EAASmpB,EAAY3V,EAAec,IACL,CAC/B,GAAsB,OAAlBd,EACA,OAAOA,EAEX,MAAMrL,MAAM,qEAEhB,OAAOnI,EAQf,OAAOwT,IACRa,GAGP,OADAuO,EAAQgG,gBAAkBA,EACnBhG,EAqCIyG,CAAcpB,EAAcS,EAAmBlB,EAAgBF,GAG1E,OAtBAY,EAAazK,SAAQ,SAAU6L,GAC3B,IAEIH,EACAI,EAHAC,EAA0B5F,EAAS0F,GACnC7nB,EAAgBE,EAhBT,IAgBe2nB,EAGtB,YAAaE,GACbL,EAAcK,EAAwB5G,QACtC2G,EAAkBC,EAAwBC,SAG1CN,EAAcK,EAElBrB,EAAwBmB,GAAeH,EACvCf,EAAwB3mB,GAAQ0nB,EAChCtP,EAAeyP,GAAeC,EAAkBvC,GAAavlB,EAAM8nB,GAAmBvC,GAAavlB,MAQhG,CACHE,KAAMA,EACNihB,QAAS,SAAUvO,EAAOC,GAGtB,OAFK0T,IACDA,EAAWK,KACRL,EAAS3T,EAAOC,IAE3BoV,QAAS7P,EACToP,aAAcd,EACdS,gBAAiB,WAGb,OAFKZ,IACDA,EAAWK,KACRL,EAASY,oBA+U5B,IAWIe,GAAmB,CACnB,OACA,UACA,QACA,QAEAC,GACA,SAAyBpV,EAAS2S,GAC9BnW,KAAKwD,QAAUA,EACfxD,KAAKmW,KAAOA,GAIhB0C,GACA,SAAyBrV,EAAS2S,GAC9BnW,KAAKwD,QAAUA,EACfxD,KAAKmW,KAAOA,GAIhB2C,GAAqB,SAAUjjB,GAC/B,GAAqB,iBAAVA,GAAgC,OAAVA,EAAgB,CAE7C,IADA,IAAIkjB,EAAc,GACT5F,EAAK,EAAG6F,EAAqBL,GAAkBxF,EAAK6F,EAAmBjrB,OAAQolB,IAAM,CAC1F,IAAI8F,EAAWD,EAAmB7F,GACH,iBAApBtd,EAAMojB,KACbF,EAAYE,GAAYpjB,EAAMojB,IAGtC,OAAOF,EAEX,MAAO,CAAEG,QAAS3E,OAAO1e,KAE7B,SAASsjB,GAAiBC,EAAYC,EAAgBxmB,GAClD,IAAIymB,EAAYtD,GAAaoD,EAAa,cAAc,SAAU5V,EAAS+V,EAAW1O,EAAKsL,GAAQ,MAAO,CACtG3S,QAASA,EACT2S,KAAMb,GAAcF,GAAe,GAAIe,GAAQ,IAAK,CAChDtL,IAAKA,EACL0O,UAAWA,EACXC,cAAe,kBAGnBC,EAAUzD,GAAaoD,EAAa,YAAY,SAAUG,EAAW1O,EAAKsL,GAAQ,MAAO,CACzF3S,aAAS,EACT2S,KAAMb,GAAcF,GAAe,GAAIe,GAAQ,IAAK,CAChDtL,IAAKA,EACL0O,UAAWA,EACXC,cAAe,gBAGnBE,EAAW1D,GAAaoD,EAAa,aAAa,SAAUvU,EAAO0U,EAAW1O,EAAKrH,EAAS2S,GAAQ,MAAO,CAC3G3S,QAASA,EACTqB,OAAQhS,GAAWA,EAAQ8mB,gBAAkBb,IAAoBjU,GAAS,YAC1EsR,KAAMb,GAAcF,GAAe,GAAIe,GAAQ,IAAK,CAChDtL,IAAKA,EACL0O,UAAWA,EACXK,oBAAqBpW,EACrBgW,cAAe,WACfK,QAAmD,gBAAhC,MAAThV,OAAgB,EAASA,EAAMlU,MACzCmpB,UAAqD,oBAAhC,MAATjV,OAAgB,EAASA,EAAMlU,YAI/CopB,EAAgC,oBAApBC,gBAAkCA,gBAAiC,WAC/E,SAASC,IACLja,KAAKka,OAAS,CACVL,SAAS,EACTM,iBAAkB,aAElBC,cAAe,WACX,OAAO,GAEXC,QAAS,aAETC,oBAAqB,cAY7B,OARAL,EAAQ7rB,UAAUmsB,MAAQ,aAQnBN,EAvBuE,GA+GlF,OAAO/qB,OAAO+K,QAtFd,SAAuB4Q,GACnB,OAAO,SAAU/D,EAAUrE,EAAU+X,GACjC,IAEIC,EAFAlB,GAAwB,MAAX1mB,OAAkB,EAASA,EAAQ6nB,aAAe7nB,EAAQ6nB,YAAY7P,GApGtF,SAAU8P,QACN,IAATA,IAAmBA,EAAO,IAG9B,IAFA,IAAIC,EAAK,GACL3tB,EAAI0tB,EACD1tB,KACH2tB,GANU,mEAMwB,GAAhB1J,KAAKC,SAAgB,GAE3C,OAAOyJ,EA6F+FC,GAC1FC,EAAkB,IAAIf,EAEtBgB,EAAiB,IAAItL,SAAQ,SAAUlC,EAAGyN,GAAU,OAAOF,EAAgBZ,OAAOC,iBAAiB,SAAS,WAAc,OAAOa,EAAO,CAAErqB,KAAM,aAAcuoB,QAASuB,GAAe,kBACtLQ,GAAU,EAOVC,EAAU,WACV,OAjiCQC,EAiiCOnb,KAAM,KAjiCQob,EAiiCF,WACvB,IAAIC,EAAIC,EAAIC,EAAaC,EAAiBC,EAC1C,OAvlC4B,SAAUC,EAASC,GAC/D,IAAsGlf,EAAGW,EAAGH,EAAGP,EAA3G6Q,EAAI,CAAEqO,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAP5e,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAO6e,KAAM,GAAIC,IAAK,IAChG,OAAOrf,EAAI,CAAEhI,KAAMsnB,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAX1f,SAA0BI,EAAEJ,OAAO4S,UAAY,WAAa,OAAOlP,OAAUtD,EACvJ,SAASsf,EAAKnf,GAAK,OAAO,SAAUK,GAAK,OACzC,SAAciT,GACV,GAAI1T,EAAG,MAAM,IAAI7N,UAAU,mCAC3B,KAAO2e,OACH,GAAI9Q,EAAI,EAAGW,IAAMH,EAAY,EAARkT,EAAG,GAAS/S,EAAU,OAAI+S,EAAG,GAAK/S,EAAS,SAAOH,EAAIG,EAAU,SAAMH,EAAE3O,KAAK8O,GAAI,GAAKA,EAAE1I,SAAWuI,EAAIA,EAAE3O,KAAK8O,EAAG+S,EAAG,KAAK8L,KAAM,OAAOhf,EAE3J,OADIG,EAAI,EAAGH,IAAGkT,EAAK,CAAS,EAARA,EAAG,GAAQlT,EAAEpH,QACzBsa,EAAG,IACP,KAAK,EAAG,KAAK,EAAGlT,EAAIkT,EAAI,MACxB,KAAK,EAAc,OAAX5C,EAAEqO,QAAgB,CAAE/lB,MAAOsa,EAAG,GAAI8L,MAAM,GAChD,KAAK,EAAG1O,EAAEqO,QAASxe,EAAI+S,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAK5C,EAAEwO,IAAIG,MAAO3O,EAAEuO,KAAKI,MAAO,SACxC,QACI,MAAkBjf,GAAZA,EAAIsQ,EAAEuO,MAAY/tB,OAAS,GAAKkP,EAAEA,EAAElP,OAAS,KAAkB,IAAVoiB,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAE5C,EAAI,EAAG,SACjG,GAAc,IAAV4C,EAAG,MAAclT,GAAMkT,EAAG,GAAKlT,EAAE,IAAMkT,EAAG,GAAKlT,EAAE,IAAM,CAAEsQ,EAAEqO,MAAQzL,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAY5C,EAAEqO,MAAQ3e,EAAE,GAAI,CAAEsQ,EAAEqO,MAAQ3e,EAAE,GAAIA,EAAIkT,EAAI,MAC7D,GAAIlT,GAAKsQ,EAAEqO,MAAQ3e,EAAE,GAAI,CAAEsQ,EAAEqO,MAAQ3e,EAAE,GAAIsQ,EAAEwO,IAAI/oB,KAAKmd,GAAK,MACvDlT,EAAE,IAAIsQ,EAAEwO,IAAIG,MAChB3O,EAAEuO,KAAKI,MAAO,SAEtB/L,EAAKwL,EAAKrtB,KAAKotB,EAASnO,GAC1B,MAAOhb,GAAK4d,EAAK,CAAC,EAAG5d,GAAI6K,EAAI,EAAK,QAAUX,EAAIQ,EAAI,EACtD,GAAY,EAARkT,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEta,MAAOsa,EAAG,GAAKA,EAAG,QAAK,EAAQ8L,MAAM,GArB9BE,CAAK,CAACtf,EAAGK,MAolClCkf,CAAYpc,MAAM,SAAUqV,GAC/B,OAAQA,EAAGuG,OACP,KAAK,EAGD,OAFAvG,EAAGyG,KAAK9oB,KAAK,CAAC,EAAG,EAAG,CAAE,IAoFjC,QADD6C,EAlFY2lB,EAAyE,OAAtDH,EAAgB,MAAXxoB,OAAkB,EAASA,EAAQinB,gBAAqB,EAASuB,EAAG/sB,KAAKuE,EAASgY,EAAK,CAAEpI,SAAUA,EAAU+X,MAAOA,MAmF9H,iBAAV3kB,GAA4C,mBAAfA,EAAM6Z,KAlFE,CAAC,EAAa,GAChD,CAAC,EAAa8L,GACzB,KAAK,EACDA,EAAkBnG,EAAGwG,OACrBxG,EAAGuG,MAAQ,EACf,KAAK,EACD,IAAwB,IAApBJ,EACA,KAAM,CACF7qB,KAAM,iBACNuoB,QAAS,sDAKjB,OAFA+B,GAAU,EACVnU,EAAS2S,EAAQF,EAAW1O,EAAiE,OAA3DyQ,EAAgB,MAAXzoB,OAAkB,EAASA,EAAQwpB,qBAA0B,EAASf,EAAGhtB,KAAKuE,EAAS,CAAE0mB,UAAWA,EAAW1O,IAAKA,GAAO,CAAEpI,SAAUA,EAAU+X,MAAOA,MACxL,CAAC,EAAa/K,QAAQ6M,KAAK,CAC1BvB,EACAtL,QAAQ8M,QAAQlD,EAAexO,EAAK,CAChC/D,SAAUA,EACVrE,SAAUA,EACV+X,MAAOA,EACPjB,UAAWA,EACXW,OAAQY,EAAgBZ,OACxBsC,gBAAiB,SAAU3mB,EAAOsgB,GAC9B,OAAO,IAAIyC,GAAgB/iB,EAAOsgB,IAEtCsG,iBAAkB,SAAU5mB,EAAOsgB,GAC/B,OAAO,IAAI0C,GAAgBhjB,EAAOsgB,OAEtCzG,MAAK,SAAU1gB,GACf,GAAIA,aAAkB4pB,GAClB,MAAM5pB,EAEV,OAAIA,aAAkB6pB,GACXS,EAAUtqB,EAAOwU,QAAS+V,EAAW1O,EAAK7b,EAAOmnB,MAErDmD,EAAUtqB,EAAQuqB,EAAW1O,SAGpD,KAAK,EAED,OADA0Q,EAAclG,EAAGwG,OACV,CAAC,EAAa,GACzB,KAAK,EAGD,OAFAJ,EAAQpG,EAAGwG,OACXN,EAAcE,aAAiB7C,GAAkBc,EAAS,KAAMH,EAAW1O,EAAK4Q,EAAMjY,QAASiY,EAAMtF,MAAQuD,EAAS+B,EAAOlC,EAAW1O,GACjI,CAAC,EAAa,GACzB,KAAK,EAKD,OAJehY,IAAYA,EAAQ6pB,4BAA8BhD,EAAShrB,MAAM6sB,IAAgBA,EAAYpF,KAAK2D,WAE7GhT,EAASyU,GAEN,CAAC,EAAcA,GA+BtD,IAAoB1lB,MAxnCT,IAAI4Z,SAAQ,SAAU8M,EAASvB,GAClC,IAAI1B,EAAY,SAAUzjB,GACtB,IACIsmB,EAAKf,EAAU1mB,KAAKmB,IAExB,MAAOtD,GACHyoB,EAAOzoB,KAGXmnB,EAAW,SAAU7jB,GACrB,IACIsmB,EAAKf,EAAUuB,MAAM9mB,IAEzB,MAAOtD,GACHyoB,EAAOzoB,KAGX4pB,EAAO,SAAU5gB,GAAK,OAAOA,EAAE0gB,KAAOM,EAAQhhB,EAAE1F,OAAS4Z,QAAQ8M,QAAQhhB,EAAE1F,OAAO6Z,KAAK4J,EAAWI,IACtGyC,GAAMf,EAAYA,EAAUvY,MAAMsY,EA8gCL,OA9gC2BzmB,WAnBlD,IAAUymB,EAAqBC,EAgiCnB,GA+Dd,OAAOlsB,OAAO+K,OAAOihB,EAAS,CAC1BX,MAtEJ,SAAeqC,GACP3B,IACAR,EAAcmC,EACd9B,EAAgBP,UAoEpBhB,UAAWA,EACX1O,IAAKA,EACLgS,OAAQ,WACJ,OAAO3B,EAAQxL,KAAKoN,UAKA,CAChCrD,QAASA,EACTC,SAAUA,EACVJ,UAAWA,EACXF,WAAYA,IAGpB,SAAS0D,GAAaxZ,GAClB,GAAIA,EAAO6S,MAAQ7S,EAAO6S,KAAKyD,kBAC3B,MAAMtW,EAAOE,QAEjB,GAAIF,EAAOuB,MACP,MAAMvB,EAAOuB,MAEjB,OAAOvB,EAAOE,ssBN1rCimI,WAAa,SAASvG,EAAEJ,EAAEG,GAAG,IAAIC,EAAEsP,EAAE1P,GAAG,OAAOI,EAAEA,EAAE4C,WAAW7C,EAAEuP,EAAE1P,GAAGI,EAAE,CAACkQ,cAAa,EAAGtN,WAAW7C,EAAE8C,IAAI,WAAW,IAAI9C,EAAEgD,KAAKmM,IAAG,OAAgDmC,GAAGxO,IAAI9C,EAAEH,IAAI8P,IAAI,SAAS3P,GAAG,IAAIC,EAAE+C,KAAKmM,IAA6CmC,GAAG3B,IAAI1P,EAAEJ,EAAEG,KAAKC,EAAE,SAAS1K,EAAEsK,GAAG,IAAI,IAAIG,EAAEH,EAAE9O,OAAO,EAAEiP,GAAG,EAAEA,IAAI,CAAC,IAAIC,EAAEJ,EAAEG,GAAGmP,IAAG,IAAIlP,EAAE0Q,EAAE,OAAO1Q,EAAEhQ,GAAG,KAAK,EAAED,EAAEiQ,IAAInC,GAAEmC,GAAG,MAAM,KAAK,EAAE2C,EAAE3C,IAAInC,GAAEmC,KAAK,SAAS2C,EAAE/C,GAAG,IAAI,IAAIG,EAAEH,EAAEI,EAAEA,EAAEJ,EAAE/B,EAAEvI,EAAEia,GAAGvP,GAAGhQ,EAAEsF,EAAExE,OAAO,EAAEd,GAAG,EAAEA,IAAI,CAAC,IAAI2S,EAAErN,EAAEtF,GAAG,GAAG2S,IAAIuM,GAAE,CAAC,IAAInf,EAAEgQ,EAAE4C,GAAG,QAAG,IAAS5S,IAAIsQ,EAAEN,EAAE4C,GAAG,OAAM,EAAG,IAAInD,EAAEQ,EAAE2C,GAAG2M,EAAE9P,GAAGA,EAAE0P,IAAG,GAAGI,EAAEA,EAAEtP,IAAIjQ,GAAGmI,GAAEsH,EAAEzP,GAAG,OAAM,GAAI,IAAIkQ,IAAIF,EAAEmP,IAAG,OAAO5Z,EAAExE,SAASye,GAAGxP,GAAGjP,QAAQmP,EAAE,EAAE,GAAG,SAASlQ,EAAE6P,GAAG,IAAIG,EAAEH,EAAE/B,EAAE,GAAGkC,EAAEjP,SAAS8O,EAAEI,EAAElP,OAAO,OAAM,EAAG,IAAIkP,EAAE/N,OAAO0C,yBAAyBoL,EAAEA,EAAEjP,OAAO,GAAG,GAAGkP,IAAIA,EAAE6C,IAAI,OAAM,EAAG,IAAI,IAAIvN,EAAE,EAAEA,EAAEyK,EAAEjP,OAAOwE,IAAI,IAAIyK,EAAEoD,eAAe7N,GAAG,OAAM,EAAG,OAAM,EAAgD,IAAIga,EAAE,IAAz9F,SAAW1P,EAAEG,GAAGsQ,GAAGzQ,KAAKyQ,GAAGzQ,GAAGG,GAA87FzI,CAAE,MAAM,CAACoa,EAAE,SAAS9R,EAAEG,GAAG,IAAIzK,EAAEpE,MAAMuB,QAAQmN,GAAG5P,EAAE,SAAS4P,EAAEG,GAAG,GAAGH,EAAE,CAAC,IAAI,IAAItK,EAAEpE,MAAM6O,EAAEjP,QAAQd,EAAE,EAAEA,EAAE+P,EAAEjP,OAAOd,IAAIiC,OAAOuC,eAAec,EAAE,GAAGtF,EAAEgQ,EAAEhQ,GAAE,IAAK,OAAOsF,EAAE,IAAIqN,EAAEqN,GAAGjQ,UAAU4C,EAAEuM,IAAG,IAAI,IAAI7O,EAAEkP,GAAG5M,GAAG5S,EAAE,EAAEA,EAAEsQ,EAAEvP,OAAOf,IAAI,CAAC,IAAIyP,EAAEa,EAAEtQ,GAAG4S,EAAEnD,GAAGQ,EAAER,EAAEI,KAAK+C,EAAEnD,GAAGoD,YAAY,OAAO3Q,OAAO0L,OAAO1L,OAAO2C,eAAemL,GAAG4C,GAApQ,CAAwQrN,EAAEsK,GAAG+C,EAAE,CAAC3S,EAAEsF,EAAE,EAAE,EAAEiL,EAAER,EAAEA,EAAEQ,EAAE+P,KAAII,GAAE,EAAGG,GAAE,EAAGE,EAAE,GAAGpR,EAAEI,EAAEC,EAAInC,EAAE7N,EAAE2S,EAAE,KAAK6N,GAAE,EAAGY,GAAE,GAAI,OAAOnf,OAAOuC,eAAexE,EAAEkf,GAAE,CAACtW,MAAM+J,EAAEsN,UAAS,IAAKjgB,GAAGygB,EAAE,SAAS7Q,EAAEI,EAAE2C,GAAGA,EAAE5C,EAAEC,IAAIA,EAAEkP,IAAG3O,IAAIX,GAAGtK,EAAEsK,EAAEC,IAAID,EAAES,GAAG,SAAST,EAAEG,GAAG,GAAGA,GAAG,iBAAiBA,EAAE,CAAC,IAAIC,EAAED,EAAEmP,IAAG,GAAGlP,EAAE,CAAC,IAAI1K,EAAE0K,EAAEA,EAAE2C,EAAE3C,EAAEnC,EAAE2B,EAAEQ,EAAE+Q,EAAE7Y,EAAE8H,EAAEhQ,EAAE,GAAG,IAAIkI,EAAElI,EAAE2S,GAAE,SAAU5C,GAAGA,IAAImP,UAAI,IAAS5Z,EAAEyK,IAAIM,EAAE/K,EAAEyK,GAAGP,EAAEO,IAAIH,EAAE+C,EAAE5C,KAAKP,EAAEO,IAAG,EAAGlC,GAAEmC,QAAQhQ,EAAEsF,GAAE,SAAUsK,QAAG,IAAS+C,EAAE/C,IAAIS,EAAEsC,EAAE/C,KAAKJ,EAAEI,IAAG,EAAG/B,GAAEmC,YAAY,GAAG,IAAI9H,EAAE,CAAC,GAAGnI,EAAEiQ,KAAKnC,GAAEmC,GAAGR,EAAE1O,QAAO,GAAI6R,EAAE7R,OAAOwE,EAAExE,OAAO,IAAI,IAAIwe,EAAE3M,EAAE7R,OAAOwe,EAAEha,EAAExE,OAAOwe,IAAI9P,EAAE8P,IAAG,OAAQ,IAAI,IAAIrP,EAAE3K,EAAExE,OAAOmP,EAAE0C,EAAE7R,OAAOmP,IAAIT,EAAES,IAAG,EAAG,IAAI,IAAIJ,EAAEoU,KAAK6L,IAAInd,EAAE7R,OAAOwE,EAAExE,QAAQ6O,EAAE,EAAEA,EAAEE,EAAEF,IAAIgD,EAAEQ,eAAexD,KAAKH,EAAEG,IAAG,QAAI,IAASH,EAAEG,IAAIC,EAAE+C,EAAEhD,OAAle,CAA0eC,EAAEC,EAAE,IAAIvK,EAAEsK,EAAEC,KAAK8R,EAAE,SAAS/R,GAAG,OAAO,IAAIA,EAAE5P,EAAE2S,EAAE/C,GAAG7P,EAAE6P,MMu0C//L,GCrzCA,MAWMmgB,GAAaxuB,IACjB,MAAMyuB,EAAWzuB,EAAMb,MAAM,KAE7B,OAAO,IAAIuvB,KAAKA,KAAKC,IAAIC,SAASH,EAAS,GAAI,IAAKG,SAASH,EAAS,GAAI,IAAM,EAAGG,SAASH,EAAS,GAAI,OAG9FI,GAAyBlE,GACpC,+BACAmE,MAAOC,GAAuBf,gBAAAA,MAC5B,MAAM/gB,EAAO,GAAEyE,OAAOsd,6DAA6DD,IAC7EE,QAAiBC,MAAMjiB,GAE7B,OAAKgiB,EAASE,SAKKF,EAASG,OAHnBpB,QADaiB,EAASG,WAStBC,GAAc1E,GACzB,0BACAmE,MAAO9Z,GAAgCgZ,gBAAAA,MACrC,MAAM,KAAEhnB,EAAF,QAAQ4M,GAAYoB,EACpB/H,EAAO,GAAEyE,OAAOsd,kDAAkDpb,IAClEqb,QAAiBC,MAAMjiB,EAAK,CAChCqiB,OAAQ,OACRnC,KAAMnmB,EACNuoB,YAAa,YAGf,OAAKN,EAASE,SAKKF,EAASG,OAHnBpB,QADaiB,EAASO,WAS7BC,GAAkB,CAACza,EAAqBpB,KAC5C,MAAM8b,EAAuB,GACvBC,EAA+B,GA2DrC,OA1DA3a,EAAQiJ,SAAS2R,IACf,MAAMvhB,EAAI,GAAH,GAAQuhB,GACf,IAAIC,EAAa,EACA,SAAbxhB,EAAEyhB,SACJD,EAAa,GAEE,WAAbxhB,EAAEyhB,SACJD,EAAa,GAEf,MAAM7oB,EAA2B,CAC/B4M,QAAAA,EACAmc,KAAM,CACJC,UAAW3hB,EAAE4hB,WACbC,SAAU7hB,EAAE6hB,SACZC,YAAa3B,GAAUngB,EAAE8hB,aACzBL,OAAQD,EACRO,aAAc/hB,EAAEgiB,aAChBC,kBAAmB,KACnBC,YAAa,KACbC,iBAAkB,KAClBC,MAAO,OAGXpiB,EAAEqiB,WAAa5B,UACb,MAAM7hB,EAAO,GAAEyE,OAAOsd,oCAChB2B,EAAoBrpB,KAAKC,UAAU,CACvCyoB,UAAWhpB,EAAK+oB,KAAKC,UACrBE,SAAUlpB,EAAK+oB,KAAKG,SACpBE,aAAcppB,EAAK+oB,KAAKK,aACxBN,OAAQ9oB,EAAK+oB,KAAKD,OAClBK,YAAanpB,EAAK+oB,KAAKI,cAEzB,GAAKR,EAAmB5jB,SAAS4kB,GAG/B,MAAMhoB,MAAM,yCAFZgnB,EAAmBnrB,KAAKmsB,GAK1B,MAAM1B,QAAiBC,MAAMjiB,EAAK,CAChCqiB,OAAQ,OACRnC,KAAM7lB,KAAKC,UAAUP,GACrBuoB,YAAa,UACbqB,QAAS,CACP,eAAgB,sBAIpB,IAAK3B,EAASE,GAAI,CAChB,MAAM9Y,QAAc4Y,EAASO,OAC7B,MAAM7mB,MAAM0N,GAId,aADmB4Y,EAASG,QAI9BM,EAASlrB,KAAK6J,MAETqhB,GAGHmB,GAAkBtI,GAAY,CAClCpmB,KAAM,aACNsmB,aAxH6B,CAC7BqI,WAAY,GACZC,WAAW,EACXnd,QAAS,KACT8b,SAAU,GACVsB,QAAS,GACTC,QAAS,GACTC,OAAQ,GACRvD,KAAM,GAiHNvJ,SAAU,CACR+M,YAAYtc,EAAOC,GACjB,MAAMsc,EAAWvc,EACjBuc,EAAS1B,SAAW5a,EAAOE,QAAQlI,QAChCuB,IAAO+iB,EAASF,OAAOpkB,QACrB/I,QAAoC,IAAtBA,EAAeqoB,KAC9BvhB,KACC9G,GAAOA,EAAeqoB,KACvBrgB,SAASsC,EAAE+d,MAKf,MAAMiF,EAAeD,EAAS1B,SAAS5iB,QAAQuB,GAAMA,EAAEijB,mBAAqBjjB,EAAEijB,kBAAkB/xB,OAAS,IACzG,GAAI8xB,EAAa9xB,QAAU6xB,EAAS1B,SAASnwB,SAAW8xB,EAAa9xB,OACnE6xB,EAASzD,KAAO,MACX,OACL,MAAM+B,EAAuBD,GAAgB2B,EAAS1B,SAAV,UAAoB0B,EAASxd,eAA7B,aAAoB,EAAkBhT,KAClFwwB,EAAS1B,SAAWA,EACpB0B,EAASzD,KAAO,EAElB,OAAOyD,GAETG,YAAY1c,EAAOC,GACjB,MAAMsc,EAAWvc,EACX+a,EAAUwB,EAAS1B,SAAS8B,MAAMnjB,GAAMA,EAAE+d,KAAOtX,EAAOE,UAW9D,OAVI4a,IACFA,EAAQ0B,kBAAkBrT,SAASwT,IACjC,MAAMC,EAAoBN,EAASJ,QAAQW,WAAW1jB,GAAMA,EAAE2jB,OAASH,EAAGG,OACtEF,GAAqB,GACvBN,EAASJ,QAAQnN,OAAO6N,EAAmB,MAG/C9B,EAAQxjB,QAAS,GAGZglB,GAETS,YAAYhd,EAAOC,GACjB,MAAMsc,EAAWvc,EACX+a,EAAUwB,EAAS1B,SAAS8B,MAAMnjB,GAAMA,EAAE+d,KAAOtX,EAAOE,UAK9D,OAJI4a,IACFA,EAAQxjB,QAAS,EACjBwjB,EAAQkC,MAAO,GAEVV,GAETW,iBAAiBld,EAAOC,GACtB,MAAMsc,EAAWvc,EACX+a,EAAUwB,EAAS1B,SAAS8B,MAAMnjB,GAAMA,EAAE+d,KAAOtX,EAAOE,QAAQoX,KACtE,GAAIwD,EAAS,CACX,MAAMoC,EAAQpC,EAAQ0B,kBAAkBE,MAAMvjB,GAAMA,EAAE2jB,OAAS9c,EAAOE,QAAQ4c,OAC1EI,IACEA,EAAM5B,eAAiBR,EAAQS,eACjC2B,EAAM5B,aAAeR,EAAQS,aAC7B2B,EAAMC,cAAe,GAEvBrC,EAAQ0B,kBAAkBrT,SAASwT,IACjC,MAAMC,EAAoBN,EAASJ,QAAQW,WAAW1jB,GAAMA,EAAE2jB,OAASH,EAAGG,OACtEF,GAAqB,GACvBN,EAASJ,QAAQnN,OAAO6N,EAAmB,MAG/CN,EAASJ,QAAQxsB,KAAKwtB,IAExBpC,EAAQxjB,QAAS,EACjBwjB,EAAQkC,MAAO,EAEjB,OAAOV,GAGTc,iCAAiCrd,EAAOC,GAA+D,MACrG,MAAMsc,EAAWvc,EACXmc,EAAyB,GAC/Blc,EAAOE,QAAQgc,QAAQ/S,SAAS+T,IAAU,MACxC,MAAM/jB,EAAI,GAAH,GAAQ+jB,GACThrB,EAA2B,CAC/B4M,SAAS,UAAAwd,EAASxd,eAAT,eAAkBhT,MAAO,GAClCuxB,KAAMlkB,EAAE2jB,KACRQ,UAAU,EACVH,aAAcD,EAAMC,aACpB7B,aAAc4B,EAAM5B,cAEtBniB,EAAEyiB,WAAa5B,UACb,MAAM7hB,EAAO,GAAEyE,OAAOsd,oCAChBC,QAAiBC,MAAMjiB,EAAK,CAChCqiB,OAAQ,OACRnC,KAAM7lB,KAAKC,UAAUP,GACrBuoB,YAAa,UACbqB,QAAS,CACP,eAAgB,sBAIpB,IAAK3B,EAASE,GAAI,CAChB,MAAM9Y,QAAc4Y,EAASO,OAC7B,MAAM7mB,MAAM0N,GAId,aADmB4Y,EAASG,QAI9B4B,EAAQxsB,KAAKyJ,MAGf,MAAMyhB,EAAuBD,GAAgB3a,EAAOE,QAAQ0a,SAAS5iB,QAAQuB,GAAMA,EAAEjC,SAAzC,UAAkDglB,EAASxd,eAA3D,aAAkD,EAAkBhT,KAKhH,OAHAwwB,EAASzD,KAAO,EAChByD,EAASJ,QAAUA,EACnBI,EAAS1B,SAAWA,EACb0B,GAETiB,WAAWxd,EAAOC,GAChB,MAAMsc,EAAWvc,EAGjB,OAFAuc,EAASH,QAAUnc,EAAOE,QAC1Boc,EAASzD,KAAO,EACTyD,GAETkB,UAAUzd,EAAOC,GACf,MAAMsc,EAAWvc,EAQjB,OAPAuc,EAASzD,KAAO7Y,EAAOE,QACD,IAAlBoc,EAASzD,OACXyD,EAAS1B,SAAW,GACpB0B,EAASJ,QAAU,GACnBI,EAASH,QAAU,GACnBG,EAASF,OAAS,IAEbE,GAETmB,YAAY1d,EAAOC,GACjB,MAAMsc,EAAWvc,EACX2d,EAAiB1d,EAAOE,QACxByd,EAAe3d,EAAOE,QAC5B,GAAIwd,EAAepG,GAAI,CACrB,MAAMvmB,EAAQurB,EAAS1B,SAASiC,WAAWtjB,GAAMA,EAAE+d,KAAOoG,EAAepG,KACzEgF,EAAS1B,SAAS7L,OAAOhe,EAAO,GAChCurB,EAASF,OAAO1sB,KAAKguB,GAEvB,GAAIC,EAAab,KAAM,CACrB,MAAM/rB,EAAQurB,EAASJ,QAAQW,WAAW1jB,GAAMA,EAAE2jB,OAASa,EAAab,OACxER,EAASJ,QAAQnN,OAAOhe,EAAO,GAC/BurB,EAASF,OAAO1sB,KAAKiuB,GAGvB,OAAOrB,GAETsB,kBAAkB7d,GAChB,MAAMuc,EAAWvc,EAEjB,OADAuc,EAASxd,aAAU9H,EACZslB,IAGXtI,cAAgBb,IACdA,EAAQC,QAAQ2G,GAAuB/D,WAAW,CAACjW,EAAOC,KACvCD,EACRjB,QAAUkB,EAAOE,WAE5BiT,EAAQC,QAAQ2G,GAAuB3D,UAAWrW,IAC/BA,EACRjB,aAAU9H,KAErBmc,EAAQC,QAAQmH,GAAYpE,SAAUpW,IACnBA,EACRkc,WAAY,KAEvB9I,EAAQC,QAAQmH,GAAYvE,WAAW,CAACjW,EAAOC,KAC7C,MAAMsc,EAAWvc,EACX6a,EAAuB,GAEvBC,EAA+B,GA6CrC,OA5CA7a,EAAOE,QAAQiJ,SAAS2R,IAAY,MAClC,MAAMthB,EAAI,GAAH,GAAQshB,GACT5oB,EAA2B,CAC/B4M,SAAS,UAAAwd,EAASxd,eAAT,eAAkBhT,MAAO,GAClCgvB,QAASthB,GAGXA,EAAEoiB,WAAa5B,UACb,MAAM7hB,EAAO,GAAEyE,OAAOsd,wCAAwChoB,EAAK4oB,QAAQxD,KACrEuE,EAAoBrpB,KAAKC,UAAU,CACvC0oB,WAAYjpB,EAAK4oB,QAAQK,WACzBC,SAAUlpB,EAAK4oB,QAAQM,SACvBG,aAAcrpB,EAAK4oB,QAAQS,aAC3BP,OAAQ9oB,EAAK4oB,QAAQE,OACrBK,YAAanpB,EAAK4oB,QAAQO,cAE5B,GAAKR,EAAmB5jB,SAAS4kB,GAG/B,MAAMhoB,MAAM,yCAFZgnB,EAAmBnrB,KAAKmsB,GAI1B,MAAM1B,QAAiBC,MAAMjiB,EAAK,CAChCqiB,OAAQ,OACRnC,KAAM7lB,KAAKC,UAAUP,GACrBuoB,YAAa,UACbqB,QAAS,CACP,eAAgB,sBAIpB,IAAK3B,EAASE,GAAI,CAChB,MAAM9Y,QAAc4Y,EAASO,OAC7B,MAAM7mB,MAAM0N,GAId,aADmB4Y,EAASG,QAG9BM,EAASlrB,KAAK8J,MAGhB8iB,EAAS1B,SAAWA,EACpB0B,EAASzD,KAAO,EAChByD,EAASL,WAAY,EACdK,KAETnJ,EAAQC,QAAQmH,GAAYnE,UAAU,CAACrW,EAAOC,KAC5C,MAAMsc,EAAWvc,EAGjB,OAFAuc,EAASN,WAAahc,EAAOE,QAC7Boc,EAASL,WAAY,EACdK,SAKA,YACXD,GADW,YAEXI,GAFW,YAGXM,GAHW,iBAIXE,GAJW,iCAKXG,GALW,WAMXG,GANW,UAOXC,GAPW,YAQXC,GARW,kBASXG,IACE7B,GAAgB3G,QAEpB,GAAe2G,GAAf,QChWahC,GAAyBlE,GACpC,sCACAmE,MAAOC,GAAuBf,gBAAAA,MAC5B,MAAM/gB,EAAO,GAAEyE,OAAOsd,6DAA6DD,IAC7EE,QAAiBC,MAAMjiB,GAE7B,OAAKgiB,EAASE,SAKKF,EAASG,OAHnBpB,QADaiB,EAASG,WAStBuD,GAAmBhI,GAC9B,gCACAmE,MAAO9Z,GAAqCgZ,gBAAAA,MAC1C,MAAM/gB,EAAO,GAAEyE,OAAOsd,iDAChBC,QAAiBC,MAAMjiB,EAAK,CAChCqiB,OAAQ,OACRnC,KAAM7lB,KAAKC,UAAUyN,GACrB4b,QAAS,CACP,eAAgB,sBAIpB,OAAK3B,EAASE,SAKKF,EAASG,OAHnBpB,QADaiB,EAASG,WAStBwD,GAAkBjI,GAC7B,+BACAmE,MAAO9Z,GAAoCgZ,gBAAAA,MACzC,MAAM/gB,EAAO,GAAEyE,OAAOsd,yCAChBC,QAAiBC,MAAMjiB,EAAK,CAChCqiB,OAAQ,OACRnC,KAAM7lB,KAAKC,UAAUyN,GACrB4b,QAAS,CACP,eAAgB,sBAIpB,OAAK3B,EAASE,SAKKF,EAASG,OAHnBpB,QADaiB,EAASG,WAStByD,GAAmBlI,GAC9B,gCACAmE,MAAO9Z,GAAqCgZ,gBAAAA,MAC1C,MAAM/gB,EAAO,GAAEyE,OAAOsd,0CAChBC,QAAiBC,MAAMjiB,EAAK,CAChCqiB,OAAQ,OACRnC,KAAM7lB,KAAKC,UAAUyN,GACrB4b,QAAS,CACP,eAAgB,sBAIpB,OAAK3B,EAASE,SAKKF,EAASG,OAHnBpB,QADaiB,EAASG,WAS7B0D,GAAmBvK,GAAY,CACnCpmB,KAAM,cACNsmB,aA7F6B,CAC7B7U,QAAS,KACTmf,uBAAwB,KACxBC,sBAAuB,KACvBC,uBAAwB,KACxBC,QAAQ,EACR7c,MAAO,MAwFP+N,SAAU,CACRsO,kBAAkB7d,GAChB,MAAMuc,EAAWvc,EAEjB,OADAuc,EAASxd,aAAU9H,EACZslB,IAGXtI,cAAgBb,IACdA,EAAQC,QAAQ2G,GAAuB/D,WAAW,CAACjW,EAAOC,KACvCD,EACRjB,QAAUkB,EAAOE,WAE5BiT,EAAQC,QAAQ2G,GAAuB3D,UAAWrW,IAC/BA,EACRjB,aAAU9H,KAErBmc,EAAQC,QAAQyK,GAAiB1H,SAAUpW,IACxBA,EACRqe,QAAS,KAEpBjL,EAAQC,QAAQyK,GAAiB7H,WAAW,CAACjW,EAAOC,KAClD,MAAMsc,EAAWvc,EACjBuc,EAAS8B,QAAS,EAClB9B,EAAS2B,uBAAyBje,EAAOE,WAE3CiT,EAAQC,QAAQyK,GAAiBzH,UAAU,CAACrW,EAAOC,KACjD,MAAMsc,EAAWvc,GACX,KACJ5S,EADI,MACEwuB,EADF,OACS0C,EADT,OACiBC,GACnBte,EAAOE,QACXoc,EAAS/a,MAAQ,CACflU,KAAMF,EACNyoB,QAAS+F,EACTnO,KAAM8Q,EACNC,MAAOF,GAET/B,EAAS8B,QAAS,KAEpBjL,EAAQC,QAAQ0K,GAAgB3H,SAAUpW,IACvBA,EACRqe,QAAS,KAEpBjL,EAAQC,QAAQ0K,GAAgB9H,WAAW,CAACjW,EAAOC,KACjD,MAAMsc,EAAWvc,EACjBuc,EAAS8B,QAAS,EAClB9B,EAAS4B,sBAAwBle,EAAOE,WAE1CiT,EAAQC,QAAQ0K,GAAgB1H,UAAU,CAACrW,EAAOC,KAChD,MAAMsc,EAAWvc,GACX,KACJ5S,EADI,MACEwuB,EADF,OACS0C,EADT,OACiBC,GACnBte,EAAOE,QACXoc,EAAS/a,MAAQ,CACflU,KAAMF,EACNyoB,QAAS+F,EACTnO,KAAM8Q,EACNC,MAAOF,GAET/B,EAAS8B,QAAS,KAEpBjL,EAAQC,QAAQ2K,GAAiB5H,SAAUpW,IACxBA,EACRqe,QAAS,KAEpBjL,EAAQC,QAAQ2K,GAAiB/H,WAAW,CAACjW,EAAOC,KAClD,MAAMsc,EAAWvc,EACjBuc,EAAS8B,QAAS,EAClB9B,EAAS6B,uBAAyBne,EAAOE,WAE3CiT,EAAQC,QAAQ2K,GAAiB3H,UAAU,CAACrW,EAAOC,KACjD,MAAMsc,EAAWvc,GACX,KACJ5S,EADI,MACEwuB,EADF,OACS0C,EADT,OACiBC,GACnBte,EAAOE,QACXoc,EAAS/a,MAAQ,CACflU,KAAMF,EACNyoB,QAAS+F,EACTnO,KAAM8Q,EACNC,MAAOF,GAET/B,EAAS8B,QAAS,SAMtBR,kBAAiBA,IACfI,GAAiB5I,QAErB,GAAe4I,GAAf,QC1KaQ,GAAkB3I,GAC7B,kCACAmE,MAAOyE,GAAgBvF,gBAAAA,MACrB,MAAM/gB,EAAO,GAAEyE,OAAOsd,+CAA+CuE,IAC/DtE,QAAiBC,MAAMjiB,EAAK,CAChCqiB,OAAQ,OACRnC,KAAM7lB,KAAKC,UAAU,MAGvB,OAAK0nB,EAASE,SAKKF,EAASG,OAHnBpB,QADaiB,EAASG,WAStBP,GAAyBlE,GACpC,yCACAmE,MAAOC,GAAuBf,gBAAAA,MAC5B,MAAM/gB,EAAO,GAAEyE,OAAOsd,6DAA6DD,IAC7EE,QAAiBC,MAAMjiB,GAE7B,OAAKgiB,EAASE,SAKKF,EAASG,OAHnBpB,QADaiB,EAASG,WAStBoE,GAAmB7I,GAC9B,mCACAmE,MAAO9Z,GAAqCgZ,gBAAAA,MAC1C,MAAM/gB,EAAO,GAAEyE,OAAOsd,0CAChBC,QAAiBC,MAAMjiB,EAAK,CAChCqiB,OAAQ,OACRnC,KAAM7lB,KAAKC,UAAUyN,GACrB4b,QAAS,CACP,eAAgB,sBAIpB,OAAK3B,EAASE,GAMP,CACLF,eAFiBA,EAASG,OAG1BqE,QAASze,GANFgZ,QADaiB,EAASG,WAYtBsE,GAAoB/I,GAC/B,oCACAmE,MAAO9Z,GAAsCgZ,gBAAAA,MAC3C,MAAM/gB,EAAO,GAAEyE,OAAOsd,2CAChBC,QAAiBC,MAAMjiB,EAAK,CAChCqiB,OAAQ,OACRnC,KAAM7lB,KAAKC,UAAUyN,GACrB4b,QAAS,CACP,eAAgB,sBAIpB,OAAK3B,EAASE,GAMP,CACLF,eAFiBA,EAASG,OAG1BqE,QAASze,GANFgZ,QADaiB,EAASG,WAY7BuE,GAAsBpL,GAAY,CACtCpmB,KAAM,iBACNsmB,aAlG6B,CAC7B7U,QAAS,KACTggB,uBAAwB,KACxBC,wBAAyB,KACzBC,wBAAyB,KACzBC,yBAA0B,KAC1Bb,QAAQ,EACR7c,MAAO,KACP2d,aAAc,IA2Fd5P,SAAU,CACRsO,kBAAkB7d,GAChB,MAAMuc,EAAWvc,EAEjB,OADAuc,EAASxd,aAAU9H,EACZslB,GAET6C,iBAAiBpf,GACf,MAAMuc,EAAWvc,EAGjB,OAFAuc,EAASyC,wBAA0B,KACnCzC,EAASwC,uBAAyB,KAC3BxC,GAET8C,+BAA+Brf,GAC7B,MAAMuc,EAAWvc,EAEjB,OADAuc,EAASyC,wBAA0B,KAC5BzC,IAGXtI,cAAgBb,IACdA,EAAQC,QAAQoL,GAAgBxI,WAAW,CAACjW,EAAOC,KAChCD,EACRmf,aAAelf,EAAOE,WAEjCiT,EAAQC,QAAQoL,GAAgBpI,UAAWrW,IACxBA,EACRmf,aAAe,MAE1B/L,EAAQC,QAAQ2G,GAAuB/D,WAAW,CAACjW,EAAOC,KACvCD,EACRjB,QAAUkB,EAAOE,WAE5BiT,EAAQC,QAAQ2G,GAAuB3D,UAAWrW,IAC/BA,EACRjB,aAAU9H,KAErBmc,EAAQC,QAAQsL,GAAiBvI,SAAUpW,IACxBA,EACRqe,QAAS,KAEpBjL,EAAQC,QAAQsL,GAAiB1I,WAAW,CAACjW,EAAOC,KAClD,MAAMsc,EAAWvc,EACjBuc,EAAS8B,QAAS,EAClB9B,EAASwC,uBAA0B9e,EAAOE,QAAsCia,SAChFmC,EAAS0C,wBAA2Bhf,EAAOE,QAAsCye,WAEnFxL,EAAQC,QAAQsL,GAAiBtI,UAAU,CAACrW,EAAOC,KACjD,MAAMsc,EAAWvc,GACX,KACJ5S,EADI,MACEwuB,EADF,OACS0C,EADT,OACiBC,GACnBte,EAAOE,QACXoc,EAAS/a,MAAQ,CACflU,KAAMF,EACNyoB,QAAS+F,EACTnO,KAAM8Q,EACNC,MAAOF,GAET/B,EAAS8B,QAAS,KAEpBjL,EAAQC,QAAQwL,GAAkBzI,SAAUpW,IACzBA,EACRqe,QAAS,KAEpBjL,EAAQC,QAAQwL,GAAkB5I,WAAW,CAACjW,EAAOC,KACnD,MAAMsc,EAAWvc,EACjBuc,EAAS8B,QAAS,EAClB9B,EAASyC,wBAA2B/e,EAAOE,QAAuCia,SAClFmC,EAAS2C,yBAA4Bjf,EAAOE,QAAuCye,WAErFxL,EAAQC,QAAQwL,GAAkBxI,UAAU,CAACrW,EAAOC,KAClD,MAAMsc,EAAWvc,GACX,KACJ5S,EADI,MACEwuB,EADF,OACS0C,EADT,OACiBC,GACnBte,EAAOE,QACXoc,EAAS/a,MAAQ,CACflU,KAAMF,EACNyoB,QAAS+F,EACTnO,KAAM8Q,EACNC,MAAOF,GAET/B,EAAS8B,QAAS,SAMtBR,kBADW,oBAEXuB,GAFW,+BAGXC,IACEP,GAAoBzJ,QC1MlB/X,GJybN,SAAwB9N,GACpB,IAEI8vB,EAFAC,EArCG,SAAqC/vB,GACxC,OAGR,SAA8BA,QACV,IAAZA,IAAsBA,EAAU,IACpC,IAAIwiB,EAAKxiB,EAAQqhB,MAAOA,OAAe,IAAPmB,GAAuBA,EACnDwN,GAD4DhwB,EAAQiwB,eAAiEjwB,EAAQkwB,kBAC3H,IAAIrN,IAyB1B,OAxBIxB,IAZR,SAAmB3Y,GACf,MAAoB,kBAANA,EAYNynB,CAAU9O,GACV2O,EAAgB7vB,KAAK,IAGrB6vB,EAAgB7vB,KAAK,qBAAkCkhB,EAAMD,iBAmB9D4O,EA/BII,CAAqBpwB,IAqC5BwiB,EAAKxiB,GAAW,GAAI0kB,EAAKlC,EAAGzD,QAASA,OAAiB,IAAP2F,OAAgB,EAASA,EAAIC,EAAKnC,EAAGtB,WAAYA,OAAoB,IAAPyD,EAAgBoL,IAAgCpL,EAAIC,EAAKpC,EAAG6N,SAAUA,OAAkB,IAAPzL,GAAuBA,EAAI0L,EAAK9N,EAAGxD,eAAgBA,OAAwB,IAAPsR,OAAgB,EAASA,EAAIC,EAAK/N,EAAGgO,UAAWA,OAAmB,IAAPD,OAAgB,EAASA,EAE3V,GAAuB,mBAAZxR,EACP+Q,EAAc/Q,MAEb,KAlUT,SAAuB/b,GACnB,GAAqB,iBAAVA,GAAgC,OAAVA,EAC7B,OAAO,EACX,IAAI6b,EAAQxiB,OAAO2C,eAAegE,GAClC,GAAc,OAAV6b,EACA,OAAO,EAEX,IADA,IAAI4R,EAAY5R,EAC4B,OAArCxiB,OAAO2C,eAAeyxB,IACzBA,EAAYp0B,OAAO2C,eAAeyxB,GAEtC,OAAO5R,IAAU4R,EAwTR,CAAc1R,GAInB,MAAM,IAAIza,MAAM,4HAHhBwrB,EAAchQ,GAAgBf,GAKlC,IAAI2R,EAAkBxP,EACS,mBAApBwP,IACPA,EAAkBA,EAAgBX,IAQtC,IAAIY,EAAqB9P,GAAgB7Q,WAAM,EAAQ0gB,GACnDE,EAAelQ,GACf2P,IACAO,EAAelO,GAAoBH,GAAe,CAC9CsO,OAAO,GACY,iBAAbR,GAAyBA,KAEvC,IAAIS,EAAiB,CAACH,GAQtB,OAPIr1B,MAAMuB,QAAQ2zB,GACdM,EAAiBlP,GAAc,CAAC+O,GAAqBH,GAE3B,mBAAdA,IACZM,EAAiBN,EAAUM,IAGxBhS,GAAYgR,EAAa9Q,EADT4R,EAAa5gB,WAAM,EAAQ8gB,II9dxCC,CAAe,CAC3BhS,QCOkBe,GANH,CACfkR,WADe,GAEfC,YAFe,GAGfC,eFuMa5B,GAAf,YCtMA,METe,SAAS6B,GAAgBpkB,EAAG9C,GAMzC,OALAknB,GAAkB90B,OAAOogB,gBAAkB,SAAyB1P,EAAG9C,GAErE,OADA8C,EAAE0U,UAAYxX,EACP8C,GAGFokB,GAAgBpkB,EAAG9C,GCLb,SAASmnB,GAAeC,EAAUC,GAC/CD,EAAS91B,UAAYc,OAAO0L,OAAOupB,EAAW/1B,WAC9C81B,EAAS91B,UAAUge,YAAc8X,EACjC,GAAeA,EAAUC,GCJ3B,SAASC,GAAWC,GAClB,MAA8B,MAAvBA,EAASC,OAAO,GAIzB,SAASC,GAAUC,EAAMnwB,GACvB,IAAK,IAAIpH,EAAIoH,EAAOyG,EAAI7N,EAAI,EAAG4P,EAAI2nB,EAAKz2B,OAAQ+M,EAAI+B,EAAG5P,GAAK,EAAG6N,GAAK,EAClE0pB,EAAKv3B,GAAKu3B,EAAK1pB,GAGjB0pB,EAAKtI,MCRP,SAAS,GAAUpC,EAAWZ,GAC1B,IAAIY,EAIA,MAAM,IAAI3iB,MANL,oBCKb,SAASstB,GAAgB7xB,GACvB,MAA0B,MAAnBA,EAAK0xB,OAAO,GAAa1xB,EAAO,IAAMA,EAQ/C,SAAS8xB,GAAc9xB,EAAMK,GAC3B,OAJF,SAAqBL,EAAMK,GACzB,OAA4D,IAArDL,EAAKmH,cAAcnK,QAAQqD,EAAO8G,iBAAuE,IAA/C,MAAMnK,QAAQgD,EAAK0xB,OAAOrxB,EAAOlF,SAG3F42B,CAAY/xB,EAAMK,GAAUL,EAAKoC,OAAO/B,EAAOlF,QAAU6E,EAElE,SAASgyB,GAAmBhyB,GAC1B,MAAwC,MAAjCA,EAAK0xB,OAAO1xB,EAAK7E,OAAS,GAAa6E,EAAK3E,MAAM,GAAI,GAAK2E,EA0BpE,SAASiyB,GAAW7tB,GAClB,IAAIqtB,EAAWrtB,EAASqtB,SACpBS,EAAS9tB,EAAS8tB,OAClBnpB,EAAO3E,EAAS2E,KAChB/I,EAAOyxB,GAAY,IAGvB,OAFIS,GAAqB,MAAXA,IAAgBlyB,GAA6B,MAArBkyB,EAAOR,OAAO,GAAaQ,EAAS,IAAMA,GAC5EnpB,GAAiB,MAATA,IAAc/I,GAA2B,MAAnB+I,EAAK2oB,OAAO,GAAa3oB,EAAO,IAAMA,GACjE/I,EAGT,SAAS,GAAeA,EAAMyQ,EAAOjU,EAAK21B,GACxC,IAAI/tB,EAEgB,iBAATpE,GAEToE,EAvCJ,SAAmBpE,GACjB,IAAIyxB,EAAWzxB,GAAQ,IACnBkyB,EAAS,GACTnpB,EAAO,GACPqpB,EAAYX,EAASz0B,QAAQ,MAEd,IAAfo1B,IACFrpB,EAAO0oB,EAASrvB,OAAOgwB,GACvBX,EAAWA,EAASrvB,OAAO,EAAGgwB,IAGhC,IAAIC,EAAcZ,EAASz0B,QAAQ,KAOnC,OALqB,IAAjBq1B,IACFH,EAAST,EAASrvB,OAAOiwB,GACzBZ,EAAWA,EAASrvB,OAAO,EAAGiwB,IAGzB,CACLZ,SAAUA,EACVS,OAAmB,MAAXA,EAAiB,GAAKA,EAC9BnpB,KAAe,MAATA,EAAe,GAAKA,GAkBfupB,CAAUtyB,GACrBoE,EAASqM,MAAQA,SAIS/I,KAD1BtD,EAAW,EAAS,GAAIpE,IACXyxB,WAAwBrtB,EAASqtB,SAAW,IAErDrtB,EAAS8tB,OACuB,MAA9B9tB,EAAS8tB,OAAOR,OAAO,KAAYttB,EAAS8tB,OAAS,IAAM9tB,EAAS8tB,QAExE9tB,EAAS8tB,OAAS,GAGhB9tB,EAAS2E,KACqB,MAA5B3E,EAAS2E,KAAK2oB,OAAO,KAAYttB,EAAS2E,KAAO,IAAM3E,EAAS2E,MAEpE3E,EAAS2E,KAAO,QAGJrB,IAAV+I,QAA0C/I,IAAnBtD,EAASqM,QAAqBrM,EAASqM,MAAQA,IAG5E,IACErM,EAASqtB,SAAWc,UAAUnuB,EAASqtB,UACvC,MAAO9xB,GACP,MAAIA,aAAa6yB,SACT,IAAIA,SAAS,aAAepuB,EAASqtB,SAAxB,iFAEb9xB,EAoBV,OAhBInD,IAAK4H,EAAS5H,IAAMA,GAEpB21B,EAEG/tB,EAASqtB,SAE6B,MAAhCrtB,EAASqtB,SAASC,OAAO,KAClCttB,EAASqtB,SFrFf,SAAyB3P,EAAI7F,QACdvU,IAATuU,IAAoBA,EAAO,IAE/B,IAkBIwW,EAlBAC,EAAW5Q,GAAMA,EAAG/mB,MAAM,MAAS,GACnC43B,EAAa1W,GAAQA,EAAKlhB,MAAM,MAAS,GAEzC63B,EAAU9Q,GAAM0P,GAAW1P,GAC3B+Q,EAAY5W,GAAQuV,GAAWvV,GAC/B6W,EAAaF,GAAWC,EAW5B,GATI/Q,GAAM0P,GAAW1P,GAEnB6Q,EAAYD,EACHA,EAAQv3B,SAEjBw3B,EAAUrJ,MACVqJ,EAAYA,EAAUl3B,OAAOi3B,KAG1BC,EAAUx3B,OAAQ,MAAO,IAG9B,GAAIw3B,EAAUx3B,OAAQ,CACpB,IAAIuT,EAAOikB,EAAUA,EAAUx3B,OAAS,GACxCs3B,EAA4B,MAAT/jB,GAAyB,OAATA,GAA0B,KAATA,OAEpD+jB,GAAmB,EAIrB,IADA,IAAIM,EAAK,EACA14B,EAAIs4B,EAAUx3B,OAAQd,GAAK,EAAGA,IAAK,CAC1C,IAAI24B,EAAOL,EAAUt4B,GAER,MAAT24B,EACFrB,GAAUgB,EAAWt4B,GACH,OAAT24B,GACTrB,GAAUgB,EAAWt4B,GACrB04B,KACSA,IACTpB,GAAUgB,EAAWt4B,GACrB04B,KAIJ,IAAKD,EAAY,KAAOC,IAAMA,EAAIJ,EAAUM,QAAQ,OAGlDH,GACiB,KAAjBH,EAAU,IACRA,EAAU,IAAOnB,GAAWmB,EAAU,KAExCA,EAAUM,QAAQ,IAEpB,IAAI72B,EAASu2B,EAAU13B,KAAK,KAI5B,OAFIw3B,GAA0C,MAAtBr2B,EAAOgG,QAAQ,KAAYhG,GAAU,KAEtDA,EE4BiB,CAAgBgI,EAASqtB,SAAUU,EAAgBV,WAFvErtB,EAASqtB,SAAWU,EAAgBV,SAMjCrtB,EAASqtB,WACZrtB,EAASqtB,SAAW,KAIjBrtB,EAMT,SAAS8uB,KACP,IAAIC,EAAS,KAiCTjlB,EAAY,GA4BhB,MAAO,CACLklB,UA5DF,SAAmBC,GAGjB,OADAF,EAASE,EACF,WACDF,IAAWE,IAAYF,EAAS,QAyDtCG,oBArDF,SAA6BlvB,EAAUsM,EAAQ6iB,EAAqB5lB,GAIlE,GAAc,MAAVwlB,EAAgB,CAClB,IAAI/2B,EAA2B,mBAAX+2B,EAAwBA,EAAO/uB,EAAUsM,GAAUyiB,EAEjD,iBAAX/2B,EAC0B,mBAAxBm3B,EACTA,EAAoBn3B,EAAQuR,GAG5BA,GAAS,GAIXA,GAAoB,IAAXvR,QAGXuR,GAAS,IAmCX6lB,eA7BF,SAAwB9V,GACtB,IAAI+V,GAAW,EAEf,SAAS7kB,IACH6kB,GAAU/V,EAAGzN,WAAM,EAAQ/R,WAIjC,OADAgQ,EAAU9N,KAAKwO,GACR,WACL6kB,GAAW,EACXvlB,EAAYA,EAAUxF,QAAO,SAAUZ,GACrC,OAAOA,IAAS8G,OAmBpB8kB,gBAdF,WACE,IAAK,IAAI9S,EAAO1iB,UAAU/C,OAAQ6nB,EAAO,IAAIznB,MAAMqlB,GAAOJ,EAAO,EAAGA,EAAOI,EAAMJ,IAC/EwC,EAAKxC,GAAQtiB,UAAUsiB,GAGzBtS,EAAU2L,SAAQ,SAAUjL,GAC1B,OAAOA,EAASqB,WAAM,EAAQ+S,QAYpC,IAAI2Q,KAAiC,oBAAXrmB,SAA0BA,OAAO6B,WAAY7B,OAAO6B,SAASC,eACvF,SAASwkB,GAAgBtN,EAAS3Y,GAChCA,EAASL,OAAOumB,QAAQvN,IAwC1B,IAAIwN,GAAgB,WAChBC,GAAkB,aAEtB,SAASC,KACP,IACE,OAAO1mB,OAAO2mB,QAAQxjB,OAAS,GAC/B,MAAO9Q,GAGP,MAAO,IASX,SAASu0B,GAAqBjwB,QACd,IAAVA,IACFA,EAAQ,IAGT0vB,IAAsG,IAAU,GACjH,IArDIQ,EAqDAC,EAAgB9mB,OAAO2mB,QACvBI,IArD+B,KAD/BF,EAAK7mB,OAAOgnB,UAAUC,WAClBv3B,QAAQ,gBAAuD,IAA/Bm3B,EAAGn3B,QAAQ,iBAA2D,IAAjCm3B,EAAGn3B,QAAQ,mBAAqD,IAA1Bm3B,EAAGn3B,QAAQ,YAAqD,IAAjCm3B,EAAGn3B,QAAQ,mBACtJsQ,OAAO2mB,SAAW,cAAe3mB,OAAO2mB,QAqD3CO,KA7CsD,IAAnDlnB,OAAOgnB,UAAUC,UAAUv3B,QAAQ,YA8CtCy3B,EAASxwB,EACTywB,EAAsBD,EAAOE,aAC7BA,OAAuC,IAAxBD,GAAyCA,EACxDE,EAAwBH,EAAOlB,oBAC/BA,OAAgD,IAA1BqB,EAAmChB,GAAkBgB,EAC3EC,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CE,EAAW9wB,EAAM8wB,SAAW/C,GAAmBH,GAAgB5tB,EAAM8wB,WAAa,GAEtF,SAASC,EAAeC,GACtB,IAAI1lB,EAAO0lB,GAAgB,GACvBz4B,EAAM+S,EAAK/S,IACXiU,EAAQlB,EAAKkB,MAEbykB,EAAmB5nB,OAAOlJ,SAI1BpE,EAHWk1B,EAAiBzD,SACnByD,EAAiBhD,OACnBgD,EAAiBnsB,KAI5B,OADIgsB,IAAU/0B,EAAO8xB,GAAc9xB,EAAM+0B,IAClC,GAAe/0B,EAAMyQ,EAAOjU,GAGrC,SAAS24B,IACP,OAAO7W,KAAKC,SAAS1e,SAAS,IAAIuC,OAAO,EAAG0yB,GAG9C,IAAIM,EAAoBlC,KAExB,SAASmC,EAAS/d,GAChB,EAAS2c,EAAS3c,GAElB2c,EAAQ94B,OAASi5B,EAAcj5B,OAC/Bi6B,EAAkB1B,gBAAgBO,EAAQ7vB,SAAU6vB,EAAQvjB,QAG9D,SAAS4kB,EAAeC,IApE1B,SAAmCA,GACjC,YAAuB7tB,IAAhB6tB,EAAM9kB,QAAiE,IAA1C6jB,UAAUC,UAAUv3B,QAAQ,UAqE1Dw4B,CAA0BD,IAC9BE,EAAUT,EAAeO,EAAM9kB,QAGjC,SAASilB,IACPD,EAAUT,EAAehB,OAG3B,IAAI2B,GAAe,EAEnB,SAASF,EAAUrxB,GACbuxB,GACFA,GAAe,EACfN,KAGAD,EAAkB9B,oBAAoBlvB,EADzB,MAC2CmvB,GAAqB,SAAUxI,GACjFA,EACFsK,EAAS,CACP3kB,OAJO,MAKPtM,SAAUA,IASpB,SAAmBwxB,GACjB,IAAIC,EAAa5B,EAAQ7vB,SAIrB0xB,EAAUC,EAAQ/4B,QAAQ64B,EAAWr5B,MACxB,IAAbs5B,IAAgBA,EAAU,GAC9B,IAAIE,EAAYD,EAAQ/4B,QAAQ44B,EAAap5B,MAC1B,IAAfw5B,IAAkBA,EAAY,GAClC,IAAIC,EAAQH,EAAUE,EAElBC,IACFN,GAAe,EACfO,EAAGD,IAnBCE,CAAU/xB,MAuBlB,IAAIgyB,EAAkBpB,EAAehB,MACjC+B,EAAU,CAACK,EAAgB55B,KAE/B,SAAS65B,EAAWjyB,GAClB,OAAO2wB,EAAW9C,GAAW7tB,GAuE/B,SAAS8xB,EAAGjsB,GACVmqB,EAAc8B,GAAGjsB,GAWnB,IAAIqsB,EAAgB,EAEpB,SAASC,EAAkBN,GAGH,KAFtBK,GAAiBL,IAEoB,IAAVA,GACzB3oB,OAAOia,iBAAiBuM,GAAewB,GACnCd,GAAyBlnB,OAAOia,iBAAiBwM,GAAiB2B,IAC3C,IAAlBY,IACThpB,OAAOoa,oBAAoBoM,GAAewB,GACtCd,GAAyBlnB,OAAOoa,oBAAoBqM,GAAiB2B,IAI7E,IAAIc,GAAY,EAiCZvC,EAAU,CACZ94B,OAAQi5B,EAAcj5B,OACtBuV,OAAQ,MACRtM,SAAUgyB,EACVC,WAAYA,EACZj2B,KApIF,SAAcJ,EAAMyQ,GAElB,IAAIC,EAAS,OACTtM,EAAW,GAAepE,EAAMyQ,EAAO0kB,IAAalB,EAAQ7vB,UAChEgxB,EAAkB9B,oBAAoBlvB,EAAUsM,EAAQ6iB,GAAqB,SAAUxI,GACrF,GAAKA,EAAL,CACA,IAAI0L,EAAOJ,EAAWjyB,GAClB5H,EAAM4H,EAAS5H,IACfiU,EAAQrM,EAASqM,MAErB,GAAI4jB,EAMF,GALAD,EAAcsC,UAAU,CACtBl6B,IAAKA,EACLiU,MAAOA,GACN,KAAMgmB,GAEL9B,EACFrnB,OAAOlJ,SAASqyB,KAAOA,MAClB,CACL,IAAIE,EAAYZ,EAAQ/4B,QAAQi3B,EAAQ7vB,SAAS5H,KAC7Co6B,EAAWb,EAAQ16B,MAAM,EAAGs7B,EAAY,GAC5CC,EAASx2B,KAAKgE,EAAS5H,KACvBu5B,EAAUa,EACVvB,EAAS,CACP3kB,OAAQA,EACRtM,SAAUA,SAKdkJ,OAAOlJ,SAASqyB,KAAOA,OAuG3Bx6B,QAlGF,SAAiB+D,EAAMyQ,GAErB,IAAIC,EAAS,UACTtM,EAAW,GAAepE,EAAMyQ,EAAO0kB,IAAalB,EAAQ7vB,UAChEgxB,EAAkB9B,oBAAoBlvB,EAAUsM,EAAQ6iB,GAAqB,SAAUxI,GACrF,GAAKA,EAAL,CACA,IAAI0L,EAAOJ,EAAWjyB,GAClB5H,EAAM4H,EAAS5H,IACfiU,EAAQrM,EAASqM,MAErB,GAAI4jB,EAMF,GALAD,EAAcyC,aAAa,CACzBr6B,IAAKA,EACLiU,MAAOA,GACN,KAAMgmB,GAEL9B,EACFrnB,OAAOlJ,SAASnI,QAAQw6B,OACnB,CACL,IAAIE,EAAYZ,EAAQ/4B,QAAQi3B,EAAQ7vB,SAAS5H,MAC9B,IAAfm6B,IAAkBZ,EAAQY,GAAavyB,EAAS5H,KACpD64B,EAAS,CACP3kB,OAAQA,EACRtM,SAAUA,SAKdkJ,OAAOlJ,SAASnI,QAAQw6B,QAuE5BP,GAAIA,EACJY,OA/DF,WACEZ,GAAI,IA+DJa,UA5DF,WACEb,EAAG,IA4DHc,MAzCF,SAAe7D,QACE,IAAXA,IACFA,GAAS,GAGX,IAAI8D,EAAU7B,EAAkBhC,UAAUD,GAO1C,OALKqD,IACHD,EAAkB,GAClBC,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZD,GAAmB,IAGdU,MAwBTC,OApBF,SAAgBtoB,GACd,IAAIuoB,EAAW/B,EAAkB5B,eAAe5kB,GAEhD,OADA2nB,EAAkB,GACX,WACLA,GAAmB,GACnBY,OAiBJ,OAAOlD,2BCheLmD,GAAwB,WACxBC,GAAuC,oBAAflqB,WAA6BA,WAA+B,oBAAXG,OAAyBA,YAA2B,IAAX,EAAAxD,EAAyB,EAAAA,EAAS,GAexJ,SAASwtB,GAAmBr0B,GAC1B,IAAIs0B,EAAW,GACf,MAAO,CACL5b,GAAI,SAAY6b,GACdD,EAASn3B,KAAKo3B,IAEhBC,IAAK,SAAaD,GAChBD,EAAWA,EAAS7uB,QAAO,SAAUqB,GACnC,OAAOA,IAAMytB,MAGjBtqB,IAAK,WACH,OAAOjK,GAET8W,IAAK,SAAalS,EAAU6vB,GAC1Bz0B,EAAQ4E,EACR0vB,EAAS1d,SAAQ,SAAU2d,GACzB,OAAOA,EAAQv0B,EAAOy0B,QAuI9B,IAAIj2B,GAAQ,mBA7HZ,SAA4Bk2B,EAAcC,GACxC,IAAIC,EAAuBC,EAxCvBt7B,EA0CAu7B,EAAc,4BAzCXV,GADH76B,EAAM,yBACoB66B,GAAe76B,IAAQ,GAAK,GAyCI,MAE1DuT,EAAwB,SAAUioB,GAGpC,SAASjoB,IACP,IAAIkT,EAIJ,OAFAA,EAAQ+U,EAAW/nB,MAAM7C,KAAMlP,YAAckP,MACvC6qB,QAAUX,GAAmBrU,EAAMhf,MAAMhB,OACxCggB,EAPToO,GAAethB,EAAUioB,GAUzB,IAAIE,EAASnoB,EAASvU,UAoCtB,OAlCA08B,EAAOC,gBAAkB,WACvB,IAAI5oB,EAEJ,OAAOA,EAAO,IAASwoB,GAAe3qB,KAAK6qB,QAAS1oB,GAGtD2oB,EAAOE,0BAA4B,SAAmCC,GACpE,GAAIjrB,KAAKnJ,MAAMhB,QAAUo1B,EAAUp1B,MAAO,CACxC,IAEIy0B,EAFAY,EAAWlrB,KAAKnJ,MAAMhB,MACtB4E,EAAWwwB,EAAUp1B,OA9DjC,SAAkB0F,EAAG6B,GACnB,OAAI7B,IAAM6B,EACK,IAAN7B,GAAW,EAAIA,GAAM,EAAI6B,EAEzB7B,GAAMA,GAAK6B,GAAMA,EA6DhB+tB,CAASD,EAAUzwB,IAGrB6vB,EAA8C,mBAAzBE,EAAsCA,EAAqBU,EAAUzwB,GAAYuvB,GAQlF,IAFpBM,GAAe,IAGbtqB,KAAK6qB,QAAQle,IAAIse,EAAUp1B,MAAOy0B,IAXpCA,EAAc,IAiBpBQ,EAAOv5B,OAAS,WACd,OAAOyO,KAAKnJ,MAAMwL,UAGbM,EA/CmB,CAgD1B,EAAAyoB,WAEFzoB,EAAS5S,oBAAqB06B,EAAwB,IAA0BE,GAAe,uBAA6BF,GAE5H,IAAI9jB,EAAwB,SAAU0kB,GAGpC,SAAS1kB,IACP,IAAI2kB,EAiBJ,OAfAA,EAASD,EAAYxoB,MAAM7C,KAAMlP,YAAckP,MACxCqD,MAAQ,CACbxN,MAAOy1B,EAAOC,YAGhBD,EAAOE,SAAW,SAAU/wB,EAAU6vB,GAGC,KAFI,EAAtBgB,EAAOG,cAENnB,IAClBgB,EAAOrD,SAAS,CACdpyB,MAAOy1B,EAAOC,cAKbD,EApBTrH,GAAetd,EAAU0kB,GAuBzB,IAAIK,EAAU/kB,EAASvY,UAkCvB,OAhCAs9B,EAAQV,0BAA4B,SAAmCC,GACrE,IAAIQ,EAAeR,EAAUQ,aAC7BzrB,KAAKyrB,aAAeA,MAAAA,EAAsDzB,GAAwByB,GAGpGC,EAAQC,kBAAoB,WACtB3rB,KAAKoC,QAAQuoB,IACf3qB,KAAKoC,QAAQuoB,GAAapc,GAAGvO,KAAKwrB,UAGpC,IAAIC,EAAezrB,KAAKnJ,MAAM40B,aAC9BzrB,KAAKyrB,aAAeA,MAAAA,EAAsDzB,GAAwByB,GAGpGC,EAAQE,qBAAuB,WACzB5rB,KAAKoC,QAAQuoB,IACf3qB,KAAKoC,QAAQuoB,GAAaN,IAAIrqB,KAAKwrB,WAIvCE,EAAQH,SAAW,WACjB,OAAIvrB,KAAKoC,QAAQuoB,GACR3qB,KAAKoC,QAAQuoB,GAAa7qB,MAE1ByqB,GAIXmB,EAAQn6B,OAAS,WACf,OApHa8Q,EAoHIrC,KAAKnJ,MAAMwL,SAnHzBlU,MAAMuB,QAAQ2S,GAAYA,EAAS,GAAKA,GAmHLrC,KAAKqD,MAAMxN,OApHvD,IAAmBwM,GAuHRsE,EA1DmB,CA2D1B,EAAAykB,WAGF,OADAzkB,EAAS1W,eAAgBy6B,EAAwB,IAA0BC,GAAe,YAAkBD,GACrG,CACL/nB,SAAUA,EACVgE,SAAUA,IAMd,qCChKIklB,WAAqB,SAA4Bl7B,GACnD,IAAIyR,EAAU,KAEd,OADAA,EAAQjS,YAAcQ,EACfyR,IAGL0pB,GAA8BD,GAAmB,kBAEjDzpB,GAAuBypB,GAAmB,UAM1CE,GAAsB,SAAUC,GAYlC,SAASD,EAAOl1B,GACd,IAAIgf,EA0BJ,OAxBAA,EAAQmW,EAAiB19B,KAAK0R,KAAMnJ,IAAUmJ,MACxCqD,MAAQ,CACZrM,SAAUH,EAAMgwB,QAAQ7vB,UAO1B6e,EAAMoW,YAAa,EACnBpW,EAAMqW,iBAAmB,KAEpBr1B,EAAMs1B,gBACTtW,EAAMkU,SAAWlzB,EAAMgwB,QAAQiD,QAAO,SAAU9yB,GAC1C6e,EAAMoW,WACRpW,EAAMoS,SAAS,CACbjxB,SAAUA,IAGZ6e,EAAMqW,iBAAmBl1B,MAKxB6e,EAtCToO,GAAe8H,EAAQC,GAEvBD,EAAOK,iBAAmB,SAA0B/H,GAClD,MAAO,CACLzxB,KAAM,IACN6I,IAAK,IACL4wB,OAAQ,GACRC,QAAsB,MAAbjI,IAkCb,IAAIyG,EAASiB,EAAO39B,UAkCpB,OAhCA08B,EAAOa,kBAAoB,WACzB3rB,KAAKisB,YAAa,EAEdjsB,KAAKksB,kBACPlsB,KAAKioB,SAAS,CACZjxB,SAAUgJ,KAAKksB,oBAKrBpB,EAAOc,qBAAuB,WACxB5rB,KAAK+pB,WACP/pB,KAAK+pB,WACL/pB,KAAKisB,YAAa,EAClBjsB,KAAKksB,iBAAmB,OAI5BpB,EAAOv5B,OAAS,WACd,OAAoB,kBAAoB6Q,GAAQO,SAAU,CACxD9M,MAAO,CACLgxB,QAAS7mB,KAAKnJ,MAAMgwB,QACpB7vB,SAAUgJ,KAAKqD,MAAMrM,SACrBtI,MAAOq9B,EAAOK,iBAAiBpsB,KAAKqD,MAAMrM,SAASqtB,UACnD8H,cAAensB,KAAKnJ,MAAMs1B,gBAEd,kBAAoBL,GAAenpB,SAAU,CAC3DN,SAAUrC,KAAKnJ,MAAMwL,UAAY,KACjCxM,MAAOmK,KAAKnJ,MAAMgwB,YAIfkF,EA5EiB,CA6ExB,eA2CA,cA0CA,cA4HF,IAAIQ,GAAU,GAEVC,GAAe,EAyBnB,SAASC,GAAUpI,EAAUxxB,QACX,IAAZA,IACFA,EAAU,KAGW,iBAAZA,GAAwB1E,MAAMuB,QAAQmD,MAC/CA,EAAU,CACRD,KAAMC,IAIV,IAAI65B,EAAW75B,EACXD,EAAO85B,EAAS95B,KAChB+5B,EAAiBD,EAASj0B,MAC1BA,OAA2B,IAAnBk0B,GAAoCA,EAC5CC,EAAkBF,EAASt2B,OAC3BA,OAA6B,IAApBw2B,GAAqCA,EAC9CC,EAAqBH,EAASv2B,UAC9BA,OAAmC,IAAvB02B,GAAwCA,EAExD,MADY,GAAGx+B,OAAOuE,GACTmI,QAAO,SAAU+xB,EAASl6B,GACrC,IAAKA,GAAiB,KAATA,EAAa,OAAO,KACjC,GAAIk6B,EAAS,OAAOA,EAEpB,IAAIC,EA/CR,SAAuBn6B,EAAMC,GAC3B,IAAIm6B,EAAW,GAAKn6B,EAAQwD,IAAMxD,EAAQuD,OAASvD,EAAQsD,UACvD82B,EAAYV,GAAQS,KAAcT,GAAQS,GAAY,IAC1D,GAAIC,EAAUr6B,GAAO,OAAOq6B,EAAUr6B,GACtC,IAAIzD,EAAO,GAEPH,EAAS,CACXk+B,OAFW,KAAat6B,EAAMzD,EAAM0D,GAGpC1D,KAAMA,GAQR,OALIq9B,GAda,MAefS,EAAUr6B,GAAQ5D,EAClBw9B,MAGKx9B,EA+Bcm+B,CAAcv6B,EAAM,CACrCyD,IAAKoC,EACLrC,OAAQA,EACRD,UAAWA,IAET+2B,EAASH,EAAaG,OACtB/9B,EAAO49B,EAAa59B,KAEpBT,EAAQw+B,EAAOn+B,KAAKs1B,GACxB,IAAK31B,EAAO,OAAO,KACnB,IAAI+M,EAAM/M,EAAM,GACZ0+B,EAAS1+B,EAAMT,MAAM,GACrBq+B,EAAUjI,IAAa5oB,EAC3B,OAAIhD,IAAU6zB,EAAgB,KACvB,CACL15B,KAAMA,EAEN6I,IAAc,MAAT7I,GAAwB,KAAR6I,EAAa,IAAMA,EAExC6wB,QAASA,EAETD,OAAQl9B,EAAK4L,QAAO,SAAUsyB,EAAMj+B,EAAKiF,GAEvC,OADAg5B,EAAKj+B,EAAIuB,MAAQy8B,EAAO/4B,GACjBg5B,IACN,OAEJ,MAiBL,IAAIC,GAAqB,SAAUtB,GAGjC,SAASsB,IACP,OAAOtB,EAAiBnpB,MAAM7C,KAAMlP,YAAckP,KAmCpD,OAtCAikB,GAAeqJ,EAAOtB,GAMTsB,EAAMl/B,UAEZmD,OAAS,WACd,IAAIskB,EAAQ7V,KAEZ,OAAoB,kBAAoBoC,GAAQuE,SAAU,MAAM,SAAU4mB,GACvEA,GAAwH,IAAU,GACnI,IAAIv2B,EAAW6e,EAAMhf,MAAMG,UAAYu2B,EAAUv2B,SAI7CH,EAAQ,EAAS,GAAI02B,EAAW,CAClCv2B,SAAUA,EACVtI,MALUmnB,EAAMhf,MAAM22B,cAAgB3X,EAAMhf,MAAM22B,cAClD3X,EAAMhf,MAAMjE,KAAO65B,GAAUz1B,EAASqtB,SAAUxO,EAAMhf,OAAS02B,EAAU7+B,QAOvE++B,EAAc5X,EAAMhf,MACpBwL,EAAWorB,EAAYprB,SACvBjR,EAAYq8B,EAAYr8B,UACxBG,EAASk8B,EAAYl8B,OAOzB,OAJIpD,MAAMuB,QAAQ2S,IA3CxB,SAAyBA,GACvB,OAA0C,IAAnC,mBAAqBA,GA0COqrB,CAAgBrrB,KAC7CA,EAAW,MAGO,kBAAoBD,GAAQO,SAAU,CACxD9M,MAAOgB,GACNA,EAAMnI,MAAQ2T,EAA+B,mBAAbA,EAAuHA,EAASxL,GAASwL,EAAWjR,EAAyB,kBAAoBA,EAAWyF,GAAStF,EAASA,EAAOsF,GAAS,KAA2B,mBAAbwL,EAAuHA,EAASxL,GAAS,UAIray2B,EAvCgB,CAwCvB,eAgJA,cAkBF,IAAIK,GAAsB,SAAU3B,GAGlC,SAAS2B,IACP,OAAO3B,EAAiBnpB,MAAM7C,KAAMlP,YAAckP,KAgCpD,OAnCAikB,GAAe0J,EAAQ3B,GAMV2B,EAAOv/B,UAEbmD,OAAS,WACd,IAAIskB,EAAQ7V,KAEZ,OAAoB,kBAAoBoC,GAAQuE,SAAU,MAAM,SAAUvE,GACvEA,GAAuH,IAAU,GAClI,IACInK,EAASvJ,EADTsI,EAAW6e,EAAMhf,MAAMG,UAAYoL,EAAQpL,SAe/C,OATA,qBAAuB6e,EAAMhf,MAAMwL,UAAU,SAAUurB,GACrD,GAAa,MAATl/B,GAA8B,mBAAqBk/B,GAAQ,CAC7D31B,EAAU21B,EACV,IAAIh7B,EAAOg7B,EAAM/2B,MAAMjE,MAAQg7B,EAAM/2B,MAAMgY,KAC3CngB,EAAQkE,EAAO65B,GAAUz1B,EAASqtB,SAAU,EAAS,GAAIuJ,EAAM/2B,MAAO,CACpEjE,KAAMA,KACFwP,EAAQ1T,UAGXA,EAAqB,iBAAmBuJ,EAAS,CACtDjB,SAAUA,EACVw2B,cAAe9+B,IACZ,SAIFi/B,EApCiB,CAqCxB,eA6Ce,eCtqBjB,IAAIE,GAA6B,SAAU7B,GAGzC,SAAS6B,IAGP,IAFA,IAAIhY,EAEKrC,EAAO1iB,UAAU/C,OAAQ6nB,EAAO,IAAIznB,MAAMqlB,GAAOJ,EAAO,EAAGA,EAAOI,EAAMJ,IAC/EwC,EAAKxC,GAAQtiB,UAAUsiB,GAKzB,OAFAyC,EAAQmW,EAAiB19B,KAAKuU,MAAMmpB,EAAkB,CAAChsB,MAAM3R,OAAOunB,KAAU5V,MACxE6mB,QAAUC,GAAqBjR,EAAMhf,OACpCgf,EAYT,OAvBAoO,GAAe4J,EAAe7B,GAcjB6B,EAAcz/B,UAEpBmD,OAAS,WACd,OAAoB,kBAAoBw6B,GAAQ,CAC9ClF,QAAS7mB,KAAK6mB,QACdxkB,SAAUrC,KAAKnJ,MAAMwL,YAIlBwrB,EAxBwB,CAyB/B,eA6CA,cAeF,IAAIC,GAAoB,SAA2BpZ,EAAIqQ,GACrD,MAAqB,mBAAPrQ,EAAoBA,EAAGqQ,GAAmBrQ,GAEtDqZ,GAAsB,SAA6BrZ,EAAIqQ,GACzD,MAAqB,iBAAPrQ,EAAkB,GAAeA,EAAI,KAAM,KAAMqQ,GAAmBrQ,GAGhFsZ,GAAiB,SAAwB3f,GAC3C,OAAOA,GAGLvI,GAAa,oBAES,IAAfA,KACTA,GAAakoB,IAOf,IAAIC,GAAanoB,IAAW,SAAU3D,EAAM+rB,GAC1C,IAAIC,EAAWhsB,EAAKgsB,SAChBC,EAAWjsB,EAAKisB,SAChBC,EAAWlsB,EAAKmsB,QAChBC,EAAO,EAA8BpsB,EAAM,CAAC,WAAY,WAAY,YAEpES,EAAS2rB,EAAK3rB,OAEd/L,EAAQ,EAAS,GAAI03B,EAAM,CAC7BD,QAAS,SAAiBnG,GACxB,IACMkG,GAAUA,EAASlG,GACvB,MAAOqG,GAEP,MADArG,EAAMsG,iBACAD,EAGHrG,EAAMuG,kBACM,IAAjBvG,EAAMwG,QACL/rB,GAAqB,UAAXA,GAvBjB,SAAyBulB,GACvB,SAAUA,EAAMyG,SAAWzG,EAAM0G,QAAU1G,EAAM2G,SAAW3G,EAAM4G,UAuB7DC,CAAgB7G,KAEbA,EAAMsG,iBACNL,QAcR,OAPEv3B,EAAM2Q,IADJwmB,KAAmBloB,IACTooB,GAEAC,EAKM,kBAAoB,IAAKt3B,MAW3Co4B,GAAOnpB,IAAW,SAAUZ,EAAOgpB,GACrC,IAAIgB,EAAkBhqB,EAAM9T,UACxBA,OAAgC,IAApB89B,EAA6BjB,GAAaiB,EACtDrgC,EAAUqW,EAAMrW,QAChB6lB,EAAKxP,EAAMwP,GACXyZ,EAAWjpB,EAAMipB,SACjBI,EAAO,EAA8BrpB,EAAO,CAAC,YAAa,UAAW,KAAM,aAE/E,OAAoB,kBAAoB,YAA0B,MAAM,SAAU9C,GAC/EA,GAAqH,IAAU,GAChI,IAAIykB,EAAUzkB,EAAQykB,QAClB7vB,EAAW+2B,GAAoBD,GAAkBpZ,EAAItS,EAAQpL,UAAWoL,EAAQpL,UAChFqyB,EAAOryB,EAAW6vB,EAAQoC,WAAWjyB,GAAY,GAEjDH,EAAQ,EAAS,GAAI03B,EAAM,CAC7BlF,KAAMA,EACN+E,SAAU,WACR,IAAIp3B,EAAW82B,GAAkBpZ,EAAItS,EAAQpL,UACzCm4B,EAAwBtK,GAAWziB,EAAQpL,YAAc6tB,GAAWkJ,GAAoB/2B,KAC/EnI,GAAWsgC,EAAwBtI,EAAQh4B,QAAUg4B,EAAQ7zB,MACnEgE,MAWX,OANIg3B,KAAmBloB,GACrBjP,EAAM2Q,IAAM0mB,GAAgBC,EAE5Bt3B,EAAMs3B,SAAWA,EAGC,kBAAoB/8B,EAAWyF,SAmBnDu4B,GAAmB,SAAwB/gB,GAC7C,OAAOA,GAGLghB,GAAe,oBAES,IAAjBA,KACTA,GAAeD,IAiBHC,IAAa,SAAUltB,EAAM+rB,GACzC,IAAIoB,EAAmBntB,EAAK,gBACxBotB,OAAmC,IAArBD,EAA8B,OAASA,EACrDE,EAAuBrtB,EAAKstB,gBAC5BA,OAA2C,IAAzBD,EAAkC,SAAWA,EAC/DE,EAAcvtB,EAAKutB,YACnBC,EAAgBxtB,EAAKytB,UACrBn3B,EAAQ0J,EAAK1J,MACbo3B,EAAe1tB,EAAKkkB,SACpByJ,EAAe3tB,EAAKnL,SACpBb,EAAYgM,EAAKhM,UACjBC,EAAS+L,EAAK/L,OACd25B,EAAY5tB,EAAK6tB,MACjBtb,EAAKvS,EAAKuS,GACVyZ,EAAWhsB,EAAKgsB,SAChBI,EAAO,EAA8BpsB,EAAM,CAAC,eAAgB,kBAAmB,cAAe,YAAa,QAAS,WAAY,WAAY,YAAa,SAAU,QAAS,KAAM,aAEtL,OAAoB,kBAAoB,YAA0B,MAAM,SAAUC,GAC/EA,GAAwH,IAAU,GACnI,IAAI2iB,EAAkB+K,GAAgB1tB,EAAQpL,SAC1CyxB,EAAasF,GAAoBD,GAAkBpZ,EAAIqQ,GAAkBA,GACzEnyB,EAAO61B,EAAWpE,SAElB4L,EAAcr9B,GAAQA,EAAK/D,QAAQ,4BAA6B,QAChEH,EAAQuhC,EAAcxD,GAAU1H,EAAgBV,SAAU,CAC5DzxB,KAAMq9B,EACNx3B,MAAOA,EACPtC,UAAWA,EACXC,OAAQA,IACL,KACDiwB,KAAcwJ,EAAeA,EAAanhC,EAAOq2B,GAAmBr2B,GACpEkhC,EAAqC,mBAAlBD,EAA+BA,EAActJ,GAAYsJ,EAC5EK,EAA6B,mBAAdD,EAA2BA,EAAU1J,GAAY0J,EAEhE1J,IACFuJ,EAjDN,WACE,IAAK,IAAIpc,EAAO1iB,UAAU/C,OAAQmiC,EAAa,IAAI/hC,MAAMqlB,GAAOJ,EAAO,EAAGA,EAAOI,EAAMJ,IACrF8c,EAAW9c,GAAQtiB,UAAUsiB,GAG/B,OAAO8c,EAAW50B,QAAO,SAAUrO,GACjC,OAAOA,KACNY,KAAK,KA0CQsiC,CAAeP,EAAWH,GACtCO,EAAQ,EAAS,GAAIA,EAAON,IAG9B,IAAI74B,EAAQ,EAAS,CACnB,eAAgBwvB,GAAYkJ,GAAe,KAC3CK,UAAWA,EACXI,MAAOA,EACPtb,GAAI+T,GACH8F,GASH,OANIa,KAAqBC,GACvBx4B,EAAM2Q,IAAM0mB,GAAgBC,EAE5Bt3B,EAAMs3B,SAAWA,EAGC,kBAAoBc,GAAMp4B,SCrSlD,MAAM,oBAAEu5B,IAAwBlwB,OCEhC,MAAMmwB,WAA2BC,IAAAA,UAC/BlkB,YAAYvV,GACV05B,MAAM15B,GAENmJ,KAAKqD,MAAQ,CACXmtB,SAAS,EACTC,QAAS55B,EAAM45B,SAGjBzwB,KAAK0wB,SAAW1wB,KAAK0wB,SAASzpB,KAAKjH,MAGrC2rB,oBACE3rB,KAAK0wB,WACLxwB,OAAOia,iBAAiB,UAAU,KAChCna,KAAK0wB,cAITC,qBACE3wB,KAAK0wB,WAGwB,gCAACzF,EAAW2F,GACzC,OAAI3F,EAAUwF,UAAYG,EAAUH,QAC3B,CACLA,QAASxF,EAAUwF,SAIhB,KAGTC,WACE,MAAM,iBACJG,EADI,OAEJC,EAFI,MAGJC,EAHI,OAIJC,GACEhxB,KAAKnJ,OACH,QAAE25B,EAAF,QAAWC,GAAYzwB,KAAKqD,MAE5BpL,EAAU8J,SAASkvB,eAAeF,IACnCD,GAAUN,GAAWK,IAAqBJ,GDpCtBx4B,CAAAA,IAC3B,GAAgB,OAAZA,EACF,OAAO,EAGT,MAAMi5B,EAAOj5B,EAAQk5B,wBAErB,OAAOD,EAAKE,OAAS,GAChBF,EAAKhjC,MAAQ,GACbgjC,EAAKljC,MAAQkS,OAAOmxB,YAActvB,SAASuvB,gBAAgBC,cAC3DL,EAAKM,KAAOtxB,OAAOuxB,aAAe1vB,SAASuvB,gBAAgBI,eC0BJC,CAAoB15B,KAC5E+H,KAAKioB,SAAS,CACZuI,SAAS,IACR,KACDQ,OAKNz/B,SACE,MAAM,UACJq+B,EADI,QACOgC,EADP,OACgBd,EADhB,MACwBC,EADxB,SAC+B1uB,EAD/B,OACyCwvB,EADzC,KACiDC,GACnD9xB,KAAKnJ,MAET,OAAKi6B,EAgBEzuB,GAAYuvB,EAfJ,UAATE,EAEA,yBAAKlX,GAAImW,EAAOnB,UAAY,iDAAgDA,IAAaI,MAAO,CAAE+B,UAAWF,KAGpG,QAATC,EAEA,yBAAKlX,GAAImW,EAAOnB,UAAY,+CAA8CA,IAAaI,MAAO,CAAE+B,UAAWF,KAI7G,yBAAKjX,GAAImW,EAAOnB,UAAY,oBAAmBA,IAAaI,MAAO,CAAE+B,UAAWF,MAQxFxB,GAAmBngC,aAAe,CAChC6gC,MAAO,uBACPN,SAAS,EACTb,UAAW,GACXgC,QAAS,KACTvvB,SAAU,KACV2uB,OAAQ,OACRa,OAAQ,OACRC,KAAM,IAGRzB,GAAmB7/B,UAAY,CAI7BugC,MAAOp4B,KAAAA,OAIP83B,QAAS93B,KAAAA,KACTi3B,UAAWj3B,KAAAA,OACXi5B,QAASj5B,KAAAA,QACT0J,SAAU1J,KAAAA,QACVm4B,OAAQn4B,KAAAA,KAAAA,WACRk4B,iBAAkBl4B,KAAAA,KAAAA,WAClBq4B,OAAQr4B,KAAAA,KACRk5B,OAAQl5B,KAAAA,OACRm5B,KAAMn5B,KAAAA,QAGR03B,GAAmBlgC,YAAc,qBACjC,YC/GM6hC,GAA0C,EAC9CC,OAAAA,EACAjU,KAAAA,KAEA,yBAAK4R,UAAU,sCACb,yBAAKA,UAAU,yBACb,wBAAIA,UAAU,wBAAwBqC,GACtC,uBAAGC,wBAAyB,CAAEC,OAAQnU,OAK5CgU,GAAe7hC,YAAc,iBAC7B,YCLMiiC,GAAoD,EACxDvU,YAAAA,EACAzb,QAAAA,EACAmd,UAAAA,EACAD,WAAAA,MAEA,MAAO+S,EAAMC,IAAWC,EAAAA,EAAAA,UAAsB,MAE9C,OADAC,QAAQC,IAAInT,GAEV,oCACE,0BACEsQ,UAAU,OACV8C,YAAU,EACVC,SAAUrV,MAAAA,IACR/qB,EAAEk8B,iBACF,MAAMj5B,EAAO,IAAIo9B,SACjBp9B,EAAKq9B,OAAO,WAAYR,GACxBxU,EAAY,CACVroB,KAAAA,EACA4M,QAASA,MAAAA,OAAF,EAAEA,EAAShT,QAItB,yBAAKwgC,UAAU,eACb,2BAAOkD,QAAQ,UACZ1wB,MAAAA,OADH,EACGA,EAAS2wB,4BACV,0BAAMnD,UAAU,mBAAhB,8BAEF,yBAAKA,UAAU,4BACb,2BACEn/B,KAAK,OACLmqB,GAAG,SACHoY,OAAO,oEACPC,SAAW1gC,IAAM,MACX,UAAAA,EAAEqQ,cAAF,SAAUswB,OAAS3gC,EAAEqQ,OAAOswB,MAAMnlC,OAAS,GAC7CukC,EAAQ//B,EAAEqQ,OAAOswB,MAAM,OAI7B,yBAAKtD,UAAU,SAASuD,UAAW,EAAG,cAAY,QAAlD,cAKJ,yBAAKvD,UAAU,mDACb,4BACEA,UAAY,SAAgB,MAARyC,EAAe,qBAAuB,KAAK9S,EAAY,sBAAwB,KACnG9uB,KAAK,SACLoF,MAAM,SACNu9B,SAAkB,MAARf,GAAgB9S,GAJ5B,YAWFD,GACE,kBAAC,GAAD,CAAgB2S,OAAO,yCAAyCjU,KAAMsB,MAOhF8S,GAAoBjiC,YAAc,sBAClC,SAAekjC,GACZhwB,GAAqBA,EAAMwgB,YAC5B,CACEhG,YAAayV,IAHjB,CAKElB,isBCxEF,MAAMmB,GAAsD,EAC1DC,MAAAA,EACAC,UAAAA,EACAC,QAAAA,EACAC,aAAAA,MAEA,MAAOC,EAAYC,IAAiBtB,EAAAA,EAAAA,UAA0B,KACvDuB,IAAiBvB,EAAAA,EAAAA,UAA0BiB,IAClDtxB,EAAAA,EAAAA,YAAU,KACJ4xB,GAAiBF,EAAW7lC,OAAS+lC,EAAc/lC,QACpD+lC,EAAcF,EAAW7lC,QAAQmxB,aAAiCxP,MAAMhV,IACvEm5B,EAAc,IAAID,EAAgB,SAAKE,EAAcF,EAAW7lC,SAAY2M,QAC3Eq5B,OAAOlvB,IACRgvB,EAAc,IAAID,EAAgBE,EAAcF,EAAW7lC,UAC3D2lC,EAAQI,EAAcF,EAAW7lC,QAAS8W,MAG1CivB,GAAiBF,EAAW7lC,SAAW+lC,EAAc/lC,QACvD0lC,EAAUG,KAEX,CAACA,EAAW7lC,SACf,MAAMimC,GAAaF,MAAAA,OAAA,EAAAA,EAAe/lC,QAAS,EAAImjB,KAAK+iB,MAAOL,EAAW7lC,QAAS+lC,MAAAA,OAApB,EAAoBA,EAAe/lC,QAAU,KAAO,EAC/G,OACE,oCACE,yBAAK6hC,UAAU,uDACf,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,uBAAf,SACA,yBAAKA,UAAU,yBAAyBI,MAAO,CAAEkE,UAAY,GAAEF,OAAmB,GAAEA,QAEtF,2BAEIJ,EAAW7lC,OAAS+lC,EAAc/lC,QAChC,oCACG4lC,EAAaG,EAAcF,EAAW7lC,aASrDwlC,GAAqBpjC,YAAc,uBACnC,UAAek9B,EAAAA,EAAAA,MAAKkG,kBChDb,MAAMY,GAAsB,KACtBC,EAAAA,GAAAA,OAAQl0B,OAAOlJ,SAAS8tB,QACtB1iB,SAKN,GAGIiyB,GAA0B,CAACtS,EAAc3f,KACpD,IAAKA,EACH,OAAO,KAET,MAAM,2BAAEkyB,EAAF,2BAA8BC,GAA+BnyB,EACnE,MAAgB,OAAT2f,EAAgBuS,EAA6BC,GAGzCC,GAAiB,CAAClW,EAAgBmW,KAC7C,IAAIzlC,EAAS,SAQb,MAPe,SAAXsvB,IACFtvB,EAAS,QAEI,WAAXsvB,IACFtvB,EAAS,UAGPylC,EACKzlC,EAAO0lC,oBAGT1lC,GAGI2lC,GAASC,IACpB,MAAMC,EAAU,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACtClnC,EAAQinC,EAAI/lC,QAAQ,IAAK,IAAIlB,MAAM,IAAI0L,KAAKkC,GAAM6hB,SAAS7hB,EAAG,MACpE,GAAI5N,EAAMI,SAAW8mC,EAAQ9mC,OAAQ,CACnC,IAAI+mC,EAAM,EAIV,OAHAnnC,EAAM8e,SAAQ,CAAC9U,EAAQtD,KACrBygC,GAAOn9B,EAASk9B,EAAQxgC,MAEnBygC,EAAM,IAAO,EAEtB,OAAO,GCzBHC,GAAoD,EACxD7W,SAAAA,EACA6B,YAAAA,EACAM,YAAAA,EACAE,iBAAAA,MAEA,MAAMyU,EAAmB9W,EAAS5iB,QAAQuB,IAAD,aAAO,UAAAA,EAAEijB,yBAAF,eAAqB/xB,QAAS,KACxEknC,EAAkBD,EAAiB37B,KAAKwD,IAE5C,MAAMq4B,EAAgBr4B,EAAEijB,kBAAkBzmB,KAAKoD,GAC7C,yBAAKrN,IAAKqN,EAAE2jB,KAAMwP,UAAU,uCAC1B,2BAAOkD,QAAU,MAAKr2B,EAAE2jB,QACpB,GAAE3jB,EAAE+hB,aAAa/hB,EAAEiiB,WACrB,6BAxBUlpB,CAAAA,IAClB,MAAM4pB,EAAU,CAAC,QAAS,SAAU,QAAS,SACvC+V,EAAmB,GAMzB,OALA3/B,EAAKiX,SAAQ,CAACjQ,EAAGnI,KACXmI,GACF24B,EAAOniC,KAAM,GAAEosB,EAAQ/qB,OAAWmI,QAG/B24B,EAAOtnC,KAAK,OAiBVunC,CAAW,CAAC34B,EAAE2jB,KAAM3jB,EAAEmiB,aAAcniB,EAAEwiB,MAAOxiB,EAAEuiB,oBAElD,2BACEvuB,KAAK,QACLE,KAAO,SAAQkM,EAAE+d,KACjBA,GAAK,MAAKne,EAAE2jB,OACZkO,QAAS,IAAM/N,EAAiB,CAC9B3F,GAAI/d,EAAE+d,GACNwF,KAAM3jB,EAAE2jB,YAKhB,OACE,yBAAKwP,UAAU,0DAA0DxgC,IAAKyN,EAAE+d,IAC9E,4BAAM,GAAE/d,EAAE4hB,cAAc5hB,EAAE6hB,YAC1B,8BAAQ,WAAU7hB,EAAEgiB,uBAAuBhiB,EAAE8hB,qBAAqB6V,GAAe33B,EAAEyhB,OAAOoW,qBAAqB,MAC/G,iDACA,yBAAK9E,UAAU,oDACb,0BAAMA,UAAU,QACbsF,EACD,yBAAKtF,UAAU,uCACb,2BAAOkD,QAAU,QAAOj2B,EAAE+d,MAA1B,sCAGA,2BACEnqB,KAAK,QACLE,KAAO,SAAQkM,EAAE+d,KACjBA,GAAK,QAAO/d,EAAE+d,KACd0T,QAAS,IAAMvO,EAAYljB,EAAE+d,OAGjC,yBAAKgV,UAAU,uCACb,2BAAOkD,QAAU,QAAOj2B,EAAE+d,MAA1B,wCAGA,2BACEnqB,KAAK,QACLE,KAAO,SAAQkM,EAAE+d,KACjBA,GAAK,QAAO/d,EAAE+d,KACd0T,QAAS,IAAMjO,EAAYxjB,EAAE+d,aAQ3C,OACE,oCACE,uBAAGsX,wBAAyB,CAAEC,OAAS,iCAAgCjU,EAASnwB,kEAAkEmwB,EAASnwB,OAASinC,EAAiBjnC,4DAA4DinC,EAAiBjnC,0JAClQ,4BACGknC,KAMTF,GAAoB5kC,YAAc,sBAClC,SAAekjC,GACZhwB,GAAqBA,EAAMwgB,YAC5B,CACE9D,YAAasV,GACbhV,YAAaiV,GACb/U,iBAAkBgV,IALtB,CAOER,IC9FIS,GAAkD,EACtDpzB,QAAAA,EACA8b,SAAAA,EACAsB,QAAAA,EACAE,OAAAA,MAEA,MAAM+V,EAAkBjgC,GAAqBA,EAAK6D,KAAK+kB,GACrD,wBAAIhvB,IAAKgvB,EAAQxD,IACf,4BAAM,GAAEwD,EAAQK,cAAcL,EAAQM,YACtC,4BAAKN,EAAQS,cACb,4BAAKT,EAAQO,aACb,4BAAK6V,GAAepW,EAAQE,OAAOoW,qBAAqB,OAGtDQ,EAAiB1/B,GAAwBA,EAAK6D,KAAKmnB,GACvD,wBAAIpxB,IAAKoxB,EAAMJ,MACb,4BAAKI,EAAMJ,MACX,4BAAM,GAAEI,EAAMhC,aAAagC,EAAM9B,YACjC,4BAAK8B,EAAM5B,cACX,4BAAK4B,EAAMvB,OACX,4BAAKuB,EAAMxB,qBAIT0W,EAAchW,EAAOpkB,QAAQ/I,GAAOA,EAAkB6tB,OACtDuV,EAAgBjW,EAAOpkB,QAAQ/I,GAAOA,EAAeqoB,KACrDgb,EAAkB1X,EAAS5iB,QAAQuB,GAAMA,EAAEjC,SAEjD,OACE,oCAEsB,IAAlB8kB,EAAO3xB,QACL,yBAAK6hC,UAAU,WACb,yBAAKA,UAAU,gBAAgB,YAAU,IAAI,cAAY,SACzD,wBAAIA,UAAU,mBACZ,gCAASxtB,MAAAA,OAAT,EAASA,EAASyzB,6BAClB,6BACCzzB,MAAAA,OAHH,EAGGA,EAAS0zB,2BAMhBpW,EAAO3xB,OAAS,GACd,oCACE,kBAAC,GAAD,CAAgBkkC,OAAO,kEAAkEjU,KAAK,oCAE5F0X,EAAY3nC,OAAS,GACnB,oCACE,wGACA,2BAAO6hC,UAAU,SACf,+BACE,4BACE,qCACA,oCACA,sCACA,qCACA,uCAGJ,+BACGsF,EAAcQ,MAOvBC,EAAc5nC,OAAS,GACrB,oCACE,qEACA,2BAAG,oLACH,2BAAO6hC,UAAU,SACf,+BACE,4BACE,oCACA,sCACA,oCACA,qCAGJ,+BACG6F,EAAeE,OAU9BnW,EAAQzxB,OAAS,GACf,oCACE,kGACA,2BAAO6hC,UAAU,SACf,+BACE,4BACE,qCACA,oCACA,sCACA,qCACA,uCAGJ,+BACGsF,EAAc1V,MAOvBoW,EAAgB7nC,OAAS,GACvB,oCACE,uFACA,2BAAO6hC,UAAU,SACf,+BACE,4BACE,oCACA,sCACA,oCACA,qCAGJ,+BACG6F,EAAeG,QAUhCJ,GAAiBrlC,YAAc,mBAC/B,SAAekjC,GACZhwB,GAAqBA,EAAMwgB,YAD9B,CAEE2R,ICjJIO,GAAwC,EAC5C5Z,KAAAA,EACA9Z,SAAAA,KACwBA,EAAS8Z,IAAS,KAE5C4Z,GAAc5lC,YAAc,gBAC5B,YCeM6lC,GAA4D,EAChE5zB,QAAAA,EACAC,SAAAA,EACA4zB,QAAAA,UAEuB,IAAZ7zB,GAzBY,EAACA,EAAgC6zB,IACzC,MAAX7zB,IAIY,UAAZ6zB,EACK7zB,EAAQ8zB,aAGD,gBAAZD,EACK7zB,EAAQ+zB,mBAGD,SAAZF,GACK7zB,EAAQg0B,aAWsBC,CAAiBj0B,EAAS6zB,GAQ1D5zB,EANH,yBAAKutB,UAAU,iEACb,kBAAC,GAAD,CAAgBqC,OAAO,mBAAmBjU,KAAK,6EAQvDgY,GAAwB7lC,YAAc,0BACtC,YCfMmmC,GAA4C,EAChDl0B,QAAAA,EACA8b,SAAAA,EACAsB,QAAAA,EACArD,KAAAA,EACAwD,YAAAA,EACAkB,WAAAA,EACAE,YAAAA,EACAL,iCAAAA,EACAI,UAAAA,EACAzD,uBAAAA,EACA6D,kBAAAA,MAEA,MAAMqV,EAA0B/W,EAAQzxB,SAAWmwB,EAAS5iB,QACzDuB,IAAOA,EAAEjC,SAAWiC,EAAEyjB,OACvBvyB,OAEF,OACE,kBAAC,GAAD,CACEqU,QAASA,EACT6zB,QAAQ,QAER,kBAAC,GAAD,CACEnF,OAAmB,MAAX1uB,EACRyuB,iBAA6B,MAAXzuB,EAClB4uB,OAAQ,KACN,MAAMh3B,EAAQm6B,KACVn6B,EACFqjB,EAAuBrjB,GAEvBknB,MAIJ,oCACE,yBAAK0O,UAAU,wBACb,wBAAIA,UAAU,cAAcxtB,MAAAA,OAA5B,EAA4BA,EAASkyB,6BAEvC,yBAAK1E,UAAU,iEACb,kBAAC,GAAD,CACEzT,KAAMA,GAEN,kBAAC,GAAD,MACA,kBAAC,GAAD,CACE/sB,IAAM,QAAO+sB,IACbqX,MAAOtV,EACPuV,UAAY+C,GAAwC7W,EAAY6W,GAChE9C,QAAS,CAAC8C,EAA6BC,KACrC1V,EAAYyV,GACZhE,QAAQC,IAAIgE,EAAWr0B,IAEzBuxB,aAAe6C,IACb,MAAMpY,EAAWoY,EACjB,MAAQ,cAAapY,EAAQK,cAAcL,EAAQM,kBAGvD,kBAAC,GAAD,MACA,kBAAC,GAAD,CACEtvB,IAAM,QAAO+sB,IACbqX,MAAO,IAAItV,KAAasB,GACxBiU,UAAY+C,GAAwC3V,EAAW2V,GAC/D9C,QAAS,CAAC8C,EAA6BC,KACrC1V,GAAayV,EAA6BpW,KAAOoW,IACjDhE,QAAQC,IAAIgE,IAEd9C,aAAe6C,IACb,GAAKA,EAA0B5b,GAAI,CACjC,MAAMwD,EAAWoY,EACjB,MAAQ,YAAWpY,EAAQK,cAAcL,EAAQM,kCAEnD,MAAMN,EAAWoY,EACjB,MAAQ,uBAAsBpY,EAAQI,aAAaJ,EAAQM,kBAG/D,kBAAC,GAAD,QAGJ,yBAAKkR,UAAU,iEACb,yBAAKA,UAAU,QAED,IAATzT,GAAuB,IAATA,IACb,yBAAKyT,UAAU,aACb,4BACEn/B,KAAK,SACLm/B,UAAU,SACVtB,QAAS,KAEHpuB,OAAOumB,QAAQ,kBACjB3F,EAAU,KANhB,iBAgBK,IAAT3E,GACE,yBAAKyT,UAAU,aACb,4BACEn/B,KAAK,SACLm/B,UAAY,UAAS2G,EAAiD,GAAvB,sBAC/CnD,UAAWmD,EACXjI,QAAS,IAAM5N,EAAiC,CAC9CxC,SAAAA,EACAsB,QAAAA,KANJ,kBAsBpB8W,GAAgBnmC,YAAc,kBAC9B,SAAekjC,GACZhwB,GAAqBA,EAAMwgB,YAC5B,CACElE,YAAa+W,GACb7V,WAAY8V,GACZ5V,YAAa6V,GACb9V,UAAW+V,GACXnW,iCAAkCoW,GAClCzZ,uBAAwB0Z,GACxB7V,kBAAmB8V,IATvB,CAWEV,ICjJIW,GAA4B,IAChC,kBAAC,GAAD,KACE,kBAACtJ,GAAD,KACE,kBAACL,GAAD,CAAO70B,OAAK,EAAC7F,KAAK,oCAChB,kBAAC,GAAD,SAMRqkC,GAAqB9mC,YAAc,uBACnC,YCyPA,GAlRa,CACX+mC,GAAI,CAMFC,oBAAqB,mDACrBC,eAAgB,qDAChBC,gBAAiB,wDACjBC,YAAa,2CACbC,WAAY,+CACZC,aAAc,oCACdC,cAAe,8BACfC,eAAgB,2CAGhBC,uBAAwB,yBACxBC,SAAU,aACVC,mBAAoB,0BACpBC,SAAU,cACVC,mBAAoB,2BACpBC,0BAA2B,uCAC3BC,wBAAyB,8EACzBC,WAAY,iDACZC,aAAc,eAGdC,sBAAuB,8BACvBC,UAAW,aACXC,aAAc,2BACdC,WAAY,sBACZC,eAAgB,2DAChB9jC,KAAM,QACN+jC,sBAAuB,ggBACvBC,qBAAsB,2DAGtBC,yBAA0B,yBAC1BC,UAAW,cACXC,IAAK,WACLC,cAAe,mBACfC,iBAAkB,uBAClBC,iBAAkB,+BAClBC,MAAO,aACPC,gBAAiB,qBACjBC,mBAAoB,yBACpBC,mBAAoB,iCACpBC,KAAM,YACNC,eAAgB,kBAChBC,kBAAmB,sBACnBC,kBAAmB,uBACnBC,uBAAwB,6BACxBjb,UAAW,UACXkb,oBAAqB,wBACrBhb,SAAU,YACVib,mBAAoB,0BACpBrb,OAAQ,MACRsb,cAAe,+BACfC,aAAc,SACdC,WAAY,OACZC,aAAc,sDACdC,aAAc,4BACdC,iBAAkB,iCAClBC,gBAAiB,mCACjBC,YAAa,eACbC,WAAY,eAIZC,yBAA0B,8CAC1BC,aAAc,mBACdC,wBAAyB,oCACzBC,eAAgB,oBAChBC,mBAAoB,2EACpBC,uBAAwB,6BACxBC,8BAA+B,4BAC/BC,qBAAsB,0CAItBC,gBAAiB,uBACjBC,gBAAiB,sFACjBC,uBAAwB,iBACxBC,oBAAqB,4FACrBC,kCAAmC,+CACnCC,+BAAgC,qCAChCC,SAAU,YAMVvc,aAAc,eACdwc,mBAAoB,gDACpBC,kBAAmB,iCACnBC,iBAAkB,kCAClBC,eAAgB,4BAChBC,OAAQ,UACR7d,GAAI,KACJ8d,oBAAqB,2BAGrBC,uBAAwB,gCACxBC,uBAAwB,yEACxB5c,YAAa,eAGb6c,0BAA2B,+CAC3BC,eAAgB,+BAChBC,kBAAmB,4DACnB1b,KAAM,OACN2b,WAAY,eACZnhC,OAAQ,QACRohC,MAAO,SACPvc,QAAS,WACTwc,QAAS,UACTC,YAAa,8BACbC,YAAa,0CAGbC,mBAAoB,8CACpBC,wBAAyB,4BACzBC,0BAA2B,uDAC3BC,6BAA8B,6DAC9BC,cAAe,sBACf5H,IAAK,MACL3V,MAAO,QACPD,iBAAkB,QAIlByd,YAAa,2DACbC,UAAW,sOACXC,KAAM,WAGRruB,GAAI,CAMF6oB,oBAAqB,2CACrBC,eAAgB,2CAChBC,gBAAiB,mDACjBC,YAAa,kDACbC,WAAY,gDACZC,aAAc,sCACdC,cAAe,4CACfC,eAAgB,oDAGhBC,uBAAwB,+BACxBC,SAAU,WACVC,mBAAoB,uBACpBC,SAAU,WACVC,mBAAoB,uBACpBC,0BAA2B,6BAC3BC,wBAAyB,wEACzBC,WAAY,mCACZC,aAAc,gBAGdC,sBAAuB,qDACvBC,UAAW,4BACXC,aAAc,wCACdC,WAAY,uCACZC,eAAgB,8DAChB9jC,KAAM,OACN+jC,sBAAuB,miBACvBC,qBAAsB,0DAGtBC,yBAA0B,oDAC1BC,UAAW,aACXC,IAAK,WACLC,cAAe,kBACfC,iBAAkB,uBAClBC,iBAAkB,+BAClBC,MAAO,aACPC,gBAAiB,oBACjBC,mBAAoB,yBACpBC,mBAAoB,iCACpBC,KAAM,cACNC,eAAgB,mBAChBC,kBAAmB,wBACnBC,kBAAmB,0BACnBC,uBAAwB,4BACxBjb,UAAW,aACXkb,oBAAqB,yBACrBhb,SAAU,YACVib,mBAAoB,wBACpBrb,OAAQ,SACRsb,cAAe,kCACfC,aAAc,SACdC,WAAY,OACZC,aAAc,gDACdC,aAAc,wBACdC,iBAAkB,gDAClBC,gBAAiB,+CACjBC,YAAa,eACbC,WAAY,sBAIZC,yBAA0B,gDAC1BC,aAAc,qBACdC,wBAAyB,4CACzBC,eAAgB,kBAChBC,mBAAoB,0FACpBC,uBAAwB,yBACxBC,8BAA+B,8BAC/BC,qBAAsB,uDAItBC,gBAAiB,2BACjBC,gBAAiB,6FACjBC,uBAAwB,oBACxBC,oBAAqB,gHACrBC,kCAAmC,4CACnCC,+BAAgC,0CAChCC,SAAU,YAMVvc,aAAc,gBACdwc,mBAAoB,4CACpBC,kBAAmB,sCACnBC,iBAAkB,qDAClBC,eAAgB,SAChBC,OAAQ,SACR7d,GAAI,KACJ8d,oBAAqB,4BAGrBC,uBAAwB,0DACxBC,uBAAwB,qEACxB5c,YAAa,cAGb6c,0BAA2B,gDAC3BC,eAAgB,mCAChBC,kBAAmB,4FACnB1b,KAAM,OACN2b,WAAY,cACZnhC,OAAQ,SACRohC,MAAO,QACPvc,QAAS,UACTwc,QAAS,UACTC,YAAa,4BACbC,YAAa,2CAGbC,mBAAoB,oFACpBC,wBAAyB,+BACzBC,0BAA2B,qDAC3BC,6BAA8B,4DAC9BC,cAAe,oBACf5H,IAAK,MACL3V,MAAO,QACPD,iBAAkB,oBAIlByd,YAAa,0DACbC,UAAW,yNACXC,KAAM,SC1PJC,GAAgE,EACpEx6B,QAAAA,EACAib,uBAAAA,EACA6D,kBAAAA,KAEA,kBAAC,GAAD,CACE9e,QAASA,EACT6zB,QAAQ,eAER,kBAAC,GAAD,CACEnF,OAAmB,MAAX1uB,EACRyuB,iBAA6B,MAAXzuB,EAClB4uB,OAAQ,KACN,MAAMh3B,EAAQm6B,KACVn6B,EACFqjB,EAAuBrjB,GAEvBknB,MAIJ,yBAAK0O,UAAU,wBACb,4BACGyE,GAAwBn0B,OAAO28B,QAASz6B,KAG7C,yBAAKwtB,UAAU,wBACb,wBAAIA,UAAU,kCAETxtB,MAAAA,OAAA,EAAAA,EAAS06B,cAAe,IAAI/uC,OAAS,GACpC,wBAAI6hC,UAAU,yBACZ,wBAAIA,UAAU,gCAAgCmN,GAAK78B,OAAO28B,SAAS1F,qBACnE,yBAAKvH,UAAU,sDACb,kBAACX,GAAD,CAAMW,UAAU,SAASlb,GAAK,IAAGxU,OAAO28B,+BAAgCE,GAAK78B,OAAO28B,SAASrF,gBAKrG,wBAAI5H,UAAU,yBACZ,wBAAIA,UAAU,kCAAiCxtB,MAAAA,OAAA,EAAAA,EAAS06B,cAAe,IAAI/uC,OAAS,EAAIgvC,GAAK78B,OAAO28B,SAASzF,eAAiB2F,GAAK78B,OAAO28B,SAASxF,iBACnJ,uBAAGzH,UAAU,2FACVmN,GAAK78B,OAAO28B,SAASvF,aAExB,yBAAK1H,UAAU,iCACb,kBAACX,GAAD,CAAMW,UAAU,SAASlb,GAAK,IAAGxU,OAAO28B,8BAA+BE,GAAK78B,OAAO28B,SAASpF,gBAE9F,uBAAG7H,UAAU,2FACVmN,GAAK78B,OAAO28B,SAAStF,YAExB,yBAAK3H,UAAU,iCACb,kBAACX,GAAD,CAAMW,UAAU,SAASlb,GAAK,IAAGxU,OAAO28B,+BAAgCE,GAAK78B,OAAO28B,SAASnF,sBAS3GkF,GAA0BzsC,YAAc,4BACxC,SAAekjC,GACZhwB,GAAqBA,EAAMygB,aAC5B,CACEzG,uBAAwB0Z,GACxB7V,kBAAmB8V,IAJvB,CAME4F,ICpFF,IAAII,GAAmB/kC,GAA6B,aAAjBA,EAAQxH,KAEvCwsC,GAAgBpnC,GAAUA,aAAiBqnB,KAE3CggB,GAAqBrnC,GAAmB,MAATA,EAEnC,MAAMsnC,GAAgBtnC,GAA2B,iBAAVA,EACvC,IAAIunC,GAAYvnC,IAAWqnC,GAAkBrnC,KACxC1H,MAAMuB,QAAQmG,IACfsnC,GAAatnC,KACZonC,GAAapnC,GAYdwnC,GAAWxnC,GAAU1H,MAAMuB,QAAQmG,GAASA,EAAMyF,OAAON,SAAW,GAEpEsiC,GAAe3tC,QAAgB2K,IAAR3K,EAEvBmQ,GAAM,CAACxQ,EAAKsD,EAAM23B,KAClB,IAAK33B,IAASwqC,GAAS9tC,GACnB,OAAOi7B,EAEX,MAAMv7B,EAASquC,GAAQzqC,EAAKjF,MAAM,cAAcoN,QAAO,CAAC/L,EAAQI,IAAQ8tC,GAAkBluC,GAAUA,EAASA,EAAOI,IAAME,GAC1H,OAAOguC,GAAYtuC,IAAWA,IAAWM,EACnCguC,GAAYhuC,EAAIsD,IACZ23B,EACAj7B,EAAIsD,GACR5D,GAGV,MAKMuuC,GAEQ,WAFRA,GAGQ,WAHRA,GAKG,MAEHC,GAKO,UALPA,GAMQ,WAIU,gBAAoB,MAmE5C,IAiBIC,GAAiB5nC,GAAUunC,GAASvnC,KAAW3G,OAAOC,KAAK0G,GAAO9H,OAUlE2vC,GAAyB7nC,GAAW1H,MAAMuB,QAAQmG,GAASA,EAAQ,CAACA,GA8FxE,IAAI8nC,GAAY9nC,GAA2B,iBAAVA,EAgB7B+nC,GAAc/nC,GAA2B,mBAAVA,EAE/BgoC,GAAqBroC,IACrB,IAAK,MAAMpG,KAAOoG,EACd,GAAIooC,GAAWpoC,EAAKpG,IAChB,OAAO,EAGf,OAAO,GA6MP0uC,GAAe,CAACntC,EAAMotC,EAA0Bre,EAAQjvB,EAAMyoB,IAAY6kB,EACxE,IACKre,EAAO/uB,GACVqtC,MAAO,IACCte,EAAO/uB,IAAS+uB,EAAO/uB,GAAMqtC,MAAQte,EAAO/uB,GAAMqtC,MAAQ,GAC9D,CAACvtC,GAAOyoB,IAAW,IAGzB,GAEF+kB,GAASpoC,GAAU,QAAQI,KAAKJ,GAEhCqoC,GAAgB1vC,GAAU6uC,GAAQ7uC,EAAMK,QAAQ,YAAa,IAAIlB,MAAM,UAE3E,SAASgf,GAAI/U,EAAQhF,EAAMiD,GACvB,IAAIxB,GAAS,EACb,MAAM8pC,EAAWF,GAAMrrC,GAAQ,CAACA,GAAQsrC,GAAatrC,GAC/C7E,EAASowC,EAASpwC,OAClBqwC,EAAYrwC,EAAS,EAC3B,OAASsG,EAAQtG,GAAQ,CACrB,MAAMqB,EAAM+uC,EAAS9pC,GACrB,IAAIoG,EAAW5E,EACf,GAAIxB,IAAU+pC,EAAW,CACrB,MAAMC,EAAWzmC,EAAOxI,GACxBqL,EACI2iC,GAASiB,IAAalwC,MAAMuB,QAAQ2uC,GAC9BA,EACCzkC,OAAOukC,EAAS9pC,EAAQ,IAErB,GADA,GAGlBuD,EAAOxI,GAAOqL,EACd7C,EAASA,EAAOxI,GAEpB,OAAOwI,EAGX,MAAM0mC,GAAe,CAACC,EAAQh+B,EAAUi+B,KACpC,IAAK,MAAMpvC,KAAOovC,GAAetvC,OAAOC,KAAKovC,GAAS,CAClD,MAAME,EAAQ3+B,GAAIy+B,EAAQnvC,GAC1B,GAAIqvC,EAAO,CACP,MAAM,GAAEhnB,KAAOinB,GAAiBD,EAChC,GAAIhnB,GAAMlX,EAASkX,EAAG9mB,MAAO,CACzB,GAAI8mB,EAAGjQ,IAAIm3B,OAASrB,GAAY7lB,EAAGjQ,IAAIm3B,SACnC,MAEC,GAAIlnB,EAAGmnB,KAAM,CACdnnB,EAAGmnB,KAAK,GAAGD,QACX,YAGCvB,GAASsB,IACdJ,GAAaI,EAAcn+B,MAM3C,IAaIs+B,GAAY,CAACluC,EAAMmuC,EAAQC,KAAiBA,IAC3CD,EAAOE,UACJF,EAAOG,MAAMvyB,IAAI/b,IACjB,IAAImuC,EAAOG,OAAOC,MAAMC,GAAcxuC,EAAKyuC,WAAWD,IAClD,SAASlpC,KAAKtF,EAAK1C,MAAMkxC,EAAUpxC,YAM3CsxC,GAA0B,oBAAXn/B,aACe,IAAvBA,OAAOo/B,aACM,oBAAbv9B,SAEX,SAASw9B,GAAY/pC,GACjB,IAAIgqC,EACJ,MAAM9vC,EAAUvB,MAAMuB,QAAQ8F,GAC9B,GAAIA,aAAgB0nB,KAChBsiB,EAAO,IAAItiB,KAAK1nB,QAEf,GAAIA,aAAgBwX,IACrBwyB,EAAO,IAAIxyB,IAAIxX,OAEd,IAAM6pC,KAAU7pC,aAAgBiqC,MAAQjqC,aAAgBkqC,YACxDhwC,IAAW0tC,GAAS5nC,GAOrB,OAAOA,EANPgqC,EAAO9vC,EAAU,GAAK,GACtB,IAAK,MAAMN,KAAOoG,EACdgqC,EAAKpwC,GAAOwuC,GAAWpoC,EAAKpG,IAAQoG,EAAKpG,GAAOmwC,GAAY/pC,EAAKpG,IAMzE,OAAOowC,EAqDX,SAASG,GAAM/nC,EAAQhF,GACnB,MAAMgtC,EAAa3B,GAAMrrC,GAAQ,CAACA,GAAQsrC,GAAatrC,GACjDitC,EAAmC,GAArBD,EAAW7xC,OAAc6J,EAVjD,SAAiBA,EAAQgoC,GACrB,MAAM7xC,EAAS6xC,EAAW3xC,MAAM,GAAI,GAAGF,OACvC,IAAIsG,EAAQ,EACZ,KAAOA,EAAQtG,GACX6J,EAAS0lC,GAAY1lC,GAAUvD,IAAUuD,EAAOgoC,EAAWvrC,MAE/D,OAAOuD,EAI+CkoC,CAAQloC,EAAQgoC,GAChExwC,EAAMwwC,EAAWA,EAAW7xC,OAAS,GAC3C,IAAIgyC,EACAF,UACOA,EAAYzwC,GAEvB,IAAK,IAAI0L,EAAI,EAAGA,EAAI8kC,EAAW3xC,MAAM,GAAI,GAAGF,OAAQ+M,IAAK,CACrD,IACIklC,EADA3rC,GAAS,EAEb,MAAM4rC,EAAeL,EAAW3xC,MAAM,IAAK6M,EAAI,IACzColC,EAAqBD,EAAalyC,OAAS,EAIjD,IAHI+M,EAAI,IACJilC,EAAiBnoC,KAEZvD,EAAQ4rC,EAAalyC,QAAQ,CAClC,MAAM2M,EAAOulC,EAAa5rC,GAC1B2rC,EAAYA,EAAYA,EAAUtlC,GAAQ9C,EAAO8C,GAC7CwlC,IAAuB7rC,IACrB+oC,GAAS4C,IAAcvC,GAAcuC,IAClC7xC,MAAMuB,QAAQswC,KACVA,EAAU1kC,QAAQ9F,IAAU8nC,GAAY9nC,KAAOzH,UACxDgyC,SAAwBA,EAAerlC,UAAe9C,EAAO8C,IAEjEqlC,EAAiBC,GAGzB,OAAOpoC,EA2MX,SAASuoC,KACL,IAAIC,EAAa,GAiBjB,MAAO,CACCC,gBACA,OAAOD,GAEX1rC,KApBUmB,IACV,IAAK,MAAM4c,KAAY2tB,EACnB3tB,EAAS/d,KAAKmB,IAmBlBuL,UAhBeqR,IACf2tB,EAAWptC,KAAKyf,GACT,CACH5R,YAAa,KACTu/B,EAAaA,EAAW9kC,QAAQsE,GAAMA,IAAM6S,OAapD5R,YATgB,KAChBu/B,EAAa,KAYrB,IAAIE,GAAezqC,GAAUqnC,GAAkBrnC,KAAWsnC,GAAatnC,GAEvE,SAAS0qC,GAAUC,EAASC,GACxB,GAAIH,GAAYE,IAAYF,GAAYG,GACpC,OAAOD,IAAYC,EAEvB,GAAIxD,GAAauD,IAAYvD,GAAawD,GACtC,OAAOD,EAAQE,YAAcD,EAAQC,UAEzC,MAAMC,EAAQzxC,OAAOC,KAAKqxC,GACpBI,EAAQ1xC,OAAOC,KAAKsxC,GAC1B,GAAIE,EAAM5yC,SAAW6yC,EAAM7yC,OACvB,OAAO,EAEX,IAAK,MAAMqB,KAAOuxC,EAAO,CACrB,MAAME,EAAOL,EAAQpxC,GACrB,IAAKwxC,EAAMrmC,SAASnL,GAChB,OAAO,EAEX,GAAY,QAARA,EAAe,CACf,MAAM0xC,EAAOL,EAAQrxC,GACrB,GAAK6tC,GAAa4D,IAAS5D,GAAa6D,IACnC1D,GAASyD,IAASzD,GAAS0D,IAC3B3yC,MAAMuB,QAAQmxC,IAAS1yC,MAAMuB,QAAQoxC,IACnCP,GAAUM,EAAMC,GACjBD,IAASC,EACX,OAAO,GAInB,OAAO,EAGX,IAAIC,GAAsBC,IAAS,CAC/BC,YAAaD,GAAQA,IAASzD,GAC9B2D,SAp3BQ,WAo3BEF,EACVG,WAAYH,IAASzD,GACrB6D,QAASJ,IAASzD,GAClB8D,UAp3BW,cAo3BAL,IAGX,GAAanrC,GAA2B,kBAAVA,EAE9ByrC,GAAerpC,GAA6B,SAAjBA,EAAQxH,KAEnC8wC,GAAiB1rC,GAAUA,aAAiBypC,YAE5CkC,GAAoBvpC,GAA6B,oBAAjBA,EAAQxH,KAExCgxC,GAAgBxpC,GAA6B,UAAjBA,EAAQxH,KAIpCixC,GAAQl6B,GAAQ+5B,GAAc/5B,IAAQA,EAAIm6B,YAE9C,SAASC,GAAgBpsC,EAAM+oC,EAAS,IACpC,MAAMsD,EAAoB1zC,MAAMuB,QAAQ8F,GACxC,GAAI4nC,GAAS5nC,IAASqsC,EAClB,IAAK,MAAMzyC,KAAOoG,EACVrH,MAAMuB,QAAQ8F,EAAKpG,KAClBguC,GAAS5nC,EAAKpG,MAAUyuC,GAAkBroC,EAAKpG,KAChDmvC,EAAOnvC,GAAOjB,MAAMuB,QAAQ8F,EAAKpG,IAAQ,GAAK,GAC9CwyC,GAAgBpsC,EAAKpG,GAAMmvC,EAAOnvC,KAE5B8tC,GAAkB1nC,EAAKpG,MAC7BmvC,EAAOnvC,IAAO,GAI1B,OAAOmvC,EAEX,SAASuD,GAAgCtsC,EAAMusC,EAAYC,GACvD,MAAMH,EAAoB1zC,MAAMuB,QAAQ8F,GACxC,GAAI4nC,GAAS5nC,IAASqsC,EAClB,IAAK,MAAMzyC,KAAOoG,EACVrH,MAAMuB,QAAQ8F,EAAKpG,KAClBguC,GAAS5nC,EAAKpG,MAAUyuC,GAAkBroC,EAAKpG,IAC5CkuC,GAAYyE,IACZzB,GAAY0B,EAAsB5yC,IAClC4yC,EAAsB5yC,GAAOjB,MAAMuB,QAAQ8F,EAAKpG,IAC1CwyC,GAAgBpsC,EAAKpG,GAAM,IAC3B,IAAKwyC,GAAgBpsC,EAAKpG,KAGhC0yC,GAAgCtsC,EAAKpG,GAAM8tC,GAAkB6E,GAAc,GAAKA,EAAW3yC,GAAM4yC,EAAsB5yC,IAI3H4yC,EAAsB5yC,IAAQmxC,GAAU/qC,EAAKpG,GAAM2yC,EAAW3yC,IAI1E,OAAO4yC,EAEX,IAAIC,GAAiB,CAACC,EAAeH,IAAeD,GAAgCI,EAAeH,EAAYH,GAAgBG,IAE/H,MAAMI,GAAgB,CAClBtsC,OAAO,EACPusC,SAAS,GAEPC,GAAc,CAAExsC,OAAO,EAAMusC,SAAS,GAC5C,IAAIE,GAAoBzvC,IACpB,GAAI1E,MAAMuB,QAAQmD,GAAU,CACxB,GAAIA,EAAQ9E,OAAS,EAAG,CACpB,MAAMq/B,EAASv6B,EACVyI,QAAQinC,GAAWA,GAAUA,EAAOC,UAAYD,EAAOnP,WACvD/5B,KAAKkpC,GAAWA,EAAO1sC,QAC5B,MAAO,CAAEA,MAAOu3B,EAAQgV,UAAWhV,EAAOr/B,QAE9C,OAAO8E,EAAQ,GAAG2vC,UAAY3vC,EAAQ,GAAGugC,SAEjCvgC,EAAQ,GAAG4vC,aAAenF,GAAYzqC,EAAQ,GAAG4vC,WAAW5sC,OACtDynC,GAAYzqC,EAAQ,GAAGgD,QAA+B,KAArBhD,EAAQ,GAAGgD,MACxCwsC,GACA,CAAExsC,MAAOhD,EAAQ,GAAGgD,MAAOusC,SAAS,GACxCC,GACRF,GAEV,OAAOA,IAGPO,GAAkB,CAAC7sC,GAAS8sC,cAAAA,EAAeC,YAAAA,EAAaC,WAAAA,KAAiBvF,GAAYznC,GACnFA,EACA8sC,EACc,KAAV9sC,EACIitC,KACCjtC,EACL+sC,GAAejF,GAAS9nC,GACpB,IAAIqnB,KAAKrnB,GACTgtC,EACIA,EAAWhtC,GACXA,EAElB,MAAMktC,GAAgB,CAClBX,SAAS,EACTvsC,MAAO,MAEX,IAAImtC,GAAiBnwC,GAAY1E,MAAMuB,QAAQmD,GACzCA,EAAQkI,QAAO,CAACkoC,EAAUV,IAAWA,GAAUA,EAAOC,UAAYD,EAAOnP,SACrE,CACEgP,SAAS,EACTvsC,MAAO0sC,EAAO1sC,OAEhBotC,GAAUF,IACdA,GAEN,SAASG,GAAczrB,GACnB,MAAMjQ,EAAMiQ,EAAGjQ,IACf,KAAIiQ,EAAGmnB,KAAOnnB,EAAGmnB,KAAKuE,OAAO37B,GAAQA,EAAI4rB,WAAY5rB,EAAI4rB,UAGzD,OAAIkO,GAAY95B,GACLA,EAAI0rB,MAEXuO,GAAaj6B,GACNw7B,GAAcvrB,EAAGmnB,MAAM/oC,MAE9B2rC,GAAiBh6B,GACV,IAAIA,EAAI47B,iBAAiB/pC,KAAI,EAAGxD,MAAAA,KAAYA,IAEnDmnC,GAAgBx1B,GACT86B,GAAiB7qB,EAAGmnB,MAAM/oC,MAE9B6sC,GAAgBpF,GAAY91B,EAAI3R,OAAS4hB,EAAGjQ,IAAI3R,MAAQ2R,EAAI3R,MAAO4hB,GAG9E,IAcI4rB,GAAWxtC,GAAUA,aAAiBtI,OAEtC+1C,GAAgBC,GAASjG,GAAYiG,QACnCjpC,EACA+oC,GAAQE,GACJA,EAAKxwC,OACLqqC,GAASmG,GACLF,GAAQE,EAAK1tC,OACT0tC,EAAK1tC,MAAM9C,OACXwwC,EAAK1tC,MACT0tC,EAWd,SAASC,GAAkB9jB,EAAQ+jB,EAAS9yC,GACxC,MAAMkU,EAAQ/E,GAAI4f,EAAQ/uB,GAC1B,GAAIkU,GAASo5B,GAAMttC,GACf,MAAO,CACHkU,MAAAA,EACAlU,KAAAA,GAGR,MAAM+yC,EAAQ/yC,EAAKhD,MAAM,KACzB,KAAO+1C,EAAM31C,QAAQ,CACjB,MAAM41C,EAAYD,EAAM71C,KAAK,KACvB4wC,EAAQ3+B,GAAI2jC,EAASE,GACrBC,EAAa9jC,GAAI4f,EAAQikB,GAC/B,GAAIlF,IAAUtwC,MAAMuB,QAAQ+uC,IAAU9tC,IAASgzC,EAC3C,MAAO,CAAEhzC,KAAAA,GAEb,GAAIizC,GAAcA,EAAWnzC,KACzB,MAAO,CACHE,KAAMgzC,EACN9+B,MAAO++B,GAGfF,EAAMxnB,MAEV,MAAO,CACHvrB,KAAAA,GAIR,IAkBIkzC,GAAahuC,GAAU8nC,GAAS9nC,IAAU,iBAAqBA,GAEnE,SAASiuC,GAAiB90C,EAAQwY,EAAK/W,EAAO,YAC1C,GAAIozC,GAAU70C,IACTb,MAAMuB,QAAQV,IAAWA,EAAOm0C,MAAMU,KACtC,GAAU70C,KAAYA,EACvB,MAAO,CACHyB,KAAAA,EACAyoB,QAAS2qB,GAAU70C,GAAUA,EAAS,GACtCwY,IAAAA,GAKZ,IAAIu8B,GAAsBC,GAAmB5G,GAAS4G,KAAoBX,GAAQW,GAC5EA,EACA,CACEnuC,MAAOmuC,EACP9qB,QAAS,IAGb+qB,GAAgB3mB,MAAOmhB,EAAOyF,EAAYnG,EAA0BoG,KACpE,MAAM,IAAE38B,EAAG,KAAEo3B,EAAI,SAAEwF,EAAQ,UAAEC,EAAS,UAAEC,EAAS,IAAEvnB,EAAG,IAAEwnB,EAAG,QAAEhxC,EAAO,SAAEixC,EAAQ,KAAE7zC,EAAI,cAAEgyC,EAAa,MAAE8B,EAAK,SAAErR,GAAcqL,EAAMhnB,GAChI,IAAKgtB,GAASrR,EACV,MAAO,GAEX,MAAMsR,EAAW9F,EAAOA,EAAK,GAAKp3B,EAC5Bm9B,EAAqBzrB,IACnBirB,GAA6BO,EAASE,iBACtCF,EAASC,kBAAkB,GAAUzrB,GAAW,GAAKA,GAAW,KAChEwrB,EAASE,mBAGX//B,EAAQ,GACRggC,EAAUpD,GAAaj6B,GACvBs9B,EAAa9H,GAAgBx1B,GAC7Bu9B,EAAoBF,GAAWC,EAC/BE,GAAYrC,GAAiBrB,GAAY95B,MAAUA,EAAI3R,OAC1C,KAAfquC,GACC/1C,MAAMuB,QAAQw0C,KAAgBA,EAAWn2C,OACxCk3C,EAAoBnH,GAAa72B,KAAK,KAAMtW,EAAMotC,EAA0Bl5B,GAC5EqgC,EAAmB,CAACC,EAAWC,EAAkBC,EAAkBC,EAzmC9D,YAymC0GC,EAxmC1G,eAymCP,MAAMrsB,EAAUisB,EAAYC,EAAmBC,EAC/CxgC,EAAMlU,GAAQ,CACVF,KAAM00C,EAAYG,EAAUC,EAC5BrsB,QAAAA,EACA1R,IAAAA,KACGy9B,EAAkBE,EAAYG,EAAUC,EAASrsB,KAG5D,GAAIkrB,KACGW,IAAsBC,GAAW9H,GAAkBgH,KACjD,GAAUA,KAAgBA,GAC1BY,IAAexC,GAAiB1D,GAAMwD,SACtCyC,IAAY7B,GAAcpE,GAAMwD,SAAW,CAChD,MAAM,MAAEvsC,EAAK,QAAEqjB,GAAY2qB,GAAUO,GAC/B,CAAEvuC,QAASuuC,EAAUlrB,QAASkrB,GAC9BL,GAAmBK,GACzB,GAAIvuC,IACAgP,EAAMlU,GAAQ,CACVF,KAAM+sC,GACNtkB,QAAAA,EACA1R,IAAKk9B,KACFO,EAAkBzH,GAAiCtkB,KAErD6kB,GAED,OADA4G,EAAkBzrB,GACXrU,EAInB,KAAKmgC,GAAa9H,GAAkBngB,IAASmgB,GAAkBqH,IAAO,CAClE,IAAIY,EACAK,EACJ,MAAMC,EAAY1B,GAAmBQ,GAC/BmB,EAAY3B,GAAmBhnB,GACrC,GAAKnjB,MAAMsqC,GASN,CACD,MAAMyB,EAAYn+B,EAAIo7B,aAAe,IAAI1lB,KAAKgnB,GAC1CvG,GAAS8H,EAAU5vC,SACnBsvC,EAAYQ,EAAY,IAAIzoB,KAAKuoB,EAAU5vC,QAE3C8nC,GAAS+H,EAAU7vC,SACnB2vC,EAAYG,EAAY,IAAIzoB,KAAKwoB,EAAU7vC,YAf3B,CACpB,MAAM+vC,EAAcp+B,EAAIm7B,gBAAkBuB,EACrChH,GAAkBuI,EAAU5vC,SAC7BsvC,EAAYS,EAAcH,EAAU5vC,OAEnCqnC,GAAkBwI,EAAU7vC,SAC7B2vC,EAAYI,EAAcF,EAAU7vC,OAY5C,IAAIsvC,GAAaK,KACbN,IAAmBC,EAAWM,EAAUvsB,QAASwsB,EAAUxsB,QAjqC9D,MACA,QAiqCQ6kB,GAED,OADA4G,EAAkB9/B,EAAMlU,GAAMuoB,SACvBrU,EAInB,IAAKw/B,GAAaC,KAAeU,GAAWrH,GAASuG,GAAa,CAC9D,MAAM2B,EAAkB9B,GAAmBM,GACrCyB,EAAkB/B,GAAmBO,GACrCa,GAAajI,GAAkB2I,EAAgBhwC,QACjDquC,EAAWn2C,OAAS83C,EAAgBhwC,MAClC2vC,GAAatI,GAAkB4I,EAAgBjwC,QACjDquC,EAAWn2C,OAAS+3C,EAAgBjwC,MACxC,IAAIsvC,GAAaK,KACbN,EAAiBC,EAAWU,EAAgB3sB,QAAS4sB,EAAgB5sB,UAChE6kB,GAED,OADA4G,EAAkB9/B,EAAMlU,GAAMuoB,SACvBrU,EAInB,GAAItR,IAAYyxC,GAAWrH,GAASuG,GAAa,CAC7C,MAAQruC,MAAOkwC,EAAY,QAAE7sB,GAAY6qB,GAAmBxwC,GAC5D,GAAI8vC,GAAQ0C,KAAkB7B,EAAWx1C,MAAMq3C,KAC3ClhC,EAAMlU,GAAQ,CACVF,KAAM+sC,GACNtkB,QAAAA,EACA1R,IAAAA,KACGy9B,EAAkBzH,GAAgCtkB,KAEpD6kB,GAED,OADA4G,EAAkBzrB,GACXrU,EAInB,GAAI2/B,EACA,GAAI5G,GAAW4G,GAAW,CACtB,MACMwB,EAAgBlC,SADDU,EAASN,GACiBQ,GAC/C,GAAIsB,IACAnhC,EAAMlU,GAAQ,IACPq1C,KACAf,EAvsCT,WAusC4De,EAAc9sB,WAEnE6kB,GAED,OADA4G,EAAkBqB,EAAc9sB,SACzBrU,OAId,GAAIu4B,GAASoH,GAAW,CACzB,IAAIyB,EAAmB,GACvB,IAAK,MAAM72C,KAAOo1C,EAAU,CACxB,IAAK/G,GAAcwI,KAAsBlI,EACrC,MAEJ,MAAMiI,EAAgBlC,SAAuBU,EAASp1C,GAAK80C,GAAaQ,EAAUt1C,GAC9E42C,IACAC,EAAmB,IACZD,KACAf,EAAkB71C,EAAK42C,EAAc9sB,UAE5CyrB,EAAkBqB,EAAc9sB,SAC5B6kB,IACAl5B,EAAMlU,GAAQs1C,IAI1B,IAAKxI,GAAcwI,KACfphC,EAAMlU,GAAQ,CACV6W,IAAKk9B,KACFuB,IAEFlI,GACD,OAAOl5B,EAMvB,OADA8/B,GAAkB,GACX9/B,GAGX,MAAMqhC,GAAiB,CACnBlF,KAAMzD,GACN4I,eAAgB5I,GAChB6I,kBAAkB,GAEtB,SAASC,GAAkBxvC,EAAQ,IAC/B,IAgCIyvC,EAhCA5Z,EAAW,IACRwZ,MACArvC,GAEH0vC,EAAa,CACbC,SAAS,EACTC,cAAc,EACdC,YAAa,GACbC,aAAa,EACbC,YAAa,EACbC,cAAe,GACfC,cAAc,EACdC,oBAAoB,EACpB3E,SAAS,EACT1iB,OAAQ,IAER+jB,EAAU,GACVuD,EAAiBzH,GAAY7S,EAASwV,gBAAkB,GACxD+E,EAAcva,EAASwa,iBACrB,GACA3H,GAAYyH,GACdG,EAAc,CACd7jC,QAAQ,EACRmhC,OAAO,EACPxF,OAAO,GAEPH,EAAS,CACT2F,MAAO,IAAIz3B,IACXo6B,QAAS,IAAIp6B,IACbzV,MAAO,IAAIyV,IACXiyB,MAAO,IAAIjyB,KAGXq6B,EAAQ,EACRC,EAAiB,GACrB,MAAMC,EAAkB,CACpBf,SAAS,EACTE,aAAa,EACbG,eAAe,EACfJ,cAAc,EACdrE,SAAS,EACT1iB,QAAQ,GAEN8nB,EAAY,CACdvI,MAAOkB,KACP5oC,MAAO4oC,KACP98B,MAAO88B,MAELsH,EAA6B1G,GAAmBrU,EAASsU,MACzD0G,EAA4B3G,GAAmBrU,EAASyZ,gBACxDwB,EAAmCjb,EAASkb,eAAiBrK,GAK7DsK,EAAevqB,MAAOwqB,IACxB,IAAI1F,GAAU,EAYd,OAXImF,EAAgBnF,UAChBA,EAAU1V,EAASqb,SACbtK,UAAqBuK,KAAkBtoB,cACjCuoB,EAAyBxE,GAAS,GACzCqE,GAAoB1F,IAAYmE,EAAWnE,UAC5CmE,EAAWnE,QAAUA,EACrBoF,EAAUnkC,MAAM3O,KAAK,CACjB0tC,QAAAA,MAILA,GAoCL8F,EAAe,CAACv3C,EAAMkU,KAAW8H,GAAI45B,EAAW7mB,OAAQ/uB,EAAMkU,GAChE2iC,EAAUnkC,MAAM3O,KAAK,CACjBgrB,OAAQ6mB,EAAW7mB,UAErByoB,EAAsB,CAACx3C,EAAMy3C,EAAsBvyC,EAAO2R,KAC5D,MAAMi3B,EAAQ3+B,GAAI2jC,EAAS9yC,GAC3B,GAAI8tC,EAAO,CACP,MAAMlU,EAAezqB,GAAImnC,EAAat2C,EAAM2sC,GAAYznC,GAASiK,GAAIknC,EAAgBr2C,GAAQkF,GAC7FynC,GAAY/S,IACP/iB,GAAOA,EAAI6gC,gBACZD,EACEz7B,GAAIs6B,EAAat2C,EAAMy3C,EAAuB7d,EAAe2Y,GAAczE,EAAMhnB,KACjF6wB,EAAc33C,EAAM45B,GAC1B4c,EAAY1C,OAASoD,MAGvBU,EAAsB,CAAC53C,EAAM63C,EAAYzJ,EAAa0J,EAAaC,KACrE,IAAIC,GAAe,EACnB,MAAMxT,EAAS,CACXxkC,KAAAA,GAEEi4C,EAAyB9oC,GAAIymC,EAAWM,cAAel2C,GAC7D,GAAI42C,EAAgBf,QAAS,CACzB,MAAMqC,EAAsBtC,EAAWC,QACvCD,EAAWC,QAAUrR,EAAOqR,QAAUsC,IACtCH,EAAeE,IAAwB1T,EAAOqR,QAElD,GAAIe,EAAgBb,eAAiB3H,GAAe0J,GAAc,CAC9D,MAAMM,EAAuBjpC,GAAIymC,EAAWG,YAAa/1C,GAC1B4vC,GAAUzgC,GAAIknC,EAAgBr2C,GAAO63C,GAE9D7I,GAAM4G,EAAWG,YAAa/1C,GAC9Bgc,GAAI45B,EAAWG,YAAa/1C,GAAM,GACxCwkC,EAAOuR,YAAcH,EAAWG,YAChCiC,EACIA,GACII,IAAyBjpC,GAAIymC,EAAWG,YAAa/1C,GAWjE,OATIouC,IAAgB6J,IAChBj8B,GAAI45B,EAAWM,cAAel2C,EAAMouC,GACpC5J,EAAO0R,cAAgBN,EAAWM,cAClC8B,EACIA,GACKpB,EAAgBV,eACb+B,IAA2B7J,GAE3C4J,GAAgBD,GAAgBlB,EAAUnkC,MAAM3O,KAAKygC,GAC9CwT,EAAexT,EAAS,IAyC7B6S,EAAiB1qB,MAAO3sB,GAAS+7B,EAASqb,eACpCrb,EAASqb,SAAS,IAAKd,GAAeva,EAAStqB,QA7ctC,EAACo8B,EAAaiF,EAASmE,EAAczD,KAC1D,MAAM5F,EAAS,GACf,IAAK,MAAM5tC,KAAQ6tC,EAAa,CAC5B,MAAMC,EAAQ3+B,GAAI2jC,EAAS9yC,GAC3B8tC,GAAS9xB,GAAI4xB,EAAQ5tC,EAAM8tC,EAAMhnB,IAErC,MAAO,CACHmwB,aAAAA,EACAlE,MAAO,IAAIlF,GACXD,OAAAA,EACA4F,0BAAAA,IAmcgE6E,CAAmBr4C,GAAQmuC,EAAO2F,MAAOhB,EAAS/W,EAASkb,aAAclb,EAASyX,4BAChJ,GAgBA8D,EAA2B3qB,MAAOihB,EAAQ0K,EAAsB7mC,EAAU,CAC5E8mC,OAAO,MAEP,IAAK,MAAMv4C,KAAQ4tC,EAAQ,CACvB,MAAME,EAAQF,EAAO5tC,GACrB,GAAI8tC,EAAO,CACP,MAAQhnB,GAAI0xB,KAAmBX,GAAe/J,EAC9C,GAAI0K,EAAgB,CAChB,MAAMC,QAAmBnF,GAAcxF,EAAO3+B,GAAImnC,EAAakC,EAAex4C,MAAOg3C,EAAkCjb,EAASyX,2BAChI,GAAIiF,EAAWD,EAAex4C,QAC1ByR,EAAQ8mC,OAAQ,EACZD,GACA,MAGHA,IACDG,EAAWD,EAAex4C,MACpBgc,GAAI45B,EAAW7mB,OAAQypB,EAAex4C,KAAMy4C,EAAWD,EAAex4C,OACtEgvC,GAAM4G,EAAW7mB,OAAQypB,EAAex4C,OAGtD63C,SACWP,EAAyBO,EAAYS,EAAsB7mC,IAG9E,OAAOA,EAAQ8mC,OAabJ,EAAY,CAACn4C,EAAM6E,KAAU7E,GAAQ6E,GAAQmX,GAAIs6B,EAAat2C,EAAM6E,IACrE+qC,GAAU8I,IAAarC,IACtBsC,EAAY,CAAC5F,EAAOnZ,EAAcgf,KACpC,MAAMC,EAAc,IACZrC,EAAY1C,MACVwC,EACA3J,GAAY/S,GACRyc,EACArJ,GAAS+F,GACL,CAAE,CAACA,GAAQnZ,GACXA,GAElB,MAzzCkB,EAACmZ,EAAO5E,EAAQiD,EAAYwH,KAClD,MAAM75C,EAAUvB,MAAMuB,QAAQg0C,GAC9B,OAAI/F,GAAS+F,IACT6F,GAAYzK,EAAOG,MAAMpyB,IAAI62B,GACtB5jC,GAAIiiC,EAAY2B,IAEvBh0C,EACOg0C,EAAMrqC,KAAKsqC,IAAe4F,GAAYzK,EAAOG,MAAMpyB,IAAI82B,GAC1D7jC,GAAIiiC,EAAY4B,OAExB4F,IAAazK,EAAOE,UAAW,GACxB+C,IA8yCI0H,CAAoB/F,EAAO5E,EAAQ0K,EAAaD,IAGrDjB,EAAgB,CAAC33C,EAAMkF,EAAOhD,EAAU,MAC1C,MAAM4rC,EAAQ3+B,GAAI2jC,EAAS9yC,GAC3B,IAAI63C,EAAa3yC,EACjB,GAAI4oC,EAAO,CACP,MAAM0K,EAAiB1K,EAAMhnB,GACzB0xB,KACCA,EAAe/V,UACZzmB,GAAIs6B,EAAat2C,EAAM+xC,GAAgB7sC,EAAOszC,IAClDX,EACInJ,IAASkC,GAAc4H,EAAe3hC,MAAQ01B,GAAkBrnC,GAC1D,GACAA,EACN2rC,GAAiB2H,EAAe3hC,KAChC,IAAI2hC,EAAe3hC,IAAI3U,SAAS4Z,SAASi9B,GAAeA,EAAUC,SAAWnB,EAAWjuC,SAASmvC,EAAU7zC,SAEtGszC,EAAevK,KAChB5B,GAAgBmM,EAAe3hC,KAC/B2hC,EAAevK,KAAK7wC,OAAS,EACvBo7C,EAAevK,KAAKnyB,SAASm9B,IAAiBA,EAAYxW,WACvDwW,EAAYpH,QAAUr0C,MAAMuB,QAAQ84C,KAC7BA,EAAWxoB,MAAMxqB,GAASA,IAASo0C,EAAY/zC,QACjD2yC,IAAeoB,EAAY/zC,SACnCszC,EAAevK,KAAK,KACjBuK,EAAevK,KAAK,GAAG4D,UAAYgG,GAG5CW,EAAevK,KAAKnyB,SAASo9B,GAAcA,EAASrH,QAAUqH,EAASh0C,QAAU2yC,IAGhFlH,GAAY6H,EAAe3hC,KAChC2hC,EAAe3hC,IAAI3R,MAAQ,IAG3BszC,EAAe3hC,IAAI3R,MAAQ2yC,EACtBW,EAAe3hC,IAAI/W,MACpB+2C,EAAUvI,MAAMvqC,KAAK,CACjB/D,KAAAA,OAMnBkC,EAAQ41C,aAAe51C,EAAQi3C,cAC5BvB,EAAoB53C,EAAM63C,EAAY31C,EAAQi3C,YAAaj3C,EAAQ41C,aAAa,GACpF51C,EAAQk3C,gBAAkBC,EAAQr5C,IAEhCs5C,EAAY,CAACt5C,EAAMkF,EAAOhD,KAC5B,IAAK,MAAMq3C,KAAYr0C,EAAO,CAC1B,MAAM2yC,EAAa3yC,EAAMq0C,GACnBvG,EAAY,GAAGhzC,KAAQu5C,IACvBzL,EAAQ3+B,GAAI2jC,EAASE,IAC1B7E,EAAOvnC,MAAMmV,IAAI/b,IACb2vC,GAAYkI,MACZ/J,GAAUA,EAAMhnB,KAChBwlB,GAAauL,GAEZF,EAAc3E,EAAW6E,EAAY31C,GADrCo3C,EAAUtG,EAAW6E,EAAY31C,KAIzCs3C,EAAW,CAACx5C,EAAMkF,EAAOhD,EAAU,MACrC,MAAM4rC,EAAQ3+B,GAAI2jC,EAAS9yC,GACrBy5C,EAAetL,EAAOvnC,MAAMmV,IAAI/b,GAChC05C,EAAa9K,GAAY1pC,GAC/B8W,GAAIs6B,EAAat2C,EAAM05C,GACnBD,GACA5C,EAAUjwC,MAAM7C,KAAK,CACjB/D,KAAAA,EACAy8B,OAAQ6Z,KAEPM,EAAgBf,SAAWe,EAAgBb,cAC5C7zC,EAAQ41C,cACRlC,EAAWG,YAAczE,GAAe+E,EAAgBC,GACxDO,EAAUnkC,MAAM3O,KAAK,CACjB/D,KAAAA,EACA+1C,YAAaH,EAAWG,YACxBF,QAASsC,EAAUn4C,EAAM05C,QAKjC5L,GAAUA,EAAMhnB,IAAOylB,GAAkBmN,GAEnC/B,EAAc33C,EAAM05C,EAAYx3C,GADhCo3C,EAAUt5C,EAAM05C,EAAYx3C,GAGtCgsC,GAAUluC,EAAMmuC,IAAW0I,EAAUnkC,MAAM3O,KAAK,IAChD8yC,EAAUvI,MAAMvqC,KAAK,CACjB/D,KAAAA,KAGFsiC,EAAW3V,MAAO6K,IACpB,MAAMvlB,EAASulB,EAAMvlB,OACrB,IAAIjS,EAAOiS,EAAOjS,KAClB,MAAM8tC,EAAQ3+B,GAAI2jC,EAAS9yC,GAC3B,GAAI8tC,EAAO,CACP,IAAI55B,EACAu9B,EACJ,MAAMoG,EAAa5lC,EAAOnS,KACpByyC,GAAczE,EAAMhnB,IA3oDlB,CAAC0Q,GAAUiV,GAASjV,IAAUA,EAAMvlB,OAClDo6B,GAAgB7U,EAAMvlB,QAClBulB,EAAMvlB,OAAO4/B,QACbra,EAAMvlB,OAAO/M,MACjBsyB,EAwoDYmiB,CAAcniB,GACd4W,EAlnDR,SAknDsB5W,EAAM13B,MAjnDvB,aAinD+C03B,EAAM13B,KAClD85C,KA7lBG13C,EA6lBoC4rC,EAAMhnB,IA7lBtBgtB,QACpC5xC,EAAQuxC,UACLvxC,EAAQkqB,KACRlqB,EAAQ0xC,KACR1xC,EAAQwxC,WACRxxC,EAAQyxC,WACRzxC,EAAQU,SACRV,EAAQ2xC,WAulBC9X,EAASqb,UACTjoC,GAAIymC,EAAW7mB,OAAQ/uB,IACvB8tC,EAAMhnB,GAAG+yB,OA1jBL,EAACzL,EAAa0L,EAAW9D,EAAaR,EAAgBnF,KACnEA,EAAKI,WAGCuF,GAAe3F,EAAKK,YACjBoJ,GAAa1L,IAEjB4H,EAAcR,EAAejF,SAAWF,EAAKE,WAC1CnC,IAEH4H,EAAcR,EAAehF,WAAaH,EAAKG,aAC7CpC,GAgjBC2L,CAAe3L,EAAaj/B,GAAIymC,EAAWM,cAAel2C,GAAO41C,EAAWI,YAAae,EAA2BD,GAClHkD,EAAU9L,GAAUluC,EAAMmuC,EAAQC,GACxCpyB,GAAIs6B,EAAat2C,EAAM63C,GACnBzJ,EACAN,EAAMhnB,GAAGmzB,QAAUnM,EAAMhnB,GAAGmzB,OAAOziB,GAE9BsW,EAAMhnB,GAAGwb,UACdwL,EAAMhnB,GAAGwb,SAAS9K,GAEtB,MAAM0iB,EAAatC,EAAoB53C,EAAM63C,EAAYzJ,GAAa,GAChE2J,GAAgBjL,GAAcoN,IAAeF,EAMnD,IALC5L,GACGyI,EAAUvI,MAAMvqC,KAAK,CACjB/D,KAAAA,EACAF,KAAM03B,EAAM13B,OAEhB85C,EACA,OAAQ7B,GACJlB,EAAUnkC,MAAM3O,KAAK,CAAE/D,KAAAA,KAAUg6C,EAAU,GAAKE,IAOxD,IALC9L,GAAe4L,GAAWnD,EAAUnkC,MAAM3O,KAAK,IAChD4yC,EAAe32C,IAAQ22C,EAAe32C,GAAQ,GAC9C62C,EAAUnkC,MAAM3O,KAAK,CACjB+xC,cAAc,IAEd/Z,EAASqb,SAAU,CACnB,MAAM,OAAEroB,SAAiBsoB,EAAe,CAACr3C,IACnCm6C,EAA4BtH,GAAkB+C,EAAW7mB,OAAQ+jB,EAAS9yC,GAC1Eo6C,EAAoBvH,GAAkB9jB,EAAQ+jB,EAASqH,EAA0Bn6C,MAAQA,GAC/FkU,EAAQkmC,EAAkBlmC,MAC1BlU,EAAOo6C,EAAkBp6C,KACzByxC,EAAU3E,GAAc/d,QAGxB7a,SAAeo/B,GAAcxF,EAAO3+B,GAAImnC,EAAat2C,GAAOg3C,EAAkCjb,EAASyX,4BAA4BxzC,GACnIyxC,QAAgByF,GAAa,GAEjCpJ,EAAMhnB,GAAG+yB,MACLR,EAAQvL,EAAMhnB,GAAG+yB,MA5PDltB,OAAOwqB,EAAkBn3C,EAAMyxC,EAASv9B,EAAOgmC,KACvE,MAAMG,EAAqBlrC,GAAIymC,EAAW7mB,OAAQ/uB,GAC5Cs6C,EAAoB1D,EAAgBnF,SAAWmE,EAAWnE,UAAYA,EAxG/D,IAAC7hC,EAAU2qC,EAoHxB,GAXIr0C,EAAMs0C,YAActmC,GACpByhC,EACIA,IA3GM/lC,EA2GyB2nC,EA3GfgD,EA2G6Br0C,EAAMs0C,WA3G1B,IAAIv1B,KACrCw1B,aAAa/D,GACbA,EAAQnnC,OAAOmrC,YAAW,IAAM9qC,KAAYqV,IAAOs1B,KA0G/C5E,EAAmB31C,EAAMkU,KAGzBumC,aAAa/D,GACbxiC,EACM8H,GAAI45B,EAAW7mB,OAAQ/uB,EAAMkU,GAC7B86B,GAAM4G,EAAW7mB,OAAQ/uB,MAE7BkU,GAAS07B,GAAUyK,EAAoBnmC,GAASmmC,KACjDvN,GAAcoN,IACfI,KACCnD,EAAkB,CACnB,MAAMwD,EAAmB,IAClBT,KACCI,EAAoB,CAAE7I,QAAAA,GAAY,GACtC1iB,OAAQ6mB,EAAW7mB,OACnB/uB,KAAAA,GAEJ41C,EAAa,IACNA,KACA+E,GAEP9D,EAAUnkC,MAAM3O,KAAK42C,GAEzBhE,EAAe32C,KACX42C,EAAgBd,eACfv3C,OAAOk+B,OAAOka,GAAgBpI,MAAMhiC,GAAMA,MAC3CsqC,EAAUnkC,MAAM3O,KAAK,CACjB+xC,cAAc,IAElBa,EAAiB,KAyNjBiE,EAAoB,EAAO56C,EAAMyxC,EAASv9B,EAAOgmC,GAxoBzC,IAACh4C,GA2oBXm3C,EAAU1sB,MAAO3sB,EAAMkC,EAAU,MACnC,IAAIuvC,EACA6D,EACJ,MAAMuF,EAAa9N,GAAsB/sC,GAIzC,GAHA62C,EAAUnkC,MAAM3O,KAAK,CACjB+xC,cAAc,IAEd/Z,EAASqb,SAAU,CACnB,MAAMroB,OA9NsBpC,OAAOomB,IACvC,MAAM,OAAEhkB,SAAiBsoB,IACzB,GAAItE,EACA,IAAK,MAAM/yC,KAAQ+yC,EAAO,CACtB,MAAM7+B,EAAQ/E,GAAI4f,EAAQ/uB,GAC1BkU,EACM8H,GAAI45B,EAAW7mB,OAAQ/uB,EAAMkU,GAC7B86B,GAAM4G,EAAW7mB,OAAQ/uB,QAInC41C,EAAW7mB,OAASA,EAExB,OAAOA,GAiNkB+rB,CAA4BnO,GAAY3sC,GAAQA,EAAO66C,GAC5EpJ,EAAU3E,GAAc/d,GACxBumB,EAAmBt1C,GACZ66C,EAAWtM,MAAMvuC,GAASmP,GAAI4f,EAAQ/uB,KACvCyxC,OAEDzxC,GACLs1C,SAA0Bx2B,QAAQi8B,IAAIF,EAAWnyC,KAAIikB,MAAOqmB,IACxD,MAAMlF,EAAQ3+B,GAAI2jC,EAASE,GAC3B,aAAasE,EAAyBxJ,GAASA,EAAMhnB,GAAK,CAAE,CAACksB,GAAYlF,GAAUA,QAClF0E,MAAMnoC,UACRirC,GAAqBM,EAAWnE,UAAYyF,KAG/C5B,EAAmB7D,QAAgB6F,EAAyBxE,GAchE,OAZA+D,EAAUnkC,MAAM3O,KAAK,KACZipC,GAAShtC,IACT42C,EAAgBnF,SAAWA,IAAYmE,EAAWnE,QACjD,GACA,CAAEzxC,KAAAA,MACJ+7B,EAASqb,SAAW,CAAE3F,QAAAA,GAAY,GACtC1iB,OAAQ6mB,EAAW7mB,OACnB+mB,cAAc,IAElB5zC,EAAQ84C,cACH1F,GACD3H,GAAamF,GAAUr0C,GAAQ0Q,GAAIymC,EAAW7mB,OAAQtwB,IAAMuB,EAAO66C,EAAa1M,EAAO2F,OACpFwB,GAELoD,EAAamC,IACf,MAAMpe,EAAS,IACR4Z,KACCG,EAAY1C,MAAQwC,EAAc,IAE1C,OAAO3J,GAAYkO,GACbpe,EACAuQ,GAAS6N,GACL1rC,GAAIstB,EAAQoe,GACZA,EAAWnyC,KAAK1I,GAASmP,GAAIstB,EAAQz8B,MAE7Ci7C,EAAgB,CAACj7C,EAAMk7C,KAAc,CACvCC,UAAWhsC,IAAK+rC,GAAatF,GAAY7mB,OAAQ/uB,GACjD61C,UAAW1mC,IAAK+rC,GAAatF,GAAYG,YAAa/1C,GACtD85C,YAAa3qC,IAAK+rC,GAAatF,GAAYM,cAAel2C,GAC1DkU,MAAO/E,IAAK+rC,GAAatF,GAAY7mB,OAAQ/uB,KA4B3Co7C,EAAa,CAACp7C,EAAMkC,EAAU,MAChC,IAAK,MAAM8wC,KAAahzC,EAAO+sC,GAAsB/sC,GAAQmuC,EAAO2F,MAChE3F,EAAO2F,MAAM73B,OAAO+2B,GACpB7E,EAAOvnC,MAAMqV,OAAO+2B,GAChB7jC,GAAI2jC,EAASE,KACR9wC,EAAQm5C,YACTrM,GAAM8D,EAASE,GACfhE,GAAMsH,EAAatD,KAEtB9wC,EAAQo5C,WAAatM,GAAM4G,EAAW7mB,OAAQikB,IAC9C9wC,EAAQq5C,WAAavM,GAAM4G,EAAWG,YAAa/C,IACnD9wC,EAAQs5C,aAAexM,GAAM4G,EAAWM,cAAelD,IACvDjX,EAASwa,mBACLr0C,EAAQu5C,kBACTzM,GAAMqH,EAAgBrD,IAGlC6D,EAAUvI,MAAMvqC,KAAK,IACrB8yC,EAAUnkC,MAAM3O,KAAK,IACd6xC,KACE1zC,EAAQq5C,UAAiB,CAAE1F,QAASsC,KAAhB,MAE5Bj2C,EAAQw5C,aAAexE,KAEtByE,EAAW,CAAC37C,EAAMkC,EAAU,MAC9B,IAAI4rC,EAAQ3+B,GAAI2jC,EAAS9yC,GACzB,MAAM47C,EAAoB,GAAU15C,EAAQugC,UAgB5C,OAfAzmB,GAAI82B,EAAS9yC,EAAM,CACf8mB,GAAI,IACIgnB,GAASA,EAAMhnB,GAAKgnB,EAAMhnB,GAAK,CAAEjQ,IAAK,CAAE7W,KAAAA,IAC5CA,KAAAA,EACA8zC,OAAO,KACJ5xC,KAGXisC,EAAO2F,MAAM53B,IAAIlc,GACjB8tC,EACM8N,GACE5/B,GAAIs6B,EAAat2C,EAAMkC,EAAQugC,cACzB94B,EACAwF,GAAImnC,EAAat2C,EAAMuyC,GAAczE,EAAMhnB,MACnD0wB,EAAoBx3C,GAAM,EAAMkC,EAAQgD,OACvC,IACC02C,EAAoB,CAAEnZ,SAAUvgC,EAAQugC,UAAa,MACrD1G,EAASyX,0BACP,CACEC,WAAYvxC,EAAQuxC,SACpBrnB,IAAKumB,GAAazwC,EAAQkqB,KAC1BwnB,IAAKjB,GAAazwC,EAAQ0xC,KAC1BD,UAAWhB,GAAazwC,EAAQyxC,WAChCD,UAAWf,GAAazwC,EAAQwxC,WAChC9wC,QAAS+vC,GAAazwC,EAAQU,UAEhC,GACN5C,KAAAA,EACAsiC,SAAAA,EACA2X,OAAQ3X,EACRzrB,IAAMA,IACF,GAAIA,EAAK,CACL8kC,EAAS37C,EAAMkC,GACf4rC,EAAQ3+B,GAAI2jC,EAAS9yC,GACrB,MAAM67C,EAAWlP,GAAY91B,EAAI3R,QAC3B2R,EAAIilC,kBACAjlC,EAAIilC,iBAAiB,yBAAyB,IAElDjlC,EACAklC,EA36BF,CAACllC,GAAQi6B,GAAaj6B,IAAQw1B,GAAgBx1B,GA26B1Bu9B,CAAkByH,GACpC5N,EAAOH,EAAMhnB,GAAGmnB,MAAQ,GAC9B,GAAI8N,EACE9N,EAAK5e,MAAMuiB,GAAWA,IAAWiK,IACjCA,IAAa/N,EAAMhnB,GAAGjQ,IACxB,OAEJmF,GAAI82B,EAAS9yC,EAAM,CACf8mB,GAAI,IACGgnB,EAAMhnB,MACLi1B,EACE,CACE9N,KAAM,IACCA,EAAKtjC,OAAOomC,IACf8K,KACMr+C,MAAMuB,QAAQoQ,GAAIknC,EAAgBr2C,IAClC,CAAC,IACD,IAEV6W,IAAK,CAAE/W,KAAM+7C,EAAS/7C,KAAME,KAAAA,IAE9B,CAAE6W,IAAKglC,MAGrBrE,EAAoBx3C,GAAM,OAAO2J,EAAWkyC,QAG5C/N,EAAQ3+B,GAAI2jC,EAAS9yC,EAAM,IACvB8tC,EAAMhnB,KACNgnB,EAAMhnB,GAAGgtB,OAAQ,IAEpB/X,EAASwa,kBAAoBr0C,EAAQq0C,qBAt2DjC,EAACxD,EAAO/yC,IAAS+yC,EAAMh3B,IAFxB,CAAC/b,GAASA,EAAKygB,UAAU,EAAGzgB,EAAKm0B,OAAO,iBAAmBn0B,EAE/Bg8C,CAAkBh8C,IAu2D5Ci8C,CAAmB9N,EAAOvnC,MAAO5G,KAASw2C,EAAY7jC,SACxDw7B,EAAOsI,QAAQv6B,IAAIlc,MAyKvC,MAAO,CACHk8C,QAAS,CACLP,SAAAA,EACAP,WAAAA,EACAH,cAAAA,EACA5D,eAAAA,EACAsB,UAAAA,EACAR,UAAAA,EACAjB,aAAAA,EACAiF,iBAlhBiB,KACrB,IAAK,MAAMn8C,KAAQmuC,EAAOsI,QAAS,CAC/B,MAAM3I,EAAQ3+B,GAAI2jC,EAAS9yC,GAC3B8tC,IACKA,EAAMhnB,GAAGmnB,KACJH,EAAMhnB,GAAGmnB,KAAKuE,OAAO37B,IAASk6B,GAAKl6B,MAClCk6B,GAAKjD,EAAMhnB,GAAGjQ,OACrBukC,EAAWp7C,GAEnBmuC,EAAOsI,QAAU,IAAIp6B,KA0gBjB+/B,kBA1rBkB,CAACp8C,EAAMy8B,EAAS,GAAItP,EAAQlI,EAAMo3B,GAAkB,EAAMC,GAA6B,KAC7G,GAAIr3B,GAAQkI,EAAQ,CAEhB,GADAqpB,EAAY7jC,QAAS,EACjB2pC,GAA8B9+C,MAAMuB,QAAQoQ,GAAI2jC,EAAS9yC,IAAQ,CACjE,MAAM64C,EAAc1rB,EAAOhe,GAAI2jC,EAAS9yC,GAAOilB,EAAKs3B,KAAMt3B,EAAKu3B,MAC/DH,GAAmBrgC,GAAI82B,EAAS9yC,EAAM64C,GAE1C,GAAIjC,EAAgB7nB,QAChButB,GACA9+C,MAAMuB,QAAQoQ,GAAIymC,EAAW7mB,OAAQ/uB,IAAQ,CAC7C,MAAM+uB,EAAS5B,EAAOhe,GAAIymC,EAAW7mB,OAAQ/uB,GAAOilB,EAAKs3B,KAAMt3B,EAAKu3B,MACpEH,GAAmBrgC,GAAI45B,EAAW7mB,OAAQ/uB,EAAM+uB,GA7Q1C,EAAClY,EAAK7W,MAAU0sC,GAAQv9B,GAAI0H,EAAK7W,IAAO5C,QAAU4xC,GAAMn4B,EAAK7W,IA8QnEy8C,CAAgB7G,EAAW7mB,OAAQ/uB,GAEvC,GAAI42C,EAAgBV,eAChBoG,GACA9+C,MAAMuB,QAAQoQ,GAAIymC,EAAWM,cAAel2C,IAAQ,CACpD,MAAMk2C,EAAgB/oB,EAAOhe,GAAIymC,EAAWM,cAAel2C,GAAOilB,EAAKs3B,KAAMt3B,EAAKu3B,MAClFH,GAAmBrgC,GAAI45B,EAAWM,cAAel2C,EAAMk2C,GAEvDU,EAAgBb,cAChBH,EAAWG,YAAczE,GAAe+E,EAAgBC,IAE5DO,EAAUnkC,MAAM3O,KAAK,CACjB8xC,QAASsC,EAAUn4C,EAAMy8B,GACzBsZ,YAAaH,EAAWG,YACxBhnB,OAAQ6mB,EAAW7mB,OACnB0iB,QAASmE,EAAWnE,eAIxBz1B,GAAIs6B,EAAat2C,EAAMy8B,IA4pBvBigB,eA3fgB18C,GAAS0sC,GAAQv9B,GAAIqnC,EAAY1C,MAAQwC,EAAcD,EAAgBr2C,EAAMkG,EAAMqwC,iBAAmBpnC,GAAIknC,EAAgBr2C,EAAM,IAAM,KA4ftJ62C,UAAAA,EACAD,gBAAAA,EACI9D,cACA,OAAOA,GAEPwD,kBACA,OAAOA,GAEPE,kBACA,OAAOA,GAEPA,gBAAYtxC,GACZsxC,EAActxC,GAEdmxC,qBACA,OAAOA,GAEPlI,aACA,OAAOA,GAEPA,WAAOjpC,GACPipC,EAASjpC,GAET0wC,iBACA,OAAOA,GAEPA,eAAW1wC,GACX0wC,EAAa1wC,GAEb62B,eACA,OAAOA,GAEPA,aAAS72B,GACT62B,EAAW,IACJA,KACA72B,KAIfm0C,QAAAA,EACAsC,SAAAA,EACAgB,aAzNiB,CAACC,EAASC,IAAclwB,MAAO/qB,IAC5CA,IACAA,EAAEk8B,gBAAkBl8B,EAAEk8B,iBACtBl8B,EAAEk7C,SAAWl7C,EAAEk7C,WAEnB,IAAIC,GAAoB,EACpBlE,EAAcjK,GAAY0H,GAC9BO,EAAUnkC,MAAM3O,KAAK,CACjBoyC,cAAc,IAElB,IACI,GAAIpa,EAASqb,SAAU,CACnB,MAAM,OAAEroB,EAAM,OAAE0N,SAAiB4a,IACjCzB,EAAW7mB,OAASA,EACpB8pB,EAAcpc,aAGR6a,EAAyBxE,GAE/BhG,GAAc8I,EAAW7mB,SACzB8nB,EAAUnkC,MAAM3O,KAAK,CACjBgrB,OAAQ,GACRonB,cAAc,UAEZyG,EAAQ/D,EAAaj3C,KAGvBi7C,SACMA,EAAU,IAAKjH,EAAW7mB,QAAUntB,GAE9Cm6B,EAAS0Z,kBACL9H,GAAamF,GAAUr0C,GAAQ0Q,GAAIymC,EAAW7mB,OAAQtwB,IAAM0vC,EAAO2F,QAG/E,MAAO32C,GAEH,MADA4/C,GAAoB,EACd5/C,EAEV,QACIy4C,EAAWI,aAAc,EACzBa,EAAUnkC,MAAM3O,KAAK,CACjBiyC,aAAa,EACbG,cAAc,EACdC,mBAAoBtJ,GAAc8I,EAAW7mB,SAAWguB,EACxD9G,YAAaL,EAAWK,YAAc,EACtClnB,OAAQ6mB,EAAW7mB,WA6K3Buf,MAvUU,CAACtuC,EAAM45B,IAAiBqT,GAAWjtC,GAC3C62C,EAAUvI,MAAM79B,UAAU,CACxB1M,KAAOi5C,GAASh9C,EAAK24C,OAAUhvC,EAAWiwB,GAAeojB,KAE3DrE,EAAU34C,EAAM45B,GAAc,GAoUhC4f,SAAAA,EACAd,UAAAA,EACAuE,MAnJU,CAAC7L,EAAY8L,EAAmB,MAC1C,MAAMC,EAAgB/L,GAAciF,EAC9B+G,EAAqBxO,GAAYuO,GACjC1gB,EAAS2U,IAAetE,GAAcsE,GACtCgM,EACA/G,EAIN,GAHK6G,EAAiBG,oBAClBhH,EAAiB8G,IAEhBD,EAAiBI,WAAY,CAC9B,GAAIJ,EAAiBK,gBACjB,IAAK,MAAMvK,KAAa7E,EAAO2F,MAC3B3kC,GAAIymC,EAAWG,YAAa/C,GACtBh3B,GAAIygB,EAAQuW,EAAW7jC,GAAImnC,EAAatD,IACxCwG,EAASxG,EAAW7jC,GAAIstB,EAAQuW,QAGzC,CACD,GAAItE,IAAS/B,GAAYyE,GACrB,IAAK,MAAMpxC,KAAQmuC,EAAO2F,MAAO,CAC7B,MAAMhG,EAAQ3+B,GAAI2jC,EAAS9yC,GAC3B,GAAI8tC,GAASA,EAAMhnB,GAAI,CACnB,MAAM0xB,EAAiBh7C,MAAMuB,QAAQ+uC,EAAMhnB,GAAGmnB,MACxCH,EAAMhnB,GAAGmnB,KAAK,GACdH,EAAMhnB,GAAGjQ,IACf,IACI+5B,GAAc4H,IACVA,EAAegF,QAAQ,QAAQP,QACnC,MAEJ,MAAOvyB,MAInBooB,EAAU,GAEdwD,EAAcpwC,EAAMqwC,iBACd2G,EAAiBG,kBACbzO,GAAYyH,GACZ,GACJ+G,EACNvG,EAAUjwC,MAAM7C,KAAK,CACjB04B,OAAAA,IAEJoa,EAAUvI,MAAMvqC,KAAK,CACjB04B,OAAAA,IAGR0R,EAAS,CACL2F,MAAO,IAAIz3B,IACXo6B,QAAS,IAAIp6B,IACbzV,MAAO,IAAIyV,IACXiyB,MAAO,IAAIjyB,IACXgyB,UAAU,EACVL,MAAO,IAEXwI,EAAY1C,OACP8C,EAAgBnF,WAAayL,EAAiBxB,YACnDlF,EAAYlI,QAAUpoC,EAAMqwC,iBAC5BM,EAAUnkC,MAAM3O,KAAK,CACjBkyC,YAAaiH,EAAiBO,gBACxB7H,EAAWK,YACX,EACNJ,QAASqH,EAAiB3B,WAAa2B,EAAiBK,gBAClD3H,EAAWC,WACRqH,EAAiBG,mBACjBzN,GAAUwB,EAAYiF,IAC/BL,cAAakH,EAAiBQ,iBACxB9H,EAAWI,YAEjBD,YAAamH,EAAiB3B,WAAa2B,EAAiBK,gBACtD3H,EAAWG,YACXmH,EAAiBG,mBAAqBjM,EAClCE,GAAe+E,EAAgBjF,GAC/B,GACV8E,cAAegH,EAAiB1B,YAC1B5F,EAAWM,cACX,GACNnnB,OAAQmuB,EAAiBS,WACnB/H,EAAW7mB,OACX,GACNonB,cAAc,EACdC,oBAAoB,KAkExBwH,WA7Ke,CAAC59C,EAAMkC,EAAU,MAC5BiN,GAAI2jC,EAAS9yC,KACT2sC,GAAYzqC,EAAQ03B,cACpB4f,EAASx5C,EAAMmP,GAAIknC,EAAgBr2C,KAGnCw5C,EAASx5C,EAAMkC,EAAQ03B,cACvB5d,GAAIq6B,EAAgBr2C,EAAMkC,EAAQ03B,eAEjC13B,EAAQs5C,aACTxM,GAAM4G,EAAWM,cAAel2C,GAE/BkC,EAAQq5C,YACTvM,GAAM4G,EAAWG,YAAa/1C,GAC9B41C,EAAWC,QAAU3zC,EAAQ03B,aACvBue,EAAUn4C,EAAMmP,GAAIknC,EAAgBr2C,IACpCm4C,KAELj2C,EAAQo5C,YACTtM,GAAM4G,EAAW7mB,OAAQ/uB,GACzB42C,EAAgBnF,SAAWyF,KAE/BL,EAAUnkC,MAAM3O,KAAK,IAAK6xC,MAwJ9BiI,YAjWiB79C,IACjBA,EACM+sC,GAAsB/sC,GAAM8b,SAASgiC,GAAc9O,GAAM4G,EAAW7mB,OAAQ+uB,KAC3ElI,EAAW7mB,OAAS,GAC3B8nB,EAAUnkC,MAAM3O,KAAK,CACjBgrB,OAAQ6mB,EAAW7mB,UA6VvBqsB,WAAAA,EACA2C,SA3Va,CAAC/9C,EAAMkU,EAAOhS,KAC3B,MAAM2U,GAAO1H,GAAI2jC,EAAS9yC,EAAM,CAAE8mB,GAAI,KAAMA,IAAM,IAAIjQ,IACtDmF,GAAI45B,EAAW7mB,OAAQ/uB,EAAM,IACtBkU,EACH2C,IAAAA,IAEJggC,EAAUnkC,MAAM3O,KAAK,CACjB/D,KAAAA,EACA+uB,OAAQ6mB,EAAW7mB,OACnB0iB,SAAS,IAEbvvC,GAAWA,EAAQ84C,aAAenkC,GAAOA,EAAIm3B,OAASn3B,EAAIm3B,SAiV1DgQ,SAnEa,CAACh+C,EAAMkC,EAAU,MAC9B,MAAM4rC,EAAQ3+B,GAAI2jC,EAAS9yC,GAAM8mB,GAC3B+0B,EAAW/N,EAAMG,KAAOH,EAAMG,KAAK,GAAKH,EAAMj3B,IACpD3U,EAAQ+7C,aAAepC,EAASqC,SAAWrC,EAAS7N,SAiEpDiN,cAAAA,GAiCR,SAASkD,GAAQj4C,EAAQ,IACrB,MAAMk4C,EAAe,YACdlD,EAAWmD,GAAmB,WAAe,CAChDxI,SAAS,EACTC,cAAc,EACdC,YAAa,GACbC,aAAa,EACbC,YAAa,EACbC,cAAe,GACfC,cAAc,EACdC,oBAAoB,EACpB3E,SAAS,EACT1iB,OAAQ,KAERqvB,EAAa3qC,QACb2qC,EAAa3qC,QAAQyoC,QAAQngB,SAAW71B,EAGxCk4C,EAAa3qC,QAAU,IAChBiiC,GAAkBxvC,GACrBg1C,UAAAA,GAGR,MAAMgB,EAAUkC,EAAa3qC,QAAQyoC,QAC/BtsC,EAAW,eAAmB1K,IA3gEZ,EAACo5C,EAAe1H,EAAiB2H,KACzD,MAAM,KAAEv+C,KAASk7C,GAAcoD,EAC/B,OAAQxR,GAAcoO,IAClB38C,OAAOC,KAAK08C,GAAW99C,QAAUmB,OAAOC,KAAKo4C,GAAiBx5C,QAC9DmB,OAAOC,KAAK08C,GAAW7rB,MAAM5wB,GAAQm4C,EAAgBn4C,OAC/C8/C,GAAU3R,OAugEZ4R,CAAsBt5C,EAAOg3C,EAAQtF,iBAAiB,KACtDsF,EAAQtG,WAAa,IACdsG,EAAQtG,cACR1wC,GAEPm5C,EAAgB,IAAKnC,EAAQtG,gBAElC,CAACsG,IAiBJ,OAjhEJ,SAAsBh2C,GAClB,MAAMwwB,EAAS,SAAaxwB,GAC5BwwB,EAAOjjB,QAAUvN,EACjB,aAAgB,KACZ,MAKMmK,GAAgBnK,EAAMu8B,UACxB/L,EAAOjjB,QAAQgrC,QAAQhuC,UAAU,CAC7B1M,KAAM2yB,EAAOjjB,QAAQ7D,WAE7B,MAAO,IATU,CAACS,IACVA,GACAA,EAAaH,eAORwuC,CAASruC,KACvB,CAACnK,EAAMu8B,WAm/DVkc,CAAa,CACTF,QAASvC,EAAQrF,UAAUnkC,MAC3B9C,SAAAA,IAEJ,aAAgB,KACPssC,EAAQ1F,YAAY1C,QACrBoI,EAAQtF,gBAAgBnF,SAAWyK,EAAQhF,eAC3CgF,EAAQ1F,YAAY1C,OAAQ,GAE5BoI,EAAQ1F,YAAYlI,QACpB4N,EAAQ1F,YAAYlI,OAAQ,EAC5B4N,EAAQrF,UAAUnkC,MAAM3O,KAAK,KAEjCm4C,EAAQC,sBAEZiC,EAAa3qC,QAAQynC,UAtjED,EAACA,EAAWtE,EAAiBgI,EAAqBL,GAAS,KAC/E,MAAMlgD,EAAS,GACf,IAAK,MAAMI,KAAOy8C,EACd38C,OAAOuC,eAAezC,EAAQI,EAAK,CAC/B0Q,IAAK,KACD,MAAMsT,EAAOhkB,EAKb,OAJIm4C,EAAgBn0B,KAAUmqB,KAC1BgK,EAAgBn0B,IAAS87B,GAAU3R,IAEvCgS,IAAwBA,EAAoBn8B,IAAQ,GAC7Cy4B,EAAUz4B,MAI7B,OAAOpkB,GAwiE0BwgD,CAAkB3D,EAAWgB,EAAQtF,iBAC/DwH,EAAa3qC,QCxrExB,MAkOMqrC,GAAiB,CACrBvY,GAAI,CACFwY,gBAAiB,kCACjBC,eAAgB,oBAChBC,mBAAoB,gGACpBC,YAAa,0BACbC,gBAAiB,mIACjBC,eAAgB,iCAChBC,QAAS,iEACTC,KAAM,kBACNC,mBAAoB,qCACpBC,aAAc,iBACdC,aAAc,8BACdC,aAAc,kBACdC,aAAc,yDACdC,MAAO,CACLC,WAAY,kDACZC,kBAAmB,kEACnBC,kBAAmB,0EACnBC,yBAA0B,kFAC1BC,aAAc,wCACdC,oBAAqB,8DACrBC,aAAc,gDACdC,aAAc,wCACdC,oBAAqB,gEACrBC,aAAc,gDACdC,eAAgB,sCAChBpF,QAAS,2DACT/9C,OAAQ,yDACRojD,OAAQ,+CACRC,aAAc,kEAEhBC,gBAAiB,0CACjBC,eAAgB,4BAChBC,kBAAmB,8DACnBC,QAAS,0BACTC,UAAW,iCACXC,YAAa,qBACbC,gBAAiB,kJACjBC,iBAAkB,gHAClBC,kBAAmB,2CACnBC,qBAAsB,6CACtBC,mBAAoB,8CACpBC,gBAAiB,uCACjBC,iBAAkB,yFAClBC,iBAAkB,+DAClBC,gBAAiB,0BACjBC,eAAgB,oBAChBC,wBAAyB,+FACzBC,eAAgB,mBAChBC,wBAAyB,kEACzBC,QAAS,UACTC,WAAY,oEACZC,gBAAiB,QACjBC,gBAAiB,sBACjBC,cAAe,8BACfC,YAAa,wDACbC,YAAa,YACbppB,OAAQ,aACRqpB,cAAe,yBACfC,mBAAoB,uCACpBC,mBAAoB,yBACpBC,iBAAkB,gDAClBC,iBAAkB,qCAEpB7kC,GAAI,CACFohC,gBAAiB,8BACjBC,eAAgB,kBAChBC,mBAAoB,yGACpBC,YAAa,uBACbC,gBAAiB,oIACjBC,eAAgB,6BAChBC,QAAS,sEACTC,KAAM,uBACNC,mBAAoB,kCACpBC,aAAc,yBACdC,aAAc,oCACdC,aAAc,YACdC,aAAc,kEACdC,MAAO,CACLC,WAAY,mDACZC,kBAAmB,2EACnBC,kBAAmB,sFACnBC,yBAA0B,uFAC1BC,aAAc,uCACdC,oBAAqB,2EACrBC,aAAc,kDACdC,aAAc,wCACdC,oBAAqB,2EACrBC,aAAc,mDACdC,eAAgB,uCAChBpF,QAAS,4EACT/9C,OAAQ,kEACRojD,OAAQ,wCACRC,aAAc,sEAEhBC,gBAAiB,4CACjBC,eAAgB,sBAChBC,kBAAmB,mEACnBC,QAAS,uBACTC,UAAW,6BACXC,YAAa,wBACbC,gBAAiB,mKACjBC,iBAAkB,mHAClBC,kBAAmB,wDACnBC,qBAAsB,wCACtBC,mBAAoB,iEACpBC,gBAAiB,yCACjBC,iBAAkB,wFAClBC,iBAAkB,kDAClBC,gBAAiB,+BACjBC,eAAgB,wBAChBC,wBAAyB,mGACzBC,eAAgB,wBAChBC,wBAAyB,+EACzBC,QAAS,UACTC,WAAY,oFACZC,gBAAiB,OACjBC,gBAAiB,mBACjBC,cAAe,uCACfC,YAAa,yDACbC,YAAa,YACbppB,OAAQ,UACRqpB,cAAe,aACfC,mBAAoB,0CACpBC,mBAAoB,uBACpBC,iBAAkB,mDAClBC,iBAAkB,iCCzVhB3d,GAAyD,EAC7DpzB,QAAAA,EACAgxC,eAAAA,EACAC,iBAAAA,EACA3xB,OAAAA,MAEA,MAAM,IACJtyB,EADI,4BAEJ2jC,EAFI,4BAGJugB,EAHI,yBAIJC,EAJI,yBAKJC,EALI,sBAMJC,EANI,sBAOJC,EAPI,uBAQJC,EARI,uBASJC,EATI,4BAUJ/d,EAVI,4BAWJge,EAXI,yBAYJ/d,EAZI,yBAaJge,GACE1xC,EACJ,OACE,oCACGgxC,GAA4C,gCAA1BA,EAAepkD,QAChC,yBAAK4gC,UAAU,wBACb,yBAAKA,UAAU,WACb,yBAAKA,UAAU,gBAAgB,YAAU,IAAI,cAAY,SAEzD,wBAAIA,UAAU,mBACZ,gCAA4B,OAAnB1vB,OAAO28B,QAAmB9J,EAA8BugB,GACjE,6BACoB,OAAnBpzC,OAAO28B,QAAmB0W,EAA2BC,GAExD,yBAAK5jB,UAAU,wBACb,uBAAGvG,KAAyB,OAAnBnpB,OAAO28B,QAAmB4W,EAAwBC,EAAuB9jB,UAAU,UAA6B,OAAnB1vB,OAAO28B,QAAmB8W,EAAyBC,MAKhKR,GAA4C,2BAA1BA,EAAepkD,QAChC,oCACE,yBAAK4gC,UAAU,wBACb,yBAAKA,UAAU,WACb,yBAAKA,UAAU,gBAAgB,YAAU,IAAI,cAAY,SAEzD,wBAAIA,UAAU,mBACZ,gCAA4B,OAAnB1vB,OAAO28B,QAAmBhH,EAA8Bge,GACjE,6BACoB,OAAnB3zC,OAAO28B,QAAmB/G,EAA2Bge,KAI5D,yBAAKlkB,UAAU,wBACb,yBAAKA,UAAU,mCACb,yBAAKA,UAAU,8BACb,yBAAKA,UAAU,aACb,wBAAIA,UAAU,iCAAiC6f,GAAevvC,OAAO28B,SAASmV,iBAC9E,2BAAIvC,GAAevvC,OAAO28B,SAASqV,kBACnC,uBAAGtiB,UAAU,eAAevG,KAAO,IAAGnpB,OAAO28B,mCAAmCztC,KAAQqgD,GAAevvC,OAAO28B,SAASsV,kBAEzH,yBAAKviB,UAAU,aACb,wBAAIA,UAAU,iCAAiC6f,GAAevvC,OAAO28B,SAASkW,eAC9E,uBAAGnjB,UAAU,eAAevG,KAAMomB,GAAevvC,OAAO28B,SAASmW,oBAAqBvD,GAAevvC,OAAO28B,SAASoW,oBACrH,6BACA,uBAAGrjB,UAAU,eAAevG,KAAMomB,GAAevvC,OAAO28B,SAASqW,kBAAmBzD,GAAevvC,OAAO28B,SAASsW,uBAO9HC,GAA4C,8BAA1BA,EAAepkD,QAChC,yBAAK4gC,UAAU,wBACb,4BAAKmN,GAAK78B,OAAO28B,SAASxC,0BAC1B,4BAAK0C,GAAK78B,OAAO28B,SAASvC,cAC1B,yBAAK1K,UAAU,0FACb,2BAAG,uBAAGvG,KAAO,wBAAuBnpB,OAAO28B,uBAAwBE,GAAK78B,OAAO28B,SAASjF,WACxF,2BAAG,uBAAGvO,KAAO,wBAAuBnpB,OAAO28B,2BAA4BE,GAAK78B,OAAO28B,SAAS/E,YAE9F,4BAAKiF,GAAK78B,OAAO28B,SAAStC,yBAC1B,4BACE9pC,KAAK,SACLm/B,UAAWlO,EAAS,4BAA8B,SAClD0R,SAAU1R,EACV4M,QAAS,KACyB,mBAArB+kB,GACTA,MAIHtW,GAAK78B,OAAO28B,SAASrC,iBAI3B4Y,GAA4C,4BAA1BA,EAAepkD,QAChC,yBAAK4gC,UAAU,wBACb,yBAAKA,UAAU,WACb,yBAAKA,UAAU,gBAAgB,YAAU,IAAI,cAAY,SAEzD,wBAAIA,UAAU,mBACXmN,GAAK78B,OAAO28B,SAASpC,mBACtB,6BACA,6BACA,gCACK2Y,EAA2C70B,KAAKK,aAC/Cme,GAAK78B,OAAO28B,SAASnC,uBACrBqC,GAAK78B,OAAO28B,SAASlC,8BACzB,6BACEyY,EAA2C70B,KAAKK,eAGtD,yBAAKgR,UAAU,wBACX,GAAEmN,GAAK78B,OAAO28B,SAASjC,wBACzB,uBAAGvR,KAAK,wBAAR,sBASdmM,GAAiBrlC,YAAc,mBAC/B,SAAekjC,GACZhwB,GAAqBA,EAAMygB,aAD9B,CAEE0R,uNCxHF,MAAMue,GAAoD,EACxD3xC,QAAAA,EACAyC,MAAAA,EACA0c,uBAAAA,EACAJ,iBAAAA,EACAO,OAAAA,MAEA,MAAM,SACJ4qB,EADI,aACMgB,EAAczB,WAAW,OAAEnsB,IACnCovB,KAUJ,IAAK1sC,EACH,OAAO,KAGT,GAAImf,GAA4D,uBAAlCA,EAAuBvyB,QAAqE,UAAlCuyB,EAAuBvyB,OAC7G,OACE,kBAAC,GAAD,CACEokD,eAAgB7xB,EAChB8xB,iBAAkB,OAKxB,IAAIW,EAAc,SASlB,OARItyB,IACFsyB,EAAe,GAAEA,wBAGN,MAATnvC,IACFmvC,EAAe,GAAEA,uBAIjB,oCACE,yBAAKpkB,UAAU,wBACb,yBAAKA,UAAU,eAAeyE,GAAwBn0B,OAAO28B,QAASz6B,IACtE,4BAAK26B,GAAK78B,OAAO28B,SAASrF,cAC1B,0BAAM5H,UAAU,OAAO8C,YAAU,EAACC,SAAU2a,GAnChC93C,IAChB2rB,EAAiB,CACfyW,SAAUpiC,EAAKoiC,SACfE,SAAUtiC,EAAKsiC,SACf11B,QAASA,MAAAA,OAAF,EAAEA,EAAShT,UAgCd,yBAAKwgC,UAAWlQ,EAAOkY,SAAW,+BAAiC,eACjE,2BAAO9E,QAAQ,YACZiK,GAAK78B,OAAO28B,SAASjF,SACrBlY,EAAOkY,UAEJ,0BAAMhI,UAAU,sBACblQ,EAAOkY,SAAS1e,SAGvB,8BACEzoB,KAAK,OACLmqB,GAAG,YACC0xB,EAAS,WAAY,CACvBlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAShF,oBAEhCtkC,QAAS,CACPsC,MAAO,UACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAS5E,2BAVpC,CAaE7E,SAAU1R,OAIhB,yBAAKkO,UAAYlQ,EAAOoY,UAAavW,GAA4D,uBAAlCA,EAAuBvyB,OAAoC,+BAAiC,eACzJ,2BAAO8jC,QAAQ,YACZiK,GAAK78B,OAAO28B,SAAS/E,SACrBpY,EAAOoY,UAEJ,0BAAMlI,UAAU,sBACbmN,GAAK78B,OAAO28B,SAAS9E,oBAG1BxW,GAA4D,uBAAlCA,EAAuBvyB,QACjD,0BAAM4gC,UAAU,sBACbmN,GAAK78B,OAAO28B,SAAS7E,2BAG1B,8BACEvnC,KAAK,WACLmqB,GAAG,YACC0xB,EAAS,WAAY,CACvBlI,UAAU,IAJd,CAMEhR,SAAU1R,OAIhB,uBAAGkO,UAAU,eAAevG,KAAO,wBAAuBnpB,OAAO28B,WAAYE,GAAK78B,OAAO28B,SAAS3E,YAClG,yBAAKtI,UAAU,2BACb,4BAAQn/B,KAAK,SAASm/B,UAAWokB,EAAa5gB,SAAU1R,GAAmB,MAAT7c,GAAgBk4B,GAAK78B,OAAO28B,SAAS1E,iBAK1G5W,GAA4D,UAAlCA,EAAuBvyB,QAChD,yBAAK4gC,UAAU,wBACb,kBAAC,GAAD,CACEqC,OAAO,QACPjU,KAAK,yCAMXnZ,GACE,yBAAK+qB,UAAU,wBACb,kBAAC,GAAD,CACEqC,OAAQ8K,GAAK78B,OAAO28B,SAASJ,YAC7Bze,KAAM+e,GAAK78B,OAAO28B,SAASH,UAAU7tC,QAAQ,cAAeuT,EAAQhT,UASlF2kD,GAAoB5jD,YAAc,sBAClC,SAAekjC,GACZhwB,GAAqBA,EAAMygB,aAC5B,CACE3C,iBAAkB8yB,IAHtB,CAKEF,IClJWG,GAAa,inBCe1B,MAAMC,GAA6D,EACjE/xC,QAAAA,EACAyC,MAAAA,EACA2c,sBAAAA,EACAJ,gBAAAA,EACAM,OAAAA,MAEA,MAAM,SACJ4qB,EADI,aACMgB,EAAczB,WAAW,OAAEnsB,IACnCovB,MAEGla,EAAKwf,IAAU7hB,EAAAA,EAAAA,UAAwB,MAY9C,IAAKnwB,EACH,OAAO,KAGT,MAAM,IACJhT,GACEgT,EAEJ,IAAIiyC,EAAatX,GAAK78B,OAAO28B,SAASpE,sBACtC,MAAM,aAAE6b,EAAF,aAAgBC,GAAiBnyC,EAOvC,GANuB,OAAnBlC,OAAO28B,SAAqC,OAAjByX,EAC7BD,EAAaC,EACe,OAAnBp0C,OAAO28B,SAAqC,OAAjB0X,IACpCF,EAAaE,GAGJ,MAAP3f,EACF,OACE,yBAAKhF,UAAU,wBACb,yBAAKA,UAAU,eAAeyE,GAAwBn0B,OAAO28B,QAASz6B,IACtE,4BAAK26B,GAAK78B,OAAO28B,SAASpF,eAC1B,0BACE7H,UAAU,OACV8C,YAAU,EACVC,SAAU2a,GAAc93C,IACtB4+C,EAAO5+C,EAAKo/B,SAGd,yBAAKhF,UAAWlQ,EAAOkV,IAAM,+BAAiC,eAC5D,2BAAO9B,QAAQ,OACZiK,GAAK78B,OAAO28B,SAASxE,UACrB3Y,EAAOkV,KAEJ,0BAAMhF,UAAU,sBACblQ,EAAOkV,IAAI1b,SAGlB,8BACEzoB,KAAK,OACLmqB,GAAG,OACC0xB,EAAS,MAAO,CAClBlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAASvE,cAEhC/kC,QAAS,CACPsC,MAAO,kCACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAStE,YAEhCiM,SAAW3uC,GAAU8+B,GAAM9+B,IAAUknC,GAAK78B,OAAO28B,SAAStE,aAZ9D,CAcEnF,SAAU1R,OAIhB,yBAAKkO,UAAWlQ,EAAO80B,gBAAkB,uDAAyD,uCAChG,2BAAO1hB,QAAQ,mBACZuhB,EACA30B,EAAO80B,iBAEJ,0BAAM5kB,UAAU,sBACblQ,EAAO80B,gBAAgBt7B,UAIhC,8BACE0B,GAAG,kBACHnqB,KAAK,YACD67C,EAAS,kBAAmB,CAC9B9H,SAAWjpC,IACC,IAANA,GACKwhC,GAAK78B,OAAO28B,SAASnE,uBANpC,CAWEtF,SAAU1R,MAGd,yBAAKkO,UAAU,2BACb,4BAAQn/B,KAAK,SAASm/B,UAAWlO,EAAS,4BAA8B,SAAU0R,SAAU1R,GAAmB,MAAT7c,GAAgBk4B,GAAK78B,OAAO28B,SAASnoC,SAOrJ,IAAIs/C,EAAc,SASlB,OARItyB,IACFsyB,EAAe,GAAEA,wBAGN,MAATnvC,IACFmvC,EAAe,GAAEA,uBAIjB,yBAAKpkB,UAAU,wBACb,kBAAC,GAAD,CACEiB,kBAAmBrP,EACnBsP,OAAQtP,EACRwP,OAAQ,KACN5P,EAAgB,CACdwT,IAAKA,EACLhW,aAAc,KACdE,kBAAmB,KACnB21B,gCAAgC,EAChCryC,QAASA,MAAAA,OAAF,EAAEA,EAAShT,QAIrBoyB,GAA0D,uBAAjCA,EAAsBxyB,QAC9C,oCACE,4BAAK+tC,GAAK78B,OAAO28B,SAASpF,eAC1B,0BAAM7H,UAAU,OAAO8C,YAAU,EAACC,SAAU2a,GA5HpC93C,IAChB4rB,EAAgB,CACdwT,IAAKA,EACLhW,aAAcppB,EAAKopB,aACnBE,kBAAmB,KACnB21B,gCAAgC,EAChCryC,QAASA,MAAAA,OAAF,EAAEA,EAAShT,UAuHV,yBAAKwgC,UAAWlQ,EAAOd,aAAe,+BAAiC,eACrE,2BAAOkU,QAAQ,gBACZiK,GAAK78B,OAAO28B,SAASje,cAEvBc,EAAOd,cAEJ,0BAAMgR,UAAU,sBACblQ,EAAOd,aAAa1F,SAG3B,8BACEzoB,KAAK,OACLmqB,GAAG,gBACC0xB,EAAS,eAAgB,CAC3BlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAASpD,wBAEhClmC,QAAS,CACPsC,MAAOq+C,GACPh7B,QAAS6jB,GAAK78B,OAAO28B,SAAS7C,gBAVpC,CAaE5G,SAAU1R,MAGd,yBAAKkO,UAAU,2BACb,4BAAQn/B,KAAK,SAASm/B,UAAWokB,EAAa5gB,SAAU1R,GAASqb,GAAK78B,OAAO28B,SAASnoC,SAM3F8sB,GAA0D,uBAAjCA,EAAsBxyB,QACV,UAAjCwyB,EAAsBxyB,QACzB,kBAAC,GAAD,CACEokD,eAAgB5xB,EAChB6xB,iBAAkB,KAChBjyB,EAAgB,CACdxC,aAAc4C,EAAsBjD,KAAKK,aACzCE,kBAAmB0C,EAAsBjD,KAAKO,kBAC9C8V,IAAKA,EACL6f,gCAAgC,EAChCryC,QAAShT,OAOjBoyB,GAA0D,UAAjCA,EAAsBxyB,QAC7C,oCACE,4BAAK+tC,GAAK78B,OAAO28B,SAASpF,eAC1B,kBAAC,GAAD,CACExF,OAAQ8K,GAAK78B,OAAO28B,SAAStE,WAC7Bva,KAAM+e,GAAK78B,OAAO28B,SAASrE,iBAE7B,yBAAK5I,UAAU,+BACb,uBAAGA,UAAU,SAASvG,KAAO,IAAGnpB,OAAO28B,mCAAmCztC,KAAQ2tC,GAAK78B,OAAO28B,SAASF,QAM7G93B,GACE,yBAAK+qB,UAAU,wBACb,kBAAC,GAAD,CACEqC,OAAQ8K,GAAK78B,OAAO28B,SAASJ,YAC7Bze,KAAM+e,GAAK78B,OAAO28B,SAASH,UAAU7tC,QAAQ,cAAeO,SAU5E+kD,GAAmBhkD,YAAc,qBACjC,SAAekjC,GACZhwB,GAAqBA,EAAMygB,aAC5B,CACE1C,gBAAiBszB,IAHrB,CAKEP,o5BC9NF,MAAMQ,GAA+D,EACnEvyC,QAAAA,EACAyC,MAAAA,EACA4c,uBAAAA,EACAJ,iBAAAA,EACAK,OAAAA,MAEA,MAAM,SACJ4qB,EADI,aACMgB,EAAczB,WAAW,OAAEnsB,GADjC,SAC2CgvB,GAC7CI,KA0CJ,IAxCA5sC,EAAAA,EAAAA,YAAU,KACJuf,GAA4D,aAAlCA,EAAuBzyB,SAA0B0wB,EAAOk1B,iBACpFlG,EAAS,kBAAmB,CAC1Bj+C,KAAM,SACNyoB,QAAS6jB,GAAK78B,OAAO28B,SAAS9C,mBAoC/B33B,EACH,OAAO,KAGT,GAAIqf,IAA6D,2BAAlCA,EAAuBzyB,QACf,8BAAlCyyB,EAAuBzyB,QACW,4BAAlCyyB,EAAuBzyB,QAC1B,OACE,kBAAC,GAAD,CACEokD,eAAgB3xB,EAChB4xB,iBAAkB,KAChBhyB,EAAiB,CACf9C,KAAM,CACJC,UAAWiD,EAAuBlD,KAAKC,UACvCE,SAAU+C,EAAuBlD,KAAKG,SACtCC,YAAa,IAAIzB,KAAKuE,EAAuBlD,KAAKI,aAClDL,OAAQmD,EAAuBlD,KAAKD,OACpCM,aAAc6C,EAAuBlD,KAAKK,aAC1CE,kBAAmB2C,EAAuBlD,KAAKO,kBAC/CC,YAAa,KACbC,iBAAkB,KAClBC,MAAO,MAETw1B,gCAAgC,EAChCryC,QAASA,MAAAA,OAAF,EAAEA,EAAShT,SAO5B,IAAIilD,EAAatX,GAAK78B,OAAO28B,SAASpE,sBACtC,MAAM,aAAE6b,EAAF,aAAgBC,GAAiBnyC,EAChB,OAAnBlC,OAAO28B,SAAqC,OAAjByX,EAC7BD,EAAaC,EACe,OAAnBp0C,OAAO28B,SAAqC,OAAjB0X,IACpCF,EAAaE,GAGf,IAAIP,EAAc,SASlB,OARItyB,IACFsyB,EAAe,GAAEA,wBAGN,MAATnvC,IACFmvC,EAAe,GAAEA,uBAIjB,oCACE,yBAAKpkB,UAAU,wBACb,yBAAKA,UAAU,eAAeyE,GAAwBn0B,OAAO28B,QAASz6B,IACtE,4BAAK26B,GAAK78B,OAAO28B,SAASnF,gBAC1B,0BAAM9H,UAAU,OAAO8C,YAAU,EAACC,SAAU2a,GApFhC93C,IAChB,MAAMq/C,EAAO,IAAI33B,KACf1nB,EAAKs/C,kBACHt/C,EAAKu/C,kBAAoB,EAC3Bv/C,EAAKo/C,iBAIc55C,SAAS65C,IAASA,EAAKG,WAAax/C,EAAKo/C,gBAO5DvzB,EAAiB,CACf9C,KAAM,SACD/oB,GADD,IAEFmpB,YAAa,IAAIzB,KAAKA,KAAKC,IACzB3nB,EAAKs/C,iBACLt/C,EAAKu/C,kBAAoB,EACzBv/C,EAAKo/C,kBAEP91B,kBAAmB,OAErB21B,gCAAgC,EAChCryC,QAASA,MAAAA,OAAF,EAAEA,EAAShT,MAhBpBs/C,EAAS,kBAAmB,CAC1Bj+C,KAAM,SACNyoB,QAAS6jB,GAAK78B,OAAO28B,SAAS1C,kBAyE5B,yBAAKvK,UAAWlQ,EAAOlB,UAAY,+BAAiC,eAClE,2BAAOsU,QAAQ,aACZiK,GAAK78B,OAAO28B,SAASre,WAEvBkB,EAAOlB,WAEJ,0BAAMoR,UAAU,sBACblQ,EAAOlB,UAAUtF,SAGxB,8BACEzoB,KAAK,OACLmqB,GAAG,YACHwY,SAAU1R,GACN4qB,EAAS,YAAa,CACxBlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAASnD,qBAEhC2K,UAAW,CACTxuC,MAAO,GACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAS5C,uBAKtC,yBAAKrK,UAAWlQ,EAAOhB,SAAW,+BAAiC,eACjE,2BAAOoU,QAAQ,YACZiK,GAAK78B,OAAO28B,SAASne,UAEvBgB,EAAOhB,UAEJ,0BAAMkR,UAAU,sBACblQ,EAAOhB,SAASxF,SAGvB,8BACEzoB,KAAK,OACLmqB,GAAG,WACHwY,SAAU1R,GACN4qB,EAAS,WAAY,CACvBlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAASlD,oBAEhC0K,UAAW,CACTxuC,MAAO,GACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAS3C,sBAKtC,yBAAKtK,UAAWlQ,EAAOd,aAAe,+BAAiC,eACrE,2BAAOkU,QAAQ,SACZiK,GAAK78B,OAAO28B,SAASje,cAEvBc,EAAOd,cAEJ,0BAAMgR,UAAU,sBACblQ,EAAOd,aAAa1F,SAG3B,8BACEzoB,KAAK,OACLmqB,GAAG,eACHwY,SAAU1R,GACN4qB,EAAS,eAAgB,CAC3BlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAASpD,wBAEhClmC,QAAS,CACPsC,MAAOq+C,GACPh7B,QAAS6jB,GAAK78B,OAAO28B,SAAS7C,mBAKtC,yBAAKpK,UAAU,eACb,2BAAOkD,QAAQ,UAAUiK,GAAK78B,OAAO28B,SAASve,QAC9C,+BAAQ1D,GAAG,SAASwY,SAAU1R,GAAY4qB,EAAS,WACjD,4BAAQz2C,MAAM,WAAWknC,GAAK78B,OAAO28B,SAASjD,eAC9C,4BAAQ/jC,MAAM,UAAUknC,GAAK78B,OAAO28B,SAAShD,cAC7C,4BAAQhkC,MAAM,QAAQknC,GAAK78B,OAAO28B,SAAS/C,cAG/C,8BAAUlK,UAAYlQ,EAAOk1B,iBAAmBl1B,EAAOq1B,mBAAqBr1B,EAAOo1B,iBAAoB,gDAAkD,gCACvJ,gCACG,IACD,yBAAKllB,UAAU,4BAA4BmN,GAAK78B,OAAO28B,SAASjE,aAEhElZ,EAAOk1B,iBAAmBl1B,EAAOq1B,mBAAqBr1B,EAAOo1B,mBAE3D,0BAAMllB,UAAU,sBAEZ,CAAClQ,EAAOk1B,gBAAkBl1B,EAAOk1B,gBAAgB17B,QAAU,KAAMwG,EAAOq1B,kBAAoBr1B,EAAOq1B,kBAAkB77B,QAAU,KAAMwG,EAAOo1B,iBAAmBp1B,EAAOo1B,iBAAiB57B,QAAU,MAAM5d,OAAON,SAASnN,KAAK,OAIpO,yBAAK+hC,UAAU,gCACb,yBAAKA,UAAU,0CACb,2BAAOkD,QAAQ,sBAAsBiK,GAAK78B,OAAO28B,SAAShE,KAC1D,8BACEpoC,KAAK,OACLmqB,GAAG,qBACHwY,SAAU1R,EACV2iB,UAAW,EACX9wC,QAAQ,QACJ+4C,EAAS,kBAAmB,CAC9BlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAS/D,eAEhCvlC,QAAS,CACPsC,MAAO,MACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAS9D,kBAEhCyL,SAAW3uC,KACLA,EAAQ,GAAKA,EAAQ,KAChBknC,GAAK78B,OAAO28B,SAAS7D,sBAOtC,yBAAKpJ,UAAU,0CACb,2BAAOkD,QAAQ,uBAAuB9C,MAAO,CAAEilB,WAAY,SAAWlY,GAAK78B,OAAO28B,SAAS5D,OAC3F,8BACExoC,KAAK,OACLmqB,GAAG,uBACHwY,SAAU1R,EACV2iB,UAAW,EACX9wC,QAAQ,QACJ+4C,EAAS,oBAAqB,CAChClI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAS3D,iBAEhC3lC,QAAS,CACPsC,MAAO,MACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAS1D,oBAEhCqL,SAAW3uC,KACLA,EAAQ,GAAKA,EAAQ,KAChBknC,GAAK78B,OAAO28B,SAASzD,wBAOtC,yBAAKxJ,UAAU,0CACb,2BAAOkD,QAAQ,uBAAuBiK,GAAK78B,OAAO28B,SAASxD,MAC3D,8BACE5oC,KAAK,OACLmqB,GAAG,gBACHwY,SAAU1R,EACV2iB,UAAW,EACX9wC,QAAQ,QACJ+4C,EAAS,mBAAoB,CAC/BlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAASvD,gBAEhC/lC,QAAS,CACPsC,MAAO,MACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAStD,mBAEhC+K,UAAW,CACTzuC,MAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAASrD,0BAO1C,yBAAK5J,UAAWlQ,EAAO80B,gBAAkB,uDAAyD,uCAChG,2BAAO1hB,QAAQ,mBACZuhB,EACA30B,EAAO80B,iBAEJ,0BAAM5kB,UAAU,sBACblQ,EAAO80B,gBAAgBt7B,UAIhC,8BACE0B,GAAG,kBACHnqB,KAAK,YACD67C,EAAS,kBAAmB,CAC9B9H,SAAWjpC,IACC,IAANA,GACKwhC,GAAK78B,OAAO28B,SAASnE,uBANpC,CAWEtF,SAAU1R,MAId,yBAAKkO,UAAU,2BACb,4BAAQn/B,KAAK,SAASm/B,UAAWokB,EAAa5gB,SAAU1R,GAAmB,MAAT7c,GAAgBk4B,GAAK78B,OAAO28B,SAASnoC,SAK1G+sB,GAA4D,UAAlCA,EAAuBzyB,QAChD,yBAAK4gC,UAAU,wBACb,kBAAC,GAAD,CACEqC,OAAO,QACPjU,KAAK,8BAMXnZ,GACE,yBAAK+qB,UAAU,wBACb,kBAAC,GAAD,CACEqC,OAAQ8K,GAAK78B,OAAO28B,SAASJ,YAC7Bze,KAAM+e,GAAK78B,OAAO28B,SAASH,UAAU7tC,QAAQ,cAAeuT,EAAQhT,UASlFulD,GAAoBxkD,YAAc,sBAClC,SAAekjC,GACZhwB,GAAqBA,EAAMygB,aAC5B,CACEzC,iBAAkB6zB,IAHtB,CAKEP,ICpVIQ,GAAmC,IACvC,kBAAC,GAAD,KACE,kBAACxnB,GAAD,KACE,kBAACL,GAAD,CAAO70B,OAAK,EAAC7F,KAAK,4BAChB,kBAAC,GAAD,OAEF,kBAAC06B,GAAD,CAAO70B,OAAK,EAAC7F,KAAK,iCAChB,kBAAC,GAAD,OAEF,kBAAC06B,GAAD,CAAO70B,OAAK,EAAC7F,KAAK,gCAChB,kBAAC,GAAD,OAEF,kBAAC06B,GAAD,CAAO70B,OAAK,EAAC7F,KAAK,iCAChB,kBAAC,GAAD,SAMRuiD,GAA4BhlD,YAAc,8BAC1C,YCjCMilD,GAAwD,EAC5DC,SAAAA,EACAjC,eAAAA,EACAkC,qBAAAA,EACAC,SAAAA,EACAC,UAAAA,EACAC,SAAAA,EACAC,WAAAA,EACAh0B,OAAAA,KAEA,qCACgB,IAAb2zB,EACC,oCAE8B,gCAA1BjC,EAAepkD,QACb,4BAAK+tC,GAAK78B,OAAO28B,SAASjB,2BAIF,2BAA1BwX,EAAepkD,SACa,IAAzBsmD,GACD,4BAAKvY,GAAK78B,OAAO28B,SAAShB,gBAIF,2BAA1BuX,EAAepkD,SACa,IAAzBsmD,GACD,4BAAKvY,GAAK78B,OAAO28B,SAAShB,gBAGH,0CAA1BuX,EAAepkD,QACd,4BAAK+tC,GAAK78B,OAAO28B,SAASf,mBAE5B,oCACGsX,EAAe70B,KAAKC,UACpB,IACA40B,EAAe70B,KAAKG,SACrB,6BAEE00B,EAAe70B,KAAKK,cAClB,oCACGw0B,EAAe70B,KAAKK,aACrB,8BAKJw0B,EAAe70B,KAAKqW,KAClB,oCACI,GAAEmI,GAAK78B,OAAO28B,SAASxE,cAAc+a,EAAe70B,KAAKqW,MAC3D,8BAKyB,IAA7Bwe,EAAe70B,KAAK6B,MAClB,oCACI,GAAE2c,GAAK78B,OAAO28B,SAASzc,SAASgzB,EAAe70B,KAAK6B,OACtD,8BAKJgzB,EAAeuC,cAAc5nD,OAAS,GACpC,oCACE,gCAASgvC,GAAK78B,OAAO28B,SAASd,YAC9B,4BACGqX,EAAeuC,cAAct8C,KAAK2D,GAAM,wBAAI5N,IAAK4N,GAAIA,QAMhE,yBAAK4yB,UAAU,gDACb,4BACEn/B,KAAK,SACLm/B,UAAWlO,EAAS,uDAAyD,oCAC7E0R,SAAU1R,EACV,YAAU,IACV4M,QAASknB,GAEkB,2BAA1BpC,EAAepkD,OAAsC+tC,GAAK78B,OAAO28B,SAASjiC,OAASmiC,GAAK78B,OAAO28B,SAASb,OAE3G,4BACEvrC,KAAK,SACLm/B,UAAU,sBACVwD,SAAU1R,EACV4M,QAASinB,GAERxY,GAAK78B,OAAO28B,SAASrB,UAM5B,yBAAK5L,UAAU,WACb,yBAAKA,UAAU,gBAAgB,YAAU,IAAI,cAAY,SAC9B,2BAA1BwjB,EAAepkD,OACd,wBAAI4gC,UAAU,mBACZ,gCAASmN,GAAK78B,OAAO28B,SAASpd,SAC9B,6BACCsd,GAAK78B,OAAO28B,SAASX,YACtB,6BAE+B,IAA7BkX,EAAe70B,KAAK6B,MAClB,6BACI,GAAE2c,GAAK78B,OAAO28B,SAASzc,SAASgzB,EAAe70B,KAAK6B,SAM9D,wBAAIwP,UAAU,mBACZ,gCAASmN,GAAK78B,OAAO28B,SAASZ,SAC9B,6BACCc,GAAK78B,OAAO28B,SAASV,YACtB,6BAE+B,IAA7BiX,EAAe70B,KAAK6B,MAClB,6BACI,GAAE2c,GAAK78B,OAAO28B,SAASzc,SAASgzB,EAAe70B,KAAK6B,SAMhE,yBAAKwP,UAAU,wBACb,4BAAQn/B,KAAK,SAASm/B,UAAU,SAAStB,QAASmnB,GAAWC,MAOvEN,GAAsBjlD,YAAc,wBACpC,SAAekjC,GACZhwB,GAAqBA,EAAM0gB,gBAD9B,CAEEqxB,uNCvIF,MAAMQ,GAAoE,EACxEC,cAAAA,EACAC,QAAAA,EACAC,qBAAAA,EACAnhB,IAAAA,EACAohB,aAAAA,EACAC,SAAAA,EACAv0B,OAAAA,MAEA,MAAM,SACJ4qB,EADI,aACMgB,GACRwB,KAYJ,OACE,oCAEIla,EACE,4BACI,IAAGmI,GAAK78B,OAAO28B,SAAST,sBAAsBxH,MAGlD,4BAAKmI,GAAK78B,OAAO28B,SAASR,yBAG9B,0BAAMzM,UAAU,OAAO8C,YAAU,EAACC,SAAU2a,GArB9B93C,IAChB,MAAMm0C,EAAWvsB,SAAS5nB,EAAK0gD,aAAc,IACzC98C,OAAOQ,MAAM+vC,IAA0B,IAAbA,EAC5BqM,IAIFD,EAAqBpM,OAejB,2BAAO/Z,UAAU,SACdgF,EACC,iCAAUmI,GAAK78B,OAAO28B,SAASP,2BAE/B,iCAAUS,GAAK78B,OAAO28B,SAASN,8BAEjC,+BACE,4BACE,iCACA,4BAAKQ,GAAK78B,OAAO28B,SAASre,WAC1B,4BAAKue,GAAK78B,OAAO28B,SAASne,UAC1B,4BAAKqe,GAAK78B,OAAO28B,SAASje,cAC1B,4BAAKme,GAAK78B,OAAO28B,SAAS5d,OAC1B,4BAAK8d,GAAK78B,OAAO28B,SAAS7d,kBAC1B,4BAAK+d,GAAK78B,OAAO28B,SAASzc,MAC1B,4BAAK2c,GAAK78B,OAAO28B,SAASjI,KAC1B,mCAGJ,+BACGihB,EAAcx8C,KAAKiE,GAClB,wBAAIlO,IAAKkO,EAAE8iB,MACT,4BACE,8BACE3vB,KAAK,QACL2iC,SAAU1R,EACV7rB,MAAOyH,EAAE8iB,MACLksB,EAAS,mBAGjB,4BAAKhvC,EAAEkhB,WACP,4BAAKlhB,EAAEohB,UACP,4BAAKphB,EAAEshB,cACP,4BAAKthB,EAAE2hB,OACP,4BAAK3hB,EAAE0hB,kBACP,4BAAK1hB,EAAE8iB,MACP,4BAAK9iB,EAAE64C,UAGX,wBAAI/mD,KAAM,GACR,6BACA,wBAAIgnD,QAAS,GAAIrZ,GAAK78B,OAAO28B,SAASL,gBAExC,wBAAIptC,IAAK,GACP,4BAAI,2BAAOqB,KAAK,QAAQE,KAAK,eAAekF,MAAO,KACnD,4BAAKigD,EAAQt3B,WACb,4BAAKs3B,EAAQp3B,UACb,4BAAKo3B,EAAQl3B,cACb,iCACA,iCACA,iCACA,4BAAKk3B,EAAQlhB,QAInB,yBAAKhF,UAAU,oBACb,4BAAQn/B,KAAK,SAAS2iC,SAAU1R,EAAQkO,UAAWlO,EAAS,4BAA8B,UAAWqb,GAAK78B,OAAO28B,SAASnoC,MAC1H,4BAAQjE,KAAK,SAAS2iC,SAAU1R,EAAQkO,UAAU,SAAStB,QAAS2nB,GAAWlZ,GAAK78B,OAAO28B,SAASF,UAO9GiZ,GAA4BzlD,YAAc,8BAC1C,SAAekjC,GACZhwB,GAAqBA,EAAM0gB,gBAD9B,CAEE6xB,o5BC5FF,MAAMjB,GAAyD,EAC7DvyC,QAAAA,EACAyC,MAAAA,EACAqd,kBAAAA,EACAO,iBAAAA,EACA4zB,gBAAAA,EACAh0B,wBAAAA,EACAK,+BAAAA,EACAH,yBAAAA,EACAb,OAAAA,EACAc,aAAAA,MAEA,MAAM,SACJ8pB,EADI,aACMgB,EAAczB,WAAW,OAAEnsB,GADjC,SAC2CgvB,GAC7CI,KAEJ,IAAK1sC,EACH,OAAO,KAGT,MAAMk0C,EAAe,CACnB/3B,EACAg4B,EACAC,EACAC,EACAC,KAEAx0B,EAAkB,CAChB3D,KAAM,SACDA,GADD,IAEFI,YAAa,IAAIzB,KAAKA,KAAKC,IACzBoB,EAAKu2B,iBACLv2B,EAAKw2B,kBAAoB,EACzBx2B,EAAKq2B,kBAEP91B,kBAAwC,OAArBP,EAAKQ,YAAuB,KAAO,OAExDw3B,OAAAA,EACAC,mBAAAA,EACAC,qBAAAA,EACAr0C,QAASA,MAAAA,OAAF,EAAEA,EAAShT,IAClBsnD,2BAAAA,MAuBE,YAAE5Z,GAAgB16B,EAElBu0C,EAAuB,CAC3BH,EACAC,KAEIl0B,GAA4BA,EAAyBhE,MACvD+3B,EAAa,SAEN/zB,EAAyBhE,MAFpB,IAGRu2B,iBAAkBvyB,EAAyBhE,KAAKI,YAAYi4B,cAC5D7B,kBAAmBxyB,EAAyBhE,KAAKI,YAAYk4B,WAAa,EAC1EjC,gBAAiBryB,EAAyBhE,KAAKI,YAAYq2B,UAC3Dl2B,kBAAiE,OAA9CyD,EAAyBhE,KAAKQ,YAAuB,KAAO,KAC/E23B,2BAA4Bn0B,EAAyBm0B,8BAEvD,EACAF,EACAC,EACAl0B,EAAyBm0B,6BA6BzBnb,EAAkBnb,IACtB,IAAI02B,EAAW10C,EAAQ20C,UAAUloD,QAAQ,SAAW,GAAEuxB,KAClDlgB,OAAOlJ,SAAS8tB,SAClBgyB,EAAY,GAAEA,IAAW52C,OAAOlJ,SAAS8tB,OAAOj2B,QAAQ,IAAK,QAG7DioD,EADEA,EAASlnD,QAAQ,eAAiB,EACzBknD,EAASjoD,QAAQ,QAAS,SAE1BioD,EAASjoD,QAAQ,QAAS,WAEvCqR,OAAOlJ,SAASqyB,KAAOytB,GAGzB,OAAIz0B,GAA8D,8BAAnCA,EAAwBrzB,OAEnD,kBAAC,GAAD,CACE6mD,cAAexzB,EAAwBwzB,cACvCC,QAASzzB,EAAwB9D,KACjCqW,IAAK,KACLmhB,qBAAuB31B,GAAiBu2B,GAAqB,EAAOv2B,GACpE41B,aAAc,IAAMW,GAAqB,EAAM,GAC/CV,SAAUvzB,IAKZL,GAA8D,gCAAnCA,EAAwBrzB,QAAmE,IAAvB8tC,EAAY/uC,OAE3G,oCACE,4BAAKgvC,GAAK78B,OAAO28B,SAASlB,wBAC1B,6BAAO,GAAEtZ,EAAwB9D,KAAKC,aAAa6D,EAAwB9D,KAAKG,YAChF,6BAAM2D,EAAwB9D,KAAKK,cACnC,6BACI,GAAEme,GAAK78B,OAAO28B,SAASzc,SAASiC,EAAwB9D,KAAK6B,QAEjE,yBAAKwP,UAAU,uDACb,4BAAQn/B,KAAK,SAASm/B,UAAU,SAAStB,QAAS,IAAMiN,EAAelZ,EAAwB9D,KAAK6B,OAAQ2c,GAAK78B,OAAO28B,SAASlf,IACjI,4BAAQltB,KAAK,SAASm/B,UAAU,sBAAsBtB,QAAS7L,GAAmBsa,GAAK78B,OAAO28B,SAASrB,UAM3GnZ,IAA+D,2BAAnCA,EAAwBrzB,QACf,gCAAnCqzB,EAAwBrzB,QAA4C8tC,EAAY/uC,OAAS,GAE3F,kBAAC,GAAD,CACEsnD,SAAU9yB,MAAAA,OAAF,EAAEA,EAA0Bg0B,OACpCnD,eAAgB/wB,EAChBizB,qBAAsB/yB,MAAAA,OAAF,EAAEA,EAA0Bi0B,mBAChDjB,SAAU7yB,EACV8yB,UA3EY,KACZjzB,GAA4BA,EAAyBhE,MACvD+3B,EAAa,SAEN/zB,EAAyBhE,MAFpB,IAGRu2B,iBAAkBvyB,EAAyBhE,KAAKI,YAAYi4B,cAC5D7B,kBAAmBxyB,EAAyBhE,KAAKI,YAAYk4B,WAAa,EAC1EjC,gBAAiBryB,EAAyBhE,KAAKI,YAAYq2B,UAC3Dl2B,kBAAiE,OAA9CyD,EAAyBhE,KAAKQ,YAAuB,KAAO,KAC/E23B,2BAA4Bn0B,EAAyBm0B,8BAEvD,EACAn0B,MAAAA,OAVU,EAUVA,EAA0Bi0B,mBAC1Bj0B,MAAAA,OAXU,EAWVA,EAA0Bk0B,qBAC1Bl0B,MAAAA,OAZU,EAYVA,EAA0Bm0B,6BA8D1BjB,SAAU,IAAMla,EAAelZ,EAAwB9D,KAAK6B,MAC5Ds1B,WAA+B,OAAnBx1C,OAAO28B,QAAmBz6B,EAAQ40C,aAAe50C,EAAQ60C,eAMzE,oCAE+B,MAA3B50B,GACE,oCACE,4BAAK0a,GAAK78B,OAAO28B,SAASnB,wBAC1B,0BAAM9L,UAAU,OAAO8C,YAAU,EAACC,SAAU2a,GAnIpC93C,IAChB,MAAMq/C,EAAO,IAAI33B,KACf1nB,EAAKs/C,kBACHt/C,EAAKu/C,kBAAoB,EAC3Bv/C,EAAKo/C,iBAIc55C,SAAS65C,IAASA,EAAKG,WAAax/C,EAAKo/C,gBAO5D0B,EAAa9gD,GAAM,GAAM,EAAO,EAAGA,EAAKkhD,4BALxChI,EAAS,kBAAmB,CAC1Bj+C,KAAM,SACNyoB,QAAS6jB,GAAK78B,OAAO28B,SAAS1C,kBAwHxB,yBAAKvK,UAAWlQ,EAAOlB,UAAY,+BAAiC,eAClE,2BAAOsU,QAAQ,aACZiK,GAAK78B,OAAO28B,SAASre,WAEvBkB,EAAOlB,WAEJ,0BAAMoR,UAAU,sBACblQ,EAAOlB,UAAUtF,SAGxB,8BACEzoB,KAAK,OACLmqB,GAAG,YACHwY,SAAU1R,GACN4qB,EAAS,YAAa,CACxBlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAASnD,qBAEhC2K,UAAW,CACTxuC,MAAO,GACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAS5C,uBAKtC,yBAAKrK,UAAWlQ,EAAOhB,SAAW,+BAAiC,eACjE,2BAAOoU,QAAQ,YACZiK,GAAK78B,OAAO28B,SAASne,UAEvBgB,EAAOhB,UAEJ,0BAAMkR,UAAU,sBACblQ,EAAOhB,SAASxF,SAGvB,8BACEzoB,KAAK,OACLmqB,GAAG,WACHwY,SAAU1R,GACN4qB,EAAS,WAAY,CACvBlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAASlD,oBAEhC0K,UAAW,CACTxuC,MAAO,GACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAS3C,sBAKtC,yBAAKtK,UAAU,eACb,2BAAOkD,QAAQ,UAAUiK,GAAK78B,OAAO28B,SAASve,QAC9C,+BAAQ1D,GAAG,SAASwY,SAAU1R,GAAY4qB,EAAS,WACjD,4BAAQz2C,MAAM,WAAWknC,GAAK78B,OAAO28B,SAASjD,eAC9C,4BAAQ/jC,MAAM,UAAUknC,GAAK78B,OAAO28B,SAAShD,cAC7C,4BAAQhkC,MAAM,QAAQknC,GAAK78B,OAAO28B,SAAS/C,cAG/C,8BAAUlK,UAAYlQ,EAAOk1B,iBAAmBl1B,EAAOq1B,mBAAqBr1B,EAAOo1B,iBAAoB,gDAAkD,gCACvJ,gCACG,IACD,yBAAKllB,UAAU,4BAA4BmN,GAAK78B,OAAO28B,SAASjE,aAG/DlZ,EAAOk1B,iBAAmBl1B,EAAOq1B,mBAAqBr1B,EAAOo1B,mBAE5D,0BAAMllB,UAAU,sBAEZ,CAAClQ,EAAOk1B,gBAAkBl1B,EAAOk1B,gBAAgB17B,QAAU,KAAMwG,EAAOq1B,kBAAoBr1B,EAAOq1B,kBAAkB77B,QAAU,KAAMwG,EAAOo1B,iBAAmBp1B,EAAOo1B,iBAAiB57B,QAAU,MAAM5d,OAAON,SAASnN,KAAK,OAKpO,yBAAK+hC,UAAU,gCACb,yBAAKA,UAAU,0CACb,2BAAOkD,QAAQ,sBAAsBiK,GAAK78B,OAAO28B,SAAShE,KAC1D,8BACEpoC,KAAK,OACLmqB,GAAG,qBACHwY,SAAU1R,EACV2iB,UAAW,EACX9wC,QAAQ,QACJ+4C,EAAS,kBAAmB,CAC9BlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAS/D,eAEhCvlC,QAAS,CACPsC,MAAO,MACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAS9D,kBAEhCyL,SAAW3uC,KACLA,EAAQ,GAAKA,EAAQ,KAChBknC,GAAK78B,OAAO28B,SAAS7D,sBAOtC,yBAAKpJ,UAAU,0CACb,2BAAOkD,QAAQ,wBAAwBiK,GAAK78B,OAAO28B,SAAS5D,OAC5D,8BACExoC,KAAK,OACLmqB,GAAG,uBACHwY,SAAU1R,EACV2iB,UAAW,EACX9wC,QAAQ,QACJ+4C,EAAS,oBAAqB,CAChClI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAS3D,iBAEhC3lC,QAAS,CACPsC,MAAO,MACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAS1D,oBAEhCqL,SAAW3uC,KACLA,EAAQ,GAAKA,EAAQ,KAChBknC,GAAK78B,OAAO28B,SAASzD,wBAOtC,yBAAKxJ,UAAU,0CACb,2BAAOkD,QAAQ,uBAAuBiK,GAAK78B,OAAO28B,SAASxD,MAC3D,8BACE5oC,KAAK,OACLmqB,GAAG,gBACHwY,SAAU1R,EACV2iB,UAAW,EACX9wC,QAAQ,QACJ+4C,EAAS,mBAAoB,CAC/BlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAASvD,gBAEhC/lC,QAAS,CACPsC,MAAO,MACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAStD,mBAEhC+K,UAAW,CACTzuC,MAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAASrD,0BAO1C,yBAAK5J,UAAU,eACb,2BAAOkD,QAAQ,eACZiK,GAAK78B,OAAO28B,SAAS9d,aAExB,+BAAQnE,GAAG,cAAcwY,SAAU1R,EAAQ6I,aAAa,MAAS+hB,EAAS,gBAEtE9pB,EAAanpB,KAAKlE,GAChB,4BAAQ/F,IAAK+F,EAAE2b,KAAMjb,MAAOV,EAAE2b,MAAO3b,EAAExE,UAK/C,yBAAKi/B,UAAWlQ,EAAOd,aAAe,+BAAiC,eACrE,2BAAOkU,QAAQ,SACZiK,GAAK78B,OAAO28B,SAASje,cAEvBc,EAAOd,cACN,0BAAMgR,UAAU,sBACblQ,EAAOd,aAAa1F,SAGzB,8BACEzoB,KAAK,OACLmqB,GAAG,eACHwY,SAAU1R,GACN4qB,EAAS,eAAgB,CAC3BlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAASpD,wBAEhClmC,QAAS,CACPsC,MAAOq+C,GACPh7B,QAAS6jB,GAAK78B,OAAO28B,SAAS7C,mBAKtC,yBAAKpK,UAAU,eACb,2BAAOkD,QAAQ,YACZiK,GAAK78B,OAAO28B,SAASzB,oBAExB,8BACE3qC,KAAK,WACLmqB,GAAG,WACHwY,SAAU1R,GACN4qB,EAAS,iCAGjB,yBAAK1c,UAAU,2BACb,4BAAQn/B,KAAK,SAASm/B,UAAWlO,EAAS,4BAA8B,SAAU0R,SAAU1R,GAASqb,GAAK78B,OAAO28B,SAASnoC,MAC1H,4BAAQjE,KAAK,SAASm/B,UAAU,wBAAwBtB,QAlRvD,KACb7L,IACA4zB,GAAgB,IAgRqEjjB,SAAU1R,GAASqb,GAAK78B,OAAO28B,SAASF,SAOzH93B,GACE,yBAAK+qB,UAAU,wBACb,kBAAC,GAAD,CACEqC,OAAQptB,MAAAA,OAAF,EAAEA,EAAOlU,KACfqtB,KAAMnZ,MAAAA,OAAF,EAAEA,EAAOqU,aAS3By7B,GAAoBxkD,YAAc,sBAClC,SAAekjC,GACZhwB,GAAqBA,EAAM0gB,gBAC5B,CACE7B,kBAAmBg1B,GACnBz0B,iBAAkB00B,GAClBz0B,+BAAgC00B,IALpC,CAOEzC,uNCxZF,MAAM0C,GAAuD,EAC3Dj1C,QAAAA,EACAyC,MAAAA,EACAmd,iBAAAA,EACAS,iBAAAA,EACAH,wBAAAA,EACAF,uBAAAA,EACAi0B,gBAAAA,EACA30B,OAAAA,MAEA,MAAM,SACJ4qB,EADI,aACMgB,EAAczB,WAAW,OAAEnsB,IACnCovB,KAEJ,IAAK1sC,EACH,OAAO,KAGT,MAAMk1C,EAAc,CAClB1iB,EACAhW,EACA23B,EACAC,EACAC,EACAC,KAEA10B,EAAiB,CACf4S,IAAAA,EACAhW,aAAAA,EACA43B,mBAAAA,EACAC,qBAAAA,EACAF,OAAAA,EACAn0C,QAASA,MAAAA,OAAF,EAAEA,EAAShT,IAClBsnD,2BAAAA,KAQEC,EAAuB,CAC3BH,EACAC,KAEAa,EACEh1B,MAAAA,OADS,EACTA,EAAyBsS,IACzBtS,MAAAA,OAFS,EAETA,EAAyB1D,cACzB,EACA43B,EACAC,EACAn0B,MAAAA,OANS,EAMTA,EAAyBo0B,6BA6BvBnb,EAAkBnb,IACtB,IAAI02B,EAAW10C,EAAQ20C,UAAUloD,QAAQ,SAAW,GAAEuxB,KAClDlgB,OAAOlJ,SAAS8tB,SAClBgyB,EAAY,GAAEA,IAAW52C,OAAOlJ,SAAS8tB,OAAOj2B,QAAQ,IAAK,QAG7DioD,EADEA,EAASlnD,QAAQ,eAAiB,EACzBknD,EAASjoD,QAAQ,QAAS,SAE1BioD,EAASjoD,QAAQ,QAAS,WAEvCqR,OAAOlJ,SAASqyB,KAAOytB,GAGzB,OAAI10B,GAA4D,8BAAlCA,EAAuBpzB,OAEjD,kBAAC,GAAD,CACE6mD,cAAezzB,EAAuByzB,cACtCC,QAAS1zB,EAAuB7D,KAChCqW,IAAKtS,MAAAA,OAAF,EAAEA,EAAyBsS,IAC9BmhB,qBAAuB31B,GAASu2B,GAAqB,EAAOv2B,GAC5D41B,aAAc,IAAMW,GAAqB,EAAM,GAC/CV,SAAUxzB,IAKZL,GAA4D,gCAAlCA,EAAuBpzB,QAA2E,IAA/BoT,EAAQ06B,YAAY/uC,OAEjH,oCACE,4BAAKgvC,GAAK78B,OAAO28B,SAASpB,qBAC1B,6BAAO,GAAErZ,EAAuB7D,KAAKC,aAAa4D,EAAuB7D,KAAKG,YAC9E,6BAAM0D,EAAuB7D,KAAKK,cAClC,qCAEI,IAAGwD,EAAuB7D,KAAK6B,QAEnC,yBAAKwP,UAAU,uDACb,4BAAQn/B,KAAK,SAASm/B,UAAU,SAAStB,QAAS,IAAMiN,EAAenZ,EAAuB7D,KAAK6B,OAAQ2c,GAAK78B,OAAO28B,SAASlf,IAChI,4BAAQltB,KAAK,SAASm/B,UAAU,sBAAsBtB,QAAS7L,GAAmBsa,GAAK78B,OAAO28B,SAASrB,UAM3GpZ,IAA8D,gCAAlCA,EAAuBpzB,QAA4CoT,EAAQ06B,YAAY/uC,OAAS,GACzF,2BAAlCq0B,EAAuBpzB,QACW,0CAAlCozB,EAAuBpzB,QAExB,kBAAC,GAAD,CACEqmD,SAAU/yB,MAAAA,OAAF,EAAEA,EAAyBi0B,OACnCnD,eAAgBhxB,EAChBkzB,qBAAsBhzB,MAAAA,OAAF,EAAEA,EAAyBk0B,mBAC/CjB,SAlEQ,KACRjzB,MAAAA,GAAAA,EAAyBk0B,qBACxBl0B,MAAAA,OAAA,EAAAA,EAAyBm0B,sBAAiC,EAC7Da,EACEh1B,MAAAA,OADS,EACTA,EAAyBsS,IACzBtS,MAAAA,OAFS,EAETA,EAAyB1D,cACzB,GACA,EACA,EACA0D,MAAAA,OANS,EAMTA,EAAyBo0B,4BAEtBj0B,KAwDH+yB,UA9EY,KAChB8B,EACEh1B,MAAAA,OADS,EACTA,EAAyBsS,IACzBtS,MAAAA,OAFS,EAETA,EAAyB1D,cACzB,EACA0D,MAAAA,OAJS,EAITA,EAAyBk0B,mBACzBl0B,MAAAA,OALS,EAKTA,EAAyBm0B,qBACzBn0B,MAAAA,OANS,EAMTA,EAAyBo0B,6BAwEvBjB,SAAU,IAAMla,EAAenZ,EAAuB7D,KAAK6B,MAC3Ds1B,WAA+B,OAAnBx1C,OAAO28B,QAAmBz6B,EAAQ40C,aAAe50C,EAAQ60C,eAMzE,qCAE+B,MAA1B70B,GAAmCA,GAA4D,sBAAlCA,EAAuBpzB,SACnF,0BAAM4gC,UAAU,OAAO8C,YAAU,EAACC,SAAU2a,GA3GlC93C,IAChB8hD,EAAY9hD,EAAKo/B,IAAI/6B,OAAQrE,EAAKopB,aAAa/kB,QAAQ,GAAM,EAAO,EAAGrE,EAAKkhD,gCA2GpE,yBAAK9mB,UAAWlQ,EAAOkV,KAAQxS,GAA4D,sBAAlCA,EAAuBpzB,OAAkC,+BAAiC,eACjJ,2BAAO8jC,QAAQ,OACZiK,GAAK78B,OAAO28B,SAASxE,UACrBjW,GAA4D,sBAAlCA,EAAuBpzB,QAChD,0BAAM4gC,UAAU,sBACbmN,GAAK78B,OAAO28B,SAASxB,mBAGzB3b,EAAOkV,KAEJ,0BAAMhF,UAAU,sBACblQ,EAAOkV,IAAI1b,SAGlB,8BACEzoB,KAAK,OACLmqB,GAAG,MACHwY,SAAU1R,GACN4qB,EAAS,MAAO,CAClBlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAASvE,cAEhC/kC,QAAS,CACPsC,MAAO,kCACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAAStE,YAEhCiM,SAAW3uC,GAAU8+B,GAAM9+B,IAAUknC,GAAK78B,OAAO28B,SAAStE,iBAKlE,yBAAK3I,UAAWlQ,EAAOd,aAAe,+BAAiC,eACrE,2BAAOkU,QAAQ,gBACZiK,GAAK78B,OAAO28B,SAASje,cAEvBc,EAAOd,cAEJ,0BAAMgR,UAAU,sBACblQ,EAAOd,aAAa1F,SAG3B,8BACEzoB,KAAK,OACLmqB,GAAG,eACHwY,SAAU1R,GACN4qB,EAAS,eAAgB,CAC3BlI,SAAU,CACRvuC,OAAO,EACPqjB,QAAS6jB,GAAK78B,OAAO28B,SAASpD,wBAEhClmC,QAAS,CACPsC,MAAOq+C,GACPh7B,QAAS6jB,GAAK78B,OAAO28B,SAAS7C,mBAKtC,yBAAKpK,UAAU,eACb,2BAAOkD,QAAQ,YACZiK,GAAK78B,OAAO28B,SAASzB,oBAExB,8BACE3qC,KAAK,WACLmqB,GAAG,WACHwY,SAAU1R,GACN4qB,EAAS,iCAGjB,4BAAQ77C,KAAK,SAASm/B,UAAU,wBAAwBtB,QAAS,IAAM+nB,GAAgB,IAAQtZ,GAAK78B,OAAO28B,SAASvB,kBACpH,yBAAK1L,UAAU,2BACb,4BAAQn/B,KAAK,SAASm/B,UAAWlO,EAAS,4BAA8B,SAAU0R,SAAU1R,GAASqb,GAAK78B,OAAO28B,SAASnoC,MAC1H,4BAAQjE,KAAK,SAASm/B,UAAU,sBAAsBwD,SAAU1R,EAAQ4M,QAAS,IAAMiN,EAAe,IAAKwB,GAAK78B,OAAO28B,SAASrB,UAMtI32B,GACE,yBAAK+qB,UAAU,wBACb,kBAAC,GAAD,CACEqC,OAAQptB,MAAAA,OAAF,EAAEA,EAAOlU,KACfqtB,KAAMnZ,MAAAA,OAAF,EAAEA,EAAOqU,aAS3Bm+B,GAAmBlnD,YAAc,0BACjC,SAAekjC,GACZhwB,GAAqBA,EAAM0gB,gBAC5B,CACE/B,iBAAkBu1B,GAClB90B,iBAAkB00B,IAJtB,CAMEE,ICtPIG,GAAsE,EAC1Ep1C,QAAAA,EACAib,uBAAAA,EACA6D,kBAAAA,EACAY,gBAAAA,MAEA,MAAO21B,EAAcpB,IAAmB9jB,EAAAA,EAAAA,WAAkB,GAC1D,OACE,kBAAC,GAAD,CACEnwB,QAASA,EACT6zB,QAAQ,SAER,kBAAC,GAAD,CACEnF,OAAmB,MAAX1uB,EACRyuB,iBAA6B,MAAXzuB,EAClB4uB,OAAQ,KACN,MAAMh3B,EAAQm6B,KACVn6B,GACFqjB,EAAuBrjB,GACvB8nB,EAAgB5hB,OAAO28B,UAEvB3b,MAIJ,yBAAK0O,UAAU,wBACb,4BACGyE,GAAwBn0B,OAAO28B,QAASz6B,KAG7C,yBAAKwtB,UAAU,wBAEX6nB,EACE,kBAAC,GAAD,CAAqBpB,gBAAiBA,IAEtC,kBAAC,GAAD,CAAoBA,gBAAiBA,QASnDmB,GAA6BrnD,YAAc,+BAC3C,SAAekjC,GACZhwB,GAAqBA,EAAM0gB,gBAC5B,CACE1G,uBAAwB0Z,GACxB7V,kBAAmB8V,GACnBlV,gBAAiB41B,IALrB,CAOEF,ICpDIG,GAAsC,IAC1C,kBAAC,GAAD,KACE,kBAAChqB,GAAD,KACE,kBAACL,GAAD,CAAO70B,OAAK,EAAC7F,KAAK,+BAChB,kBAAC,GAAD,SAMR+kD,GAA+BxnD,YAAc,iCAC7C,YCjBMynD,GAAc71C,SAAS81C,cAAc,0BAE3CC,IAAAA,OACE,oCACE,kBAAC,eAAD,KACE,kBAAC,EAAD,CAAUn3C,MAAOijB,IACf,kBAAC,GAAD,MACA,kBAAC,GAAD,MACA,kBAAC,GAAD,SAINg0B","sources":["webpack://au-app-react-user-registration/webpack/universalModuleDefinition","webpack://au-app-react-user-registration/./node_modules/decode-uri-component/index.js","webpack://au-app-react-user-registration/./node_modules/filter-obj/index.js","webpack://au-app-react-user-registration/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://au-app-react-user-registration/./node_modules/isarray/index.js","webpack://au-app-react-user-registration/./node_modules/path-to-regexp/index.js","webpack://au-app-react-user-registration/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://au-app-react-user-registration/./node_modules/prop-types/index.js","webpack://au-app-react-user-registration/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://au-app-react-user-registration/./node_modules/query-string/index.js","webpack://au-app-react-user-registration/./node_modules/react-is/cjs/react-is.production.min.js","webpack://au-app-react-user-registration/./node_modules/react-is/index.js","webpack://au-app-react-user-registration/./node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","webpack://au-app-react-user-registration/./node_modules/react-redux/node_modules/react-is/index.js","webpack://au-app-react-user-registration/./node_modules/split-on-first/index.js","webpack://au-app-react-user-registration/./node_modules/strict-uri-encode/index.js","webpack://au-app-react-user-registration/external umd {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\",\"umd\":\"react\"}","webpack://au-app-react-user-registration/external umd {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\",\"umd\":\"react-dom\"}","webpack://au-app-react-user-registration/webpack/bootstrap","webpack://au-app-react-user-registration/webpack/runtime/compat get default export","webpack://au-app-react-user-registration/webpack/runtime/define property getters","webpack://au-app-react-user-registration/webpack/runtime/global","webpack://au-app-react-user-registration/webpack/runtime/hasOwnProperty shorthand","webpack://au-app-react-user-registration/webpack/runtime/make namespace object","webpack://au-app-react-user-registration/./node_modules/react-redux/es/components/Context.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/utils/batch.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/utils/Subscription.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/components/Provider.js","webpack://au-app-react-user-registration/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://au-app-react-user-registration/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/components/connectAdvanced.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/utils/shallowEqual.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/utils/bindActionCreators.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/connect/mapStateToProps.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/connect/mergeProps.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/connect/selectorFactory.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/connect/connect.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/hooks/useSelector.js","webpack://au-app-react-user-registration/./node_modules/immer/dist/immer.esm.js","webpack://au-app-react-user-registration/./node_modules/react-redux/es/index.js","webpack://au-app-react-user-registration/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://au-app-react-user-registration/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://au-app-react-user-registration/./node_modules/redux/es/redux.js","webpack://au-app-react-user-registration/./node_modules/redux-thunk/es/index.js","webpack://au-app-react-user-registration/./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js","webpack://au-app-react-user-registration/./src/reducers/nomination.ts","webpack://au-app-react-user-registration/./src/reducers/selfservice.ts","webpack://au-app-react-user-registration/./src/reducers/administrative.ts","webpack://au-app-react-user-registration/./src/store/configureStore.ts","webpack://au-app-react-user-registration/./src/reducers/index.ts","webpack://au-app-react-user-registration/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://au-app-react-user-registration/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://au-app-react-user-registration/./node_modules/resolve-pathname/esm/resolve-pathname.js","webpack://au-app-react-user-registration/./node_modules/tiny-invariant/dist/tiny-invariant.esm.js","webpack://au-app-react-user-registration/./node_modules/history/esm/history.js","webpack://au-app-react-user-registration/./node_modules/mini-create-react-context/dist/esm/index.js","webpack://au-app-react-user-registration/./node_modules/react-router/esm/react-router.js","webpack://au-app-react-user-registration/./node_modules/react-router-dom/esm/react-router-dom.js","webpack://au-app-react-user-registration/./node_modules/@aarhus-university/au-lib-react-components/src/lib/helpers.js","webpack://au-app-react-user-registration/./node_modules/@aarhus-university/au-lib-react-components/src/components/delphinus/AUSpinnerComponent.js","webpack://au-app-react-user-registration/./src/components/common/ErrorComponent.tsx","webpack://au-app-react-user-registration/./src/components/bulk/FileUploadComponent.tsx","webpack://au-app-react-user-registration/./src/components/bulk/ProgressBarComponent.tsx","webpack://au-app-react-user-registration/./src/lib/helpers.ts","webpack://au-app-react-user-registration/./src/components/bulk/FuzzyMatchComponent.tsx","webpack://au-app-react-user-registration/./src/components/bulk/ReceiptComponent.tsx","webpack://au-app-react-user-registration/./src/components/bulk/StepComponent.tsx","webpack://au-app-react-user-registration/./src/components/common/InvalidContextComponent.tsx","webpack://au-app-react-user-registration/./src/components/bulk/ManageComponent.tsx","webpack://au-app-react-user-registration/./src/components/BulkWrapperComponent.tsx","webpack://au-app-react-user-registration/./src/lib/i18n.ts","webpack://au-app-react-user-registration/./src/components/selfservice/SelfServiceFrontComponent.tsx","webpack://au-app-react-user-registration/./node_modules/react-hook-form/dist/index.esm.mjs","webpack://au-app-react-user-registration/./node_modules/@aarhus-university/au-lib-react-components/src/lib/i18n.js","webpack://au-app-react-user-registration/./src/components/selfservice/ReceiptComponent.tsx","webpack://au-app-react-user-registration/./src/components/selfservice/CreateAUIDComponent.tsx","webpack://au-app-react-user-registration/./src/lib/common.ts","webpack://au-app-react-user-registration/./src/components/selfservice/CreateCPRComponent.tsx","webpack://au-app-react-user-registration/./src/components/selfservice/CreateFormComponent.tsx","webpack://au-app-react-user-registration/./src/components/SelfServiceWrapperComponent.tsx","webpack://au-app-react-user-registration/./src/components/administrative/ConfirmAdminComponent.tsx","webpack://au-app-react-user-registration/./src/components/administrative/ExistingUsersAdminComponent.tsx","webpack://au-app-react-user-registration/./src/components/administrative/CreateFormComponent.tsx","webpack://au-app-react-user-registration/./src/components/administrative/CreateCPRComponent.tsx","webpack://au-app-react-user-registration/./src/components/administrative/AdministrativeFrontComponent.tsx","webpack://au-app-react-user-registration/./src/components/AdministrativeWrapperComponent.tsx","webpack://au-app-react-user-registration/./src/app-userregistration.tsx"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"react\"), require(\"react-dom\")) : factory(root[\"React\"], root[\"ReactDOM\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, function(__WEBPACK_EXTERNAL_MODULE__244__, __WEBPACK_EXTERNAL_MODULE__741__) {\nreturn ","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${encode(object.fragmentIdentifier, options)}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__244__;","module.exports = __WEBPACK_EXTERNAL_MODULE__741__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"],\n _excluded2 = [\"reactReduxForwardedRef\"];\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\n selectorFactory is a func that is responsible for returning the selector function used to\n compute new props from state, props, and dispatch. For example:\n export default connectAdvanced((dispatch, options) => (state, props) => ({\n thing: state.things[props.thingId],\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\n }))(YourComponent)\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\n props. Do not use connectAdvanced directly without memoizing results between calls to your\n selector, otherwise the Connect component will re-render on every state or props change.\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n\n for (var key in actionCreators) {\n _loop(key);\n }\n\n return boundActionCreators;\n}","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\n connect is a facade over connectAdvanced. It turns its args into a compatible\n selectorFactory, which has the signature:\n\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\n \n connect passes its args to connectAdvanced as options, which will in turn pass them to\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\n\n selectorFactory returns a final props selector from its mapStateToProps,\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\n mergePropsFactories, and pure args.\n\n The resulting final props selector is called by the Connect component instance whenever\n it receives new props or store state.\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const counter = useSelector(state => state.counter)\n * return
{counter}
\n * }\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?(n.delete(r),n.add(t)):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0),n)}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,r){r&&(b(\"Patches\"),n.u=[],n.s=[],n.v=r)}function O(n){g(n),n.p.forEach(S),n.p=null}function g(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.O=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.g||b(\"ES5\").S(e,r,o),o?(i[Q].P&&(O(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b(\"Patches\").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),O(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o;i(3===e.i?new Set(o):o,(function(r,i){return A(n,e,o,r,i,t)})),x(n,o,!1),t&&n.u&&b(\"Patches\").R(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),r(c)){var v=M(e,c,s&&i&&3!==i.i&&!u(i.D,a)?s.concat(a):void 0);if(f(o,a,v),!r(v))return;e.m=!1}if(t(c)&&!y(c)){if(!e.h.F&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),n.h.F&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function R(n,r,t){var e=s(r)?b(\"MapSet\").N(r,t):v(r)?b(\"MapSet\").T(r,t):n.g?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b(\"ES5\").J(r,t);return(t?t.A:_()).p.push(e),e}function D(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=F(r,c),u.I=!1}else e=F(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function F(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function N(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return\"production\"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];\"production\"!==process.env.NODE_ENV&&f(t),en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return!0;for(var e=0;e1?t-1:0),o=1;o1?t-1:0),o=1;o=0;e--){var i=t[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b(\"Patches\").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,D as current,J as enableAllPlugins,N as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,r as isDraft,t as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n};\r\nvar __defProp = Object.defineProperty;\r\nvar __defProps = Object.defineProperties;\r\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\r\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\r\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\r\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\r\nvar __defNormalProp = function (obj, key, value) { return key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value }) : obj[key] = value; };\r\nvar __spreadValues = function (a, b) {\r\n for (var prop in b || (b = {}))\r\n if (__hasOwnProp.call(b, prop))\r\n __defNormalProp(a, prop, b[prop]);\r\n if (__getOwnPropSymbols)\r\n for (var _i = 0, _c = __getOwnPropSymbols(b); _i < _c.length; _i++) {\r\n var prop = _c[_i];\r\n if (__propIsEnum.call(b, prop))\r\n __defNormalProp(a, prop, b[prop]);\r\n }\r\n return a;\r\n};\r\nvar __spreadProps = function (a, b) { return __defProps(a, __getOwnPropDescs(b)); };\r\nvar __async = function (__this, __arguments, generator) {\r\n return new Promise(function (resolve, reject) {\r\n var fulfilled = function (value) {\r\n try {\r\n step(generator.next(value));\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n };\r\n var rejected = function (value) {\r\n try {\r\n step(generator.throw(value));\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n };\r\n var step = function (x) { return x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); };\r\n step((generator = generator.apply(__this, __arguments)).next());\r\n });\r\n};\r\n// src/index.ts\r\nimport { enableES5 } from \"immer\";\r\nexport * from \"redux\";\r\nimport { default as default2, current as current2, freeze, original, isDraft as isDraft4 } from \"immer\";\r\nimport { createSelector as createSelector2 } from \"reselect\";\r\n// src/createDraftSafeSelector.ts\r\nimport { current, isDraft } from \"immer\";\r\nimport { createSelector } from \"reselect\";\r\nvar createDraftSafeSelector = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var selector = createSelector.apply(void 0, args);\r\n var wrappedSelector = function (value) {\r\n var rest = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n rest[_i - 1] = arguments[_i];\r\n }\r\n return selector.apply(void 0, __spreadArray([isDraft(value) ? current(value) : value], rest));\r\n };\r\n return wrappedSelector;\r\n};\r\n// src/configureStore.ts\r\nimport { createStore, compose as compose2, applyMiddleware, combineReducers } from \"redux\";\r\n// src/devtoolsExtension.ts\r\nimport { compose } from \"redux\";\r\nvar composeWithDevTools = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\r\n if (arguments.length === 0)\r\n return void 0;\r\n if (typeof arguments[0] === \"object\")\r\n return compose;\r\n return compose.apply(null, arguments);\r\n};\r\nvar devToolsEnhancer = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function () {\r\n return function (noop) {\r\n return noop;\r\n };\r\n};\r\n// src/isPlainObject.ts\r\nfunction isPlainObject(value) {\r\n if (typeof value !== \"object\" || value === null)\r\n return false;\r\n var proto = Object.getPrototypeOf(value);\r\n if (proto === null)\r\n return true;\r\n var baseProto = proto;\r\n while (Object.getPrototypeOf(baseProto) !== null) {\r\n baseProto = Object.getPrototypeOf(baseProto);\r\n }\r\n return proto === baseProto;\r\n}\r\n// src/getDefaultMiddleware.ts\r\nimport thunkMiddleware from \"redux-thunk\";\r\n// src/utils.ts\r\nfunction getTimeMeasureUtils(maxDelay, fnName) {\r\n var elapsed = 0;\r\n return {\r\n measureTime: function (fn) {\r\n var started = Date.now();\r\n try {\r\n return fn();\r\n }\r\n finally {\r\n var finished = Date.now();\r\n elapsed += finished - started;\r\n }\r\n },\r\n warnIfExceeded: function () {\r\n if (elapsed > maxDelay) {\r\n console.warn(fnName + \" took \" + elapsed + \"ms, which is more than the warning threshold of \" + maxDelay + \"ms. \\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\\nIt is disabled in production builds, so you don't need to worry about that.\");\r\n }\r\n }\r\n };\r\n}\r\nvar MiddlewareArray = /** @class */ (function (_super) {\r\n __extends(MiddlewareArray, _super);\r\n function MiddlewareArray() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n Object.setPrototypeOf(_this, MiddlewareArray.prototype);\r\n return _this;\r\n }\r\n Object.defineProperty(MiddlewareArray, Symbol.species, {\r\n get: function () {\r\n return MiddlewareArray;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n MiddlewareArray.prototype.concat = function () {\r\n var arr = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n arr[_i] = arguments[_i];\r\n }\r\n return _super.prototype.concat.apply(this, arr);\r\n };\r\n MiddlewareArray.prototype.prepend = function () {\r\n var arr = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n arr[_i] = arguments[_i];\r\n }\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new (MiddlewareArray.bind.apply(MiddlewareArray, __spreadArray([void 0], arr[0].concat(this))))();\r\n }\r\n return new (MiddlewareArray.bind.apply(MiddlewareArray, __spreadArray([void 0], arr.concat(this))))();\r\n };\r\n return MiddlewareArray;\r\n}(Array));\r\n// src/immutableStateInvariantMiddleware.ts\r\nvar isProduction = process.env.NODE_ENV === \"production\";\r\nvar prefix = \"Invariant failed\";\r\nfunction invariant(condition, message) {\r\n if (condition) {\r\n return;\r\n }\r\n if (isProduction) {\r\n throw new Error(prefix);\r\n }\r\n throw new Error(prefix + \": \" + (message || \"\"));\r\n}\r\nfunction stringify(obj, serializer, indent, decycler) {\r\n return JSON.stringify(obj, getSerialize(serializer, decycler), indent);\r\n}\r\nfunction getSerialize(serializer, decycler) {\r\n var stack = [], keys = [];\r\n if (!decycler)\r\n decycler = function (_, value) {\r\n if (stack[0] === value)\r\n return \"[Circular ~]\";\r\n return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\";\r\n };\r\n return function (key, value) {\r\n if (stack.length > 0) {\r\n var thisPos = stack.indexOf(this);\r\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\r\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\r\n if (~stack.indexOf(value))\r\n value = decycler.call(this, key, value);\r\n }\r\n else\r\n stack.push(value);\r\n return serializer == null ? value : serializer.call(this, key, value);\r\n };\r\n}\r\nfunction isImmutableDefault(value) {\r\n return typeof value !== \"object\" || value === null || typeof value === \"undefined\" || Object.isFrozen(value);\r\n}\r\nfunction trackForMutations(isImmutable, ignorePaths, obj) {\r\n var trackedProperties = trackProperties(isImmutable, ignorePaths, obj);\r\n return {\r\n detectMutations: function () {\r\n return detectMutations(isImmutable, ignorePaths, trackedProperties, obj);\r\n }\r\n };\r\n}\r\nfunction trackProperties(isImmutable, ignorePaths, obj, path) {\r\n if (ignorePaths === void 0) { ignorePaths = []; }\r\n if (path === void 0) { path = \"\"; }\r\n var tracked = { value: obj };\r\n if (!isImmutable(obj)) {\r\n tracked.children = {};\r\n for (var key in obj) {\r\n var childPath = path ? path + \".\" + key : key;\r\n if (ignorePaths.length && ignorePaths.indexOf(childPath) !== -1) {\r\n continue;\r\n }\r\n tracked.children[key] = trackProperties(isImmutable, ignorePaths, obj[key], childPath);\r\n }\r\n }\r\n return tracked;\r\n}\r\nfunction detectMutations(isImmutable, ignorePaths, trackedProperty, obj, sameParentRef, path) {\r\n if (ignorePaths === void 0) { ignorePaths = []; }\r\n if (sameParentRef === void 0) { sameParentRef = false; }\r\n if (path === void 0) { path = \"\"; }\r\n var prevObj = trackedProperty ? trackedProperty.value : void 0;\r\n var sameRef = prevObj === obj;\r\n if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\r\n return { wasMutated: true, path: path };\r\n }\r\n if (isImmutable(prevObj) || isImmutable(obj)) {\r\n return { wasMutated: false };\r\n }\r\n var keysToDetect = {};\r\n for (var key in trackedProperty.children) {\r\n keysToDetect[key] = true;\r\n }\r\n for (var key in obj) {\r\n keysToDetect[key] = true;\r\n }\r\n for (var key in keysToDetect) {\r\n var childPath = path ? path + \".\" + key : key;\r\n if (ignorePaths.length && ignorePaths.indexOf(childPath) !== -1) {\r\n continue;\r\n }\r\n var result = detectMutations(isImmutable, ignorePaths, trackedProperty.children[key], obj[key], sameRef, childPath);\r\n if (result.wasMutated) {\r\n return result;\r\n }\r\n }\r\n return { wasMutated: false };\r\n}\r\nfunction createImmutableStateInvariantMiddleware(options) {\r\n if (options === void 0) { options = {}; }\r\n if (process.env.NODE_ENV === \"production\") {\r\n return function () { return function (next) { return function (action) { return next(action); }; }; };\r\n }\r\n var _c = options.isImmutable, isImmutable = _c === void 0 ? isImmutableDefault : _c, ignoredPaths = options.ignoredPaths, _d = options.warnAfter, warnAfter = _d === void 0 ? 32 : _d, ignore = options.ignore;\r\n ignoredPaths = ignoredPaths || ignore;\r\n var track = trackForMutations.bind(null, isImmutable, ignoredPaths);\r\n return function (_c) {\r\n var getState = _c.getState;\r\n var state = getState();\r\n var tracker = track(state);\r\n var result;\r\n return function (next) { return function (action) {\r\n var measureUtils = getTimeMeasureUtils(warnAfter, \"ImmutableStateInvariantMiddleware\");\r\n measureUtils.measureTime(function () {\r\n state = getState();\r\n result = tracker.detectMutations();\r\n tracker = track(state);\r\n invariant(!result.wasMutated, \"A state mutation was detected between dispatches, in the path '\" + (result.path || \"\") + \"'. This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)\");\r\n });\r\n var dispatchedAction = next(action);\r\n measureUtils.measureTime(function () {\r\n state = getState();\r\n result = tracker.detectMutations();\r\n tracker = track(state);\r\n result.wasMutated && invariant(!result.wasMutated, \"A state mutation was detected inside a dispatch, in the path: \" + (result.path || \"\") + \". Take a look at the reducer(s) handling the action \" + stringify(action) + \". (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)\");\r\n });\r\n measureUtils.warnIfExceeded();\r\n return dispatchedAction;\r\n }; };\r\n };\r\n}\r\n// src/serializableStateInvariantMiddleware.ts\r\nfunction isPlain(val) {\r\n var type = typeof val;\r\n return type === \"undefined\" || val === null || type === \"string\" || type === \"boolean\" || type === \"number\" || Array.isArray(val) || isPlainObject(val);\r\n}\r\nfunction findNonSerializableValue(value, path, isSerializable, getEntries, ignoredPaths) {\r\n if (path === void 0) { path = \"\"; }\r\n if (isSerializable === void 0) { isSerializable = isPlain; }\r\n if (ignoredPaths === void 0) { ignoredPaths = []; }\r\n var foundNestedSerializable;\r\n if (!isSerializable(value)) {\r\n return {\r\n keyPath: path || \"\",\r\n value: value\r\n };\r\n }\r\n if (typeof value !== \"object\" || value === null) {\r\n return false;\r\n }\r\n var entries = getEntries != null ? getEntries(value) : Object.entries(value);\r\n var hasIgnoredPaths = ignoredPaths.length > 0;\r\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\r\n var _c = entries_1[_i], key = _c[0], nestedValue = _c[1];\r\n var nestedPath = path ? path + \".\" + key : key;\r\n if (hasIgnoredPaths && ignoredPaths.indexOf(nestedPath) >= 0) {\r\n continue;\r\n }\r\n if (!isSerializable(nestedValue)) {\r\n return {\r\n keyPath: nestedPath,\r\n value: nestedValue\r\n };\r\n }\r\n if (typeof nestedValue === \"object\") {\r\n foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths);\r\n if (foundNestedSerializable) {\r\n return foundNestedSerializable;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction createSerializableStateInvariantMiddleware(options) {\r\n if (options === void 0) { options = {}; }\r\n if (process.env.NODE_ENV === \"production\") {\r\n return function () { return function (next) { return function (action) { return next(action); }; }; };\r\n }\r\n var _c = options.isSerializable, isSerializable = _c === void 0 ? isPlain : _c, getEntries = options.getEntries, _d = options.ignoredActions, ignoredActions = _d === void 0 ? [] : _d, _e = options.ignoredActionPaths, ignoredActionPaths = _e === void 0 ? [\"meta.arg\", \"meta.baseQueryMeta\"] : _e, _f = options.ignoredPaths, ignoredPaths = _f === void 0 ? [] : _f, _g = options.warnAfter, warnAfter = _g === void 0 ? 32 : _g, _h = options.ignoreState, ignoreState = _h === void 0 ? false : _h, _j = options.ignoreActions, ignoreActions = _j === void 0 ? false : _j;\r\n return function (storeAPI) { return function (next) { return function (action) {\r\n if (ignoreActions || ignoredActions.length && ignoredActions.indexOf(action.type) !== -1) {\r\n return next(action);\r\n }\r\n var measureUtils = getTimeMeasureUtils(warnAfter, \"SerializableStateInvariantMiddleware\");\r\n measureUtils.measureTime(function () {\r\n var foundActionNonSerializableValue = findNonSerializableValue(action, \"\", isSerializable, getEntries, ignoredActionPaths);\r\n if (foundActionNonSerializableValue) {\r\n var keyPath = foundActionNonSerializableValue.keyPath, value = foundActionNonSerializableValue.value;\r\n console.error(\"A non-serializable value was detected in an action, in the path: `\" + keyPath + \"`. Value:\", value, \"\\nTake a look at the logic that dispatched this action: \", action, \"\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)\", \"\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)\");\r\n }\r\n });\r\n var result = next(action);\r\n if (!ignoreState) {\r\n measureUtils.measureTime(function () {\r\n var state = storeAPI.getState();\r\n var foundStateNonSerializableValue = findNonSerializableValue(state, \"\", isSerializable, getEntries, ignoredPaths);\r\n if (foundStateNonSerializableValue) {\r\n var keyPath = foundStateNonSerializableValue.keyPath, value = foundStateNonSerializableValue.value;\r\n console.error(\"A non-serializable value was detected in the state, in the path: `\" + keyPath + \"`. Value:\", value, \"\\nTake a look at the reducer(s) handling this action type: \" + action.type + \".\\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)\");\r\n }\r\n });\r\n measureUtils.warnIfExceeded();\r\n }\r\n return result;\r\n }; }; };\r\n}\r\n// src/getDefaultMiddleware.ts\r\nfunction isBoolean(x) {\r\n return typeof x === \"boolean\";\r\n}\r\nfunction curryGetDefaultMiddleware() {\r\n return function curriedGetDefaultMiddleware(options) {\r\n return getDefaultMiddleware(options);\r\n };\r\n}\r\nfunction getDefaultMiddleware(options) {\r\n if (options === void 0) { options = {}; }\r\n var _c = options.thunk, thunk = _c === void 0 ? true : _c, _d = options.immutableCheck, immutableCheck = _d === void 0 ? true : _d, _e = options.serializableCheck, serializableCheck = _e === void 0 ? true : _e;\r\n var middlewareArray = new MiddlewareArray();\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware);\r\n }\r\n else {\r\n middlewareArray.push(thunkMiddleware.withExtraArgument(thunk.extraArgument));\r\n }\r\n }\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (immutableCheck) {\r\n var immutableOptions = {};\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck;\r\n }\r\n middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\r\n }\r\n if (serializableCheck) {\r\n var serializableOptions = {};\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck;\r\n }\r\n middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\r\n }\r\n }\r\n return middlewareArray;\r\n}\r\n// src/configureStore.ts\r\nvar IS_PRODUCTION = process.env.NODE_ENV === \"production\";\r\nfunction configureStore(options) {\r\n var curriedGetDefaultMiddleware = curryGetDefaultMiddleware();\r\n var _c = options || {}, _d = _c.reducer, reducer = _d === void 0 ? void 0 : _d, _e = _c.middleware, middleware = _e === void 0 ? curriedGetDefaultMiddleware() : _e, _f = _c.devTools, devTools = _f === void 0 ? true : _f, _g = _c.preloadedState, preloadedState = _g === void 0 ? void 0 : _g, _h = _c.enhancers, enhancers = _h === void 0 ? void 0 : _h;\r\n var rootReducer;\r\n if (typeof reducer === \"function\") {\r\n rootReducer = reducer;\r\n }\r\n else if (isPlainObject(reducer)) {\r\n rootReducer = combineReducers(reducer);\r\n }\r\n else {\r\n throw new Error('\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');\r\n }\r\n var finalMiddleware = middleware;\r\n if (typeof finalMiddleware === \"function\") {\r\n finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware);\r\n if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\r\n throw new Error(\"when using a middleware builder function, an array of middleware must be returned\");\r\n }\r\n }\r\n if (!IS_PRODUCTION && finalMiddleware.some(function (item) { return typeof item !== \"function\"; })) {\r\n throw new Error(\"each middleware provided to configureStore must be a function\");\r\n }\r\n var middlewareEnhancer = applyMiddleware.apply(void 0, finalMiddleware);\r\n var finalCompose = compose2;\r\n if (devTools) {\r\n finalCompose = composeWithDevTools(__spreadValues({\r\n trace: !IS_PRODUCTION\r\n }, typeof devTools === \"object\" && devTools));\r\n }\r\n var storeEnhancers = [middlewareEnhancer];\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = __spreadArray([middlewareEnhancer], enhancers);\r\n }\r\n else if (typeof enhancers === \"function\") {\r\n storeEnhancers = enhancers(storeEnhancers);\r\n }\r\n var composedEnhancer = finalCompose.apply(void 0, storeEnhancers);\r\n return createStore(rootReducer, preloadedState, composedEnhancer);\r\n}\r\n// src/createAction.ts\r\nfunction createAction(type, prepareAction) {\r\n function actionCreator() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (prepareAction) {\r\n var prepared = prepareAction.apply(void 0, args);\r\n if (!prepared) {\r\n throw new Error(\"prepareAction did not return an object\");\r\n }\r\n return __spreadValues(__spreadValues({\r\n type: type,\r\n payload: prepared.payload\r\n }, \"meta\" in prepared && { meta: prepared.meta }), \"error\" in prepared && { error: prepared.error });\r\n }\r\n return { type: type, payload: args[0] };\r\n }\r\n actionCreator.toString = function () { return \"\" + type; };\r\n actionCreator.type = type;\r\n actionCreator.match = function (action) { return action.type === type; };\r\n return actionCreator;\r\n}\r\nfunction isFSA(action) {\r\n return isPlainObject(action) && typeof action.type === \"string\" && Object.keys(action).every(isValidKey);\r\n}\r\nfunction isValidKey(key) {\r\n return [\"type\", \"payload\", \"error\", \"meta\"].indexOf(key) > -1;\r\n}\r\nfunction getType(actionCreator) {\r\n return \"\" + actionCreator;\r\n}\r\n// src/createReducer.ts\r\nimport createNextState, { isDraft as isDraft2, isDraftable } from \"immer\";\r\n// src/mapBuilders.ts\r\nfunction executeReducerBuilderCallback(builderCallback) {\r\n var actionsMap = {};\r\n var actionMatchers = [];\r\n var defaultCaseReducer;\r\n var builder = {\r\n addCase: function (typeOrActionCreator, reducer) {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (actionMatchers.length > 0) {\r\n throw new Error(\"`builder.addCase` should only be called before calling `builder.addMatcher`\");\r\n }\r\n if (defaultCaseReducer) {\r\n throw new Error(\"`builder.addCase` should only be called before calling `builder.addDefaultCase`\");\r\n }\r\n }\r\n var type = typeof typeOrActionCreator === \"string\" ? typeOrActionCreator : typeOrActionCreator.type;\r\n if (type in actionsMap) {\r\n throw new Error(\"addCase cannot be called with two reducers for the same action type\");\r\n }\r\n actionsMap[type] = reducer;\r\n return builder;\r\n },\r\n addMatcher: function (matcher, reducer) {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (defaultCaseReducer) {\r\n throw new Error(\"`builder.addMatcher` should only be called before calling `builder.addDefaultCase`\");\r\n }\r\n }\r\n actionMatchers.push({ matcher: matcher, reducer: reducer });\r\n return builder;\r\n },\r\n addDefaultCase: function (reducer) {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (defaultCaseReducer) {\r\n throw new Error(\"`builder.addDefaultCase` can only be called once\");\r\n }\r\n }\r\n defaultCaseReducer = reducer;\r\n return builder;\r\n }\r\n };\r\n builderCallback(builder);\r\n return [actionsMap, actionMatchers, defaultCaseReducer];\r\n}\r\n// src/createReducer.ts\r\nfunction isStateFunction(x) {\r\n return typeof x === \"function\";\r\n}\r\nfunction createReducer(initialState, mapOrBuilderCallback, actionMatchers, defaultCaseReducer) {\r\n if (actionMatchers === void 0) { actionMatchers = []; }\r\n var _c = typeof mapOrBuilderCallback === \"function\" ? executeReducerBuilderCallback(mapOrBuilderCallback) : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer], actionsMap = _c[0], finalActionMatchers = _c[1], finalDefaultCaseReducer = _c[2];\r\n var getInitialState;\r\n if (isStateFunction(initialState)) {\r\n getInitialState = function () { return createNextState(initialState(), function () {\r\n }); };\r\n }\r\n else {\r\n var frozenInitialState_1 = createNextState(initialState, function () {\r\n });\r\n getInitialState = function () { return frozenInitialState_1; };\r\n }\r\n function reducer(state, action) {\r\n if (state === void 0) { state = getInitialState(); }\r\n var caseReducers = __spreadArray([\r\n actionsMap[action.type]\r\n ], finalActionMatchers.filter(function (_c) {\r\n var matcher = _c.matcher;\r\n return matcher(action);\r\n }).map(function (_c) {\r\n var reducer2 = _c.reducer;\r\n return reducer2;\r\n }));\r\n if (caseReducers.filter(function (cr) { return !!cr; }).length === 0) {\r\n caseReducers = [finalDefaultCaseReducer];\r\n }\r\n return caseReducers.reduce(function (previousState, caseReducer) {\r\n if (caseReducer) {\r\n if (isDraft2(previousState)) {\r\n var draft = previousState;\r\n var result = caseReducer(draft, action);\r\n if (typeof result === \"undefined\") {\r\n return previousState;\r\n }\r\n return result;\r\n }\r\n else if (!isDraftable(previousState)) {\r\n var result = caseReducer(previousState, action);\r\n if (typeof result === \"undefined\") {\r\n if (previousState === null) {\r\n return previousState;\r\n }\r\n throw Error(\"A case reducer on a non-draftable value must not return undefined\");\r\n }\r\n return result;\r\n }\r\n else {\r\n return createNextState(previousState, function (draft) {\r\n return caseReducer(draft, action);\r\n });\r\n }\r\n }\r\n return previousState;\r\n }, state);\r\n }\r\n reducer.getInitialState = getInitialState;\r\n return reducer;\r\n}\r\n// src/createSlice.ts\r\nfunction getType2(slice, actionKey) {\r\n return slice + \"/\" + actionKey;\r\n}\r\nfunction createSlice(options) {\r\n var name = options.name;\r\n if (!name) {\r\n throw new Error(\"`name` is a required option for createSlice\");\r\n }\r\n var initialState = typeof options.initialState == \"function\" ? options.initialState : default2(options.initialState, function () {\r\n });\r\n var reducers = options.reducers || {};\r\n var reducerNames = Object.keys(reducers);\r\n var sliceCaseReducersByName = {};\r\n var sliceCaseReducersByType = {};\r\n var actionCreators = {};\r\n reducerNames.forEach(function (reducerName) {\r\n var maybeReducerWithPrepare = reducers[reducerName];\r\n var type = getType2(name, reducerName);\r\n var caseReducer;\r\n var prepareCallback;\r\n if (\"reducer\" in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer;\r\n prepareCallback = maybeReducerWithPrepare.prepare;\r\n }\r\n else {\r\n caseReducer = maybeReducerWithPrepare;\r\n }\r\n sliceCaseReducersByName[reducerName] = caseReducer;\r\n sliceCaseReducersByType[type] = caseReducer;\r\n actionCreators[reducerName] = prepareCallback ? createAction(type, prepareCallback) : createAction(type);\r\n });\r\n function buildReducer() {\r\n var _c = typeof options.extraReducers === \"function\" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers], _d = _c[0], extraReducers = _d === void 0 ? {} : _d, _e = _c[1], actionMatchers = _e === void 0 ? [] : _e, _f = _c[2], defaultCaseReducer = _f === void 0 ? void 0 : _f;\r\n var finalCaseReducers = __spreadValues(__spreadValues({}, extraReducers), sliceCaseReducersByType);\r\n return createReducer(initialState, finalCaseReducers, actionMatchers, defaultCaseReducer);\r\n }\r\n var _reducer;\r\n return {\r\n name: name,\r\n reducer: function (state, action) {\r\n if (!_reducer)\r\n _reducer = buildReducer();\r\n return _reducer(state, action);\r\n },\r\n actions: actionCreators,\r\n caseReducers: sliceCaseReducersByName,\r\n getInitialState: function () {\r\n if (!_reducer)\r\n _reducer = buildReducer();\r\n return _reducer.getInitialState();\r\n }\r\n };\r\n}\r\n// src/entities/entity_state.ts\r\nfunction getInitialEntityState() {\r\n return {\r\n ids: [],\r\n entities: {}\r\n };\r\n}\r\nfunction createInitialStateFactory() {\r\n function getInitialState(additionalState) {\r\n if (additionalState === void 0) { additionalState = {}; }\r\n return Object.assign(getInitialEntityState(), additionalState);\r\n }\r\n return { getInitialState: getInitialState };\r\n}\r\n// src/entities/state_selectors.ts\r\nfunction createSelectorsFactory() {\r\n function getSelectors(selectState) {\r\n var selectIds = function (state) { return state.ids; };\r\n var selectEntities = function (state) { return state.entities; };\r\n var selectAll = createDraftSafeSelector(selectIds, selectEntities, function (ids, entities) { return ids.map(function (id) { return entities[id]; }); });\r\n var selectId = function (_, id) { return id; };\r\n var selectById = function (entities, id) { return entities[id]; };\r\n var selectTotal = createDraftSafeSelector(selectIds, function (ids) { return ids.length; });\r\n if (!selectState) {\r\n return {\r\n selectIds: selectIds,\r\n selectEntities: selectEntities,\r\n selectAll: selectAll,\r\n selectTotal: selectTotal,\r\n selectById: createDraftSafeSelector(selectEntities, selectId, selectById)\r\n };\r\n }\r\n var selectGlobalizedEntities = createDraftSafeSelector(selectState, selectEntities);\r\n return {\r\n selectIds: createDraftSafeSelector(selectState, selectIds),\r\n selectEntities: selectGlobalizedEntities,\r\n selectAll: createDraftSafeSelector(selectState, selectAll),\r\n selectTotal: createDraftSafeSelector(selectState, selectTotal),\r\n selectById: createDraftSafeSelector(selectGlobalizedEntities, selectId, selectById)\r\n };\r\n }\r\n return { getSelectors: getSelectors };\r\n}\r\n// src/entities/state_adapter.ts\r\nimport createNextState2, { isDraft as isDraft3 } from \"immer\";\r\nfunction createSingleArgumentStateOperator(mutator) {\r\n var operator = createStateOperator(function (_, state) { return mutator(state); });\r\n return function operation(state) {\r\n return operator(state, void 0);\r\n };\r\n}\r\nfunction createStateOperator(mutator) {\r\n return function operation(state, arg) {\r\n function isPayloadActionArgument(arg2) {\r\n return isFSA(arg2);\r\n }\r\n var runMutator = function (draft) {\r\n if (isPayloadActionArgument(arg)) {\r\n mutator(arg.payload, draft);\r\n }\r\n else {\r\n mutator(arg, draft);\r\n }\r\n };\r\n if (isDraft3(state)) {\r\n runMutator(state);\r\n return state;\r\n }\r\n else {\r\n return createNextState2(state, runMutator);\r\n }\r\n };\r\n}\r\n// src/entities/utils.ts\r\nfunction selectIdValue(entity, selectId) {\r\n var key = selectId(entity);\r\n if (process.env.NODE_ENV !== \"production\" && key === void 0) {\r\n console.warn(\"The entity passed to the `selectId` implementation returned undefined.\", \"You should probably provide your own `selectId` implementation.\", \"The entity that was passed:\", entity, \"The `selectId` implementation:\", selectId.toString());\r\n }\r\n return key;\r\n}\r\nfunction ensureEntitiesArray(entities) {\r\n if (!Array.isArray(entities)) {\r\n entities = Object.values(entities);\r\n }\r\n return entities;\r\n}\r\nfunction splitAddedUpdatedEntities(newEntities, selectId, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n var added = [];\r\n var updated = [];\r\n for (var _i = 0, newEntities_1 = newEntities; _i < newEntities_1.length; _i++) {\r\n var entity = newEntities_1[_i];\r\n var id = selectIdValue(entity, selectId);\r\n if (id in state.entities) {\r\n updated.push({ id: id, changes: entity });\r\n }\r\n else {\r\n added.push(entity);\r\n }\r\n }\r\n return [added, updated];\r\n}\r\n// src/entities/unsorted_state_adapter.ts\r\nfunction createUnsortedStateAdapter(selectId) {\r\n function addOneMutably(entity, state) {\r\n var key = selectIdValue(entity, selectId);\r\n if (key in state.entities) {\r\n return;\r\n }\r\n state.ids.push(key);\r\n state.entities[key] = entity;\r\n }\r\n function addManyMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n for (var _i = 0, newEntities_2 = newEntities; _i < newEntities_2.length; _i++) {\r\n var entity = newEntities_2[_i];\r\n addOneMutably(entity, state);\r\n }\r\n }\r\n function setOneMutably(entity, state) {\r\n var key = selectIdValue(entity, selectId);\r\n if (!(key in state.entities)) {\r\n state.ids.push(key);\r\n }\r\n state.entities[key] = entity;\r\n }\r\n function setManyMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n for (var _i = 0, newEntities_3 = newEntities; _i < newEntities_3.length; _i++) {\r\n var entity = newEntities_3[_i];\r\n setOneMutably(entity, state);\r\n }\r\n }\r\n function setAllMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n state.ids = [];\r\n state.entities = {};\r\n addManyMutably(newEntities, state);\r\n }\r\n function removeOneMutably(key, state) {\r\n return removeManyMutably([key], state);\r\n }\r\n function removeManyMutably(keys, state) {\r\n var didMutate = false;\r\n keys.forEach(function (key) {\r\n if (key in state.entities) {\r\n delete state.entities[key];\r\n didMutate = true;\r\n }\r\n });\r\n if (didMutate) {\r\n state.ids = state.ids.filter(function (id) { return id in state.entities; });\r\n }\r\n }\r\n function removeAllMutably(state) {\r\n Object.assign(state, {\r\n ids: [],\r\n entities: {}\r\n });\r\n }\r\n function takeNewKey(keys, update, state) {\r\n var original2 = state.entities[update.id];\r\n var updated = Object.assign({}, original2, update.changes);\r\n var newKey = selectIdValue(updated, selectId);\r\n var hasNewKey = newKey !== update.id;\r\n if (hasNewKey) {\r\n keys[update.id] = newKey;\r\n delete state.entities[update.id];\r\n }\r\n state.entities[newKey] = updated;\r\n return hasNewKey;\r\n }\r\n function updateOneMutably(update, state) {\r\n return updateManyMutably([update], state);\r\n }\r\n function updateManyMutably(updates, state) {\r\n var newKeys = {};\r\n var updatesPerEntity = {};\r\n updates.forEach(function (update) {\r\n if (update.id in state.entities) {\r\n updatesPerEntity[update.id] = {\r\n id: update.id,\r\n changes: __spreadValues(__spreadValues({}, updatesPerEntity[update.id] ? updatesPerEntity[update.id].changes : null), update.changes)\r\n };\r\n }\r\n });\r\n updates = Object.values(updatesPerEntity);\r\n var didMutateEntities = updates.length > 0;\r\n if (didMutateEntities) {\r\n var didMutateIds = updates.filter(function (update) { return takeNewKey(newKeys, update, state); }).length > 0;\r\n if (didMutateIds) {\r\n state.ids = state.ids.map(function (id) { return newKeys[id] || id; });\r\n }\r\n }\r\n }\r\n function upsertOneMutably(entity, state) {\r\n return upsertManyMutably([entity], state);\r\n }\r\n function upsertManyMutably(newEntities, state) {\r\n var _c = splitAddedUpdatedEntities(newEntities, selectId, state), added = _c[0], updated = _c[1];\r\n updateManyMutably(updated, state);\r\n addManyMutably(added, state);\r\n }\r\n return {\r\n removeAll: createSingleArgumentStateOperator(removeAllMutably),\r\n addOne: createStateOperator(addOneMutably),\r\n addMany: createStateOperator(addManyMutably),\r\n setOne: createStateOperator(setOneMutably),\r\n setMany: createStateOperator(setManyMutably),\r\n setAll: createStateOperator(setAllMutably),\r\n updateOne: createStateOperator(updateOneMutably),\r\n updateMany: createStateOperator(updateManyMutably),\r\n upsertOne: createStateOperator(upsertOneMutably),\r\n upsertMany: createStateOperator(upsertManyMutably),\r\n removeOne: createStateOperator(removeOneMutably),\r\n removeMany: createStateOperator(removeManyMutably)\r\n };\r\n}\r\n// src/entities/sorted_state_adapter.ts\r\nfunction createSortedStateAdapter(selectId, sort) {\r\n var _c = createUnsortedStateAdapter(selectId), removeOne = _c.removeOne, removeMany = _c.removeMany, removeAll = _c.removeAll;\r\n function addOneMutably(entity, state) {\r\n return addManyMutably([entity], state);\r\n }\r\n function addManyMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n var models = newEntities.filter(function (model) { return !(selectIdValue(model, selectId) in state.entities); });\r\n if (models.length !== 0) {\r\n merge(models, state);\r\n }\r\n }\r\n function setOneMutably(entity, state) {\r\n return setManyMutably([entity], state);\r\n }\r\n function setManyMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n if (newEntities.length !== 0) {\r\n merge(newEntities, state);\r\n }\r\n }\r\n function setAllMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n state.entities = {};\r\n state.ids = [];\r\n addManyMutably(newEntities, state);\r\n }\r\n function updateOneMutably(update, state) {\r\n return updateManyMutably([update], state);\r\n }\r\n function takeUpdatedModel(models, update, state) {\r\n if (!(update.id in state.entities)) {\r\n return false;\r\n }\r\n var original2 = state.entities[update.id];\r\n var updated = Object.assign({}, original2, update.changes);\r\n var newKey = selectIdValue(updated, selectId);\r\n delete state.entities[update.id];\r\n models.push(updated);\r\n return newKey !== update.id;\r\n }\r\n function updateManyMutably(updates, state) {\r\n var models = [];\r\n updates.forEach(function (update) { return takeUpdatedModel(models, update, state); });\r\n if (models.length !== 0) {\r\n merge(models, state);\r\n }\r\n }\r\n function upsertOneMutably(entity, state) {\r\n return upsertManyMutably([entity], state);\r\n }\r\n function upsertManyMutably(newEntities, state) {\r\n var _c = splitAddedUpdatedEntities(newEntities, selectId, state), added = _c[0], updated = _c[1];\r\n updateManyMutably(updated, state);\r\n addManyMutably(added, state);\r\n }\r\n function areArraysEqual(a, b) {\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length && i < b.length; i++) {\r\n if (a[i] === b[i]) {\r\n continue;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n function merge(models, state) {\r\n models.forEach(function (model) {\r\n state.entities[selectId(model)] = model;\r\n });\r\n var allEntities = Object.values(state.entities);\r\n allEntities.sort(sort);\r\n var newSortedIds = allEntities.map(selectId);\r\n var ids = state.ids;\r\n if (!areArraysEqual(ids, newSortedIds)) {\r\n state.ids = newSortedIds;\r\n }\r\n }\r\n return {\r\n removeOne: removeOne,\r\n removeMany: removeMany,\r\n removeAll: removeAll,\r\n addOne: createStateOperator(addOneMutably),\r\n updateOne: createStateOperator(updateOneMutably),\r\n upsertOne: createStateOperator(upsertOneMutably),\r\n setOne: createStateOperator(setOneMutably),\r\n setMany: createStateOperator(setManyMutably),\r\n setAll: createStateOperator(setAllMutably),\r\n addMany: createStateOperator(addManyMutably),\r\n updateMany: createStateOperator(updateManyMutably),\r\n upsertMany: createStateOperator(upsertManyMutably)\r\n };\r\n}\r\n// src/entities/create_adapter.ts\r\nfunction createEntityAdapter(options) {\r\n if (options === void 0) { options = {}; }\r\n var _c = __spreadValues({\r\n sortComparer: false,\r\n selectId: function (instance) { return instance.id; }\r\n }, options), selectId = _c.selectId, sortComparer = _c.sortComparer;\r\n var stateFactory = createInitialStateFactory();\r\n var selectorsFactory = createSelectorsFactory();\r\n var stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\r\n return __spreadValues(__spreadValues(__spreadValues({\r\n selectId: selectId,\r\n sortComparer: sortComparer\r\n }, stateFactory), selectorsFactory), stateAdapter);\r\n}\r\n// src/nanoid.ts\r\nvar urlAlphabet = \"ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW\";\r\nvar nanoid = function (size) {\r\n if (size === void 0) { size = 21; }\r\n var id = \"\";\r\n var i = size;\r\n while (i--) {\r\n id += urlAlphabet[Math.random() * 64 | 0];\r\n }\r\n return id;\r\n};\r\n// src/createAsyncThunk.ts\r\nvar commonProperties = [\r\n \"name\",\r\n \"message\",\r\n \"stack\",\r\n \"code\"\r\n];\r\nvar RejectWithValue = /** @class */ (function () {\r\n function RejectWithValue(payload, meta) {\r\n this.payload = payload;\r\n this.meta = meta;\r\n }\r\n return RejectWithValue;\r\n}());\r\nvar FulfillWithMeta = /** @class */ (function () {\r\n function FulfillWithMeta(payload, meta) {\r\n this.payload = payload;\r\n this.meta = meta;\r\n }\r\n return FulfillWithMeta;\r\n}());\r\nvar miniSerializeError = function (value) {\r\n if (typeof value === \"object\" && value !== null) {\r\n var simpleError = {};\r\n for (var _i = 0, commonProperties_1 = commonProperties; _i < commonProperties_1.length; _i++) {\r\n var property = commonProperties_1[_i];\r\n if (typeof value[property] === \"string\") {\r\n simpleError[property] = value[property];\r\n }\r\n }\r\n return simpleError;\r\n }\r\n return { message: String(value) };\r\n};\r\nfunction createAsyncThunk(typePrefix, payloadCreator, options) {\r\n var fulfilled = createAction(typePrefix + \"/fulfilled\", function (payload, requestId, arg, meta) { return ({\r\n payload: payload,\r\n meta: __spreadProps(__spreadValues({}, meta || {}), {\r\n arg: arg,\r\n requestId: requestId,\r\n requestStatus: \"fulfilled\"\r\n })\r\n }); });\r\n var pending = createAction(typePrefix + \"/pending\", function (requestId, arg, meta) { return ({\r\n payload: void 0,\r\n meta: __spreadProps(__spreadValues({}, meta || {}), {\r\n arg: arg,\r\n requestId: requestId,\r\n requestStatus: \"pending\"\r\n })\r\n }); });\r\n var rejected = createAction(typePrefix + \"/rejected\", function (error, requestId, arg, payload, meta) { return ({\r\n payload: payload,\r\n error: (options && options.serializeError || miniSerializeError)(error || \"Rejected\"),\r\n meta: __spreadProps(__spreadValues({}, meta || {}), {\r\n arg: arg,\r\n requestId: requestId,\r\n rejectedWithValue: !!payload,\r\n requestStatus: \"rejected\",\r\n aborted: (error == null ? void 0 : error.name) === \"AbortError\",\r\n condition: (error == null ? void 0 : error.name) === \"ConditionError\"\r\n })\r\n }); });\r\n var displayedWarning = false;\r\n var AC = typeof AbortController !== \"undefined\" ? AbortController : /** @class */ (function () {\r\n function class_1() {\r\n this.signal = {\r\n aborted: false,\r\n addEventListener: function () {\r\n },\r\n dispatchEvent: function () {\r\n return false;\r\n },\r\n onabort: function () {\r\n },\r\n removeEventListener: function () {\r\n }\r\n };\r\n }\r\n class_1.prototype.abort = function () {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (!displayedWarning) {\r\n displayedWarning = true;\r\n console.info(\"This platform does not implement AbortController. \\nIf you want to use the AbortController to react to `abort` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.\");\r\n }\r\n }\r\n };\r\n return class_1;\r\n }());\r\n function actionCreator(arg) {\r\n return function (dispatch, getState, extra) {\r\n var requestId = (options == null ? void 0 : options.idGenerator) ? options.idGenerator(arg) : nanoid();\r\n var abortController = new AC();\r\n var abortReason;\r\n var abortedPromise = new Promise(function (_, reject) { return abortController.signal.addEventListener(\"abort\", function () { return reject({ name: \"AbortError\", message: abortReason || \"Aborted\" }); }); });\r\n var started = false;\r\n function abort(reason) {\r\n if (started) {\r\n abortReason = reason;\r\n abortController.abort();\r\n }\r\n }\r\n var promise = function () {\r\n return __async(this, null, function () {\r\n var _a, _b, finalAction, conditionResult, err_1, skipDispatch;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _c.trys.push([0, 4, , 5]);\r\n conditionResult = (_a = options == null ? void 0 : options.condition) == null ? void 0 : _a.call(options, arg, { getState: getState, extra: extra });\r\n if (!isThenable(conditionResult)) return [3 /*break*/, 2];\r\n return [4 /*yield*/, conditionResult];\r\n case 1:\r\n conditionResult = _c.sent();\r\n _c.label = 2;\r\n case 2:\r\n if (conditionResult === false) {\r\n throw {\r\n name: \"ConditionError\",\r\n message: \"Aborted due to condition callback returning false.\"\r\n };\r\n }\r\n started = true;\r\n dispatch(pending(requestId, arg, (_b = options == null ? void 0 : options.getPendingMeta) == null ? void 0 : _b.call(options, { requestId: requestId, arg: arg }, { getState: getState, extra: extra })));\r\n return [4 /*yield*/, Promise.race([\r\n abortedPromise,\r\n Promise.resolve(payloadCreator(arg, {\r\n dispatch: dispatch,\r\n getState: getState,\r\n extra: extra,\r\n requestId: requestId,\r\n signal: abortController.signal,\r\n rejectWithValue: function (value, meta) {\r\n return new RejectWithValue(value, meta);\r\n },\r\n fulfillWithValue: function (value, meta) {\r\n return new FulfillWithMeta(value, meta);\r\n }\r\n })).then(function (result) {\r\n if (result instanceof RejectWithValue) {\r\n throw result;\r\n }\r\n if (result instanceof FulfillWithMeta) {\r\n return fulfilled(result.payload, requestId, arg, result.meta);\r\n }\r\n return fulfilled(result, requestId, arg);\r\n })\r\n ])];\r\n case 3:\r\n finalAction = _c.sent();\r\n return [3 /*break*/, 5];\r\n case 4:\r\n err_1 = _c.sent();\r\n finalAction = err_1 instanceof RejectWithValue ? rejected(null, requestId, arg, err_1.payload, err_1.meta) : rejected(err_1, requestId, arg);\r\n return [3 /*break*/, 5];\r\n case 5:\r\n skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && finalAction.meta.condition;\r\n if (!skipDispatch) {\r\n dispatch(finalAction);\r\n }\r\n return [2 /*return*/, finalAction];\r\n }\r\n });\r\n });\r\n }();\r\n return Object.assign(promise, {\r\n abort: abort,\r\n requestId: requestId,\r\n arg: arg,\r\n unwrap: function () {\r\n return promise.then(unwrapResult);\r\n }\r\n });\r\n };\r\n }\r\n return Object.assign(actionCreator, {\r\n pending: pending,\r\n rejected: rejected,\r\n fulfilled: fulfilled,\r\n typePrefix: typePrefix\r\n });\r\n}\r\nfunction unwrapResult(action) {\r\n if (action.meta && action.meta.rejectedWithValue) {\r\n throw action.payload;\r\n }\r\n if (action.error) {\r\n throw action.error;\r\n }\r\n return action.payload;\r\n}\r\nfunction isThenable(value) {\r\n return value !== null && typeof value === \"object\" && typeof value.then === \"function\";\r\n}\r\n// src/tsHelpers.ts\r\nvar hasMatchFunction = function (v) {\r\n return v && typeof v.match === \"function\";\r\n};\r\n// src/matchers.ts\r\nvar matches = function (matcher, action) {\r\n if (hasMatchFunction(matcher)) {\r\n return matcher.match(action);\r\n }\r\n else {\r\n return matcher(action);\r\n }\r\n};\r\nfunction isAnyOf() {\r\n var matchers = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n matchers[_i] = arguments[_i];\r\n }\r\n return function (action) {\r\n return matchers.some(function (matcher) { return matches(matcher, action); });\r\n };\r\n}\r\nfunction isAllOf() {\r\n var matchers = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n matchers[_i] = arguments[_i];\r\n }\r\n return function (action) {\r\n return matchers.every(function (matcher) { return matches(matcher, action); });\r\n };\r\n}\r\nfunction hasExpectedRequestMetadata(action, validStatus) {\r\n if (!action || !action.meta)\r\n return false;\r\n var hasValidRequestId = typeof action.meta.requestId === \"string\";\r\n var hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;\r\n return hasValidRequestId && hasValidRequestStatus;\r\n}\r\nfunction isAsyncThunkArray(a) {\r\n return typeof a[0] === \"function\" && \"pending\" in a[0] && \"fulfilled\" in a[0] && \"rejected\" in a[0];\r\n}\r\nfunction isPending() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n if (asyncThunks.length === 0) {\r\n return function (action) { return hasExpectedRequestMetadata(action, [\"pending\"]); };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isPending()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.pending; });\r\n var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n return combinedMatcher(action);\r\n };\r\n}\r\nfunction isRejected() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n if (asyncThunks.length === 0) {\r\n return function (action) { return hasExpectedRequestMetadata(action, [\"rejected\"]); };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isRejected()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.rejected; });\r\n var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n return combinedMatcher(action);\r\n };\r\n}\r\nfunction isRejectedWithValue() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n var hasFlag = function (action) {\r\n return action && action.meta && action.meta.rejectedWithValue;\r\n };\r\n if (asyncThunks.length === 0) {\r\n return function (action) {\r\n var combinedMatcher = isAllOf(isRejected.apply(void 0, asyncThunks), hasFlag);\r\n return combinedMatcher(action);\r\n };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isRejectedWithValue()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var combinedMatcher = isAllOf(isRejected.apply(void 0, asyncThunks), hasFlag);\r\n return combinedMatcher(action);\r\n };\r\n}\r\nfunction isFulfilled() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n if (asyncThunks.length === 0) {\r\n return function (action) { return hasExpectedRequestMetadata(action, [\"fulfilled\"]); };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isFulfilled()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.fulfilled; });\r\n var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n return combinedMatcher(action);\r\n };\r\n}\r\nfunction isAsyncThunkAction() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n if (asyncThunks.length === 0) {\r\n return function (action) { return hasExpectedRequestMetadata(action, [\"pending\", \"fulfilled\", \"rejected\"]); };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isAsyncThunkAction()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var matchers = [];\r\n for (var _i = 0, asyncThunks_1 = asyncThunks; _i < asyncThunks_1.length; _i++) {\r\n var asyncThunk = asyncThunks_1[_i];\r\n matchers.push(asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled);\r\n }\r\n var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n return combinedMatcher(action);\r\n };\r\n}\r\n// src/index.ts\r\nenableES5();\r\nexport { MiddlewareArray, configureStore, createAction, createAsyncThunk, createDraftSafeSelector, createEntityAdapter, createImmutableStateInvariantMiddleware, default2 as createNextState, createReducer, createSelector2 as createSelector, createSerializableStateInvariantMiddleware, createSlice, current2 as current, findNonSerializableValue, freeze, getDefaultMiddleware, getType, isAllOf, isAnyOf, isAsyncThunkAction, isDraft4 as isDraft, isFulfilled, isImmutableDefault, isPending, isPlain, isPlainObject, isRejected, isRejectedWithValue, miniSerializeError, nanoid, original, unwrapResult };\r\n//# sourceMappingURL=redux-toolkit.esm.js.map","/* eslint-disable max-len */\r\n/* eslint-env browser */\r\n/* eslint no-plusplus: 0 */\r\nimport {\r\n createSlice, PayloadAction, createAsyncThunk, // SerializedError,\r\n} from '@reduxjs/toolkit';\r\n\r\ninterface AppState {\r\n excelError: string,\r\n uploading: boolean,\r\n context: ISignupContext | null | undefined,\r\n nominees: INominee[],\r\n fuzzies: ISignupUser[],\r\n created: INominee[],\r\n errors: (INominee | ISignupUser)[],\r\n step: number,\r\n}\r\n\r\nconst initialState: AppState = {\r\n excelError: '',\r\n uploading: false,\r\n context: null,\r\n nominees: [],\r\n fuzzies: [],\r\n created: [],\r\n errors: [],\r\n step: 0,\r\n};\r\n\r\nconst parseDate = (input: string): Date => {\r\n const splitted = input.split('/');\r\n // eslint-disable-next-line max-len\r\n return new Date(Date.UTC(parseInt(splitted[2], 10), parseInt(splitted[1], 10) - 1, parseInt(splitted[0], 10)));\r\n};\r\n\r\nexport const getRegistrationContext = createAsyncThunk(\r\n 'nomination/getSignupContext',\r\n async (contextName: string, { rejectWithValue }) => {\r\n const url = `${window.userRegistrationApiUri}/getregistrationcontext?contextName=${contextName}`;\r\n const response = await fetch(url);\r\n\r\n if (!response.ok) {\r\n const error = await response.json();\r\n return rejectWithValue(error);\r\n }\r\n\r\n const json = await response.json();\r\n return json;\r\n },\r\n);\r\n\r\nexport const getNominees = createAsyncThunk(\r\n 'nomination/getNominees',\r\n async (payload: IExcelUploadPayload, { rejectWithValue }) => {\r\n const { data, context } = payload;\r\n const url = `${window.userRegistrationApiUri}/UploadExcel?contextName=${context}`;\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n body: data,\r\n credentials: 'include',\r\n });\r\n\r\n if (!response.ok) {\r\n const error = await response.text();\r\n return rejectWithValue(error);\r\n }\r\n\r\n const json = await response.json();\r\n return json;\r\n },\r\n);\r\n\r\nconst setUserCreation = (payload: INominee[], context: string): INominee[] => {\r\n const nominees: INominee[] = [];\r\n const serializedPayloads: string[] = [];\r\n payload.forEach((nominee) => {\r\n const n = { ...nominee };\r\n let genderEnum = 2;\r\n if (n.gender === 'Male') {\r\n genderEnum = 0;\r\n }\r\n if (n.gender === 'Female') {\r\n genderEnum = 1;\r\n }\r\n const data: IBulkSignupPayload = {\r\n context,\r\n user: {\r\n firstName: n.firstNames,\r\n lastName: n.lastName,\r\n dateOfBirth: parseDate(n.dateOfBirth),\r\n gender: genderEnum,\r\n privateEmail: n.emailAddress,\r\n preferredLanguage: 'en', // Her er måske lige noget?,\r\n nationality: null,\r\n organizationUnit: null,\r\n title: null,\r\n },\r\n };\r\n n.onProgress = async (): Promise => {\r\n const url = `${window.userRegistrationApiUri}/BulkSignup`;\r\n const serializedPayload = JSON.stringify({\r\n firstName: data.user.firstName,\r\n lastName: data.user.lastName,\r\n privateEmail: data.user.privateEmail,\r\n gender: data.user.gender,\r\n dateOfBirth: data.user.dateOfBirth,\r\n });\r\n if (!serializedPayloads.includes(serializedPayload)) {\r\n serializedPayloads.push(serializedPayload);\r\n } else {\r\n throw Error('Payload for bulk signup already added');\r\n }\r\n\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n });\r\n\r\n if (!response.ok) {\r\n const error = await response.text();\r\n throw Error(error);\r\n }\r\n\r\n const json = await response.json();\r\n return json;\r\n };\r\n\r\n nominees.push(n);\r\n });\r\n return nominees;\r\n};\r\n\r\nconst nominationSlice = createSlice({\r\n name: 'nomination',\r\n initialState,\r\n reducers: {\r\n setNominees(state, action: PayloadAction) {\r\n const newState = state;\r\n newState.nominees = action.payload.filter(\r\n (n) => !newState.errors.filter(\r\n (e) => typeof (e as INominee).id !== 'undefined',\r\n ).map(\r\n (e) => (e as INominee).id,\r\n ).includes(n.id),\r\n ); // I det tilfælde, at der er fundet dubletter i regnearket ved fuzzy matching\r\n // er disse blevet tilfældet errors - så vi tjekker for, om der ligger en INominee\r\n // i errors, der ikke skal sættes i den nye state\r\n // eslint-disable-next-line max-len\r\n const fuzzyMatched = newState.nominees.filter((n) => n.fuzzyMatchedUsers && n.fuzzyMatchedUsers.length > 0);\r\n if (fuzzyMatched.length || newState.nominees.length === fuzzyMatched.length) {\r\n newState.step = 2;\r\n } else {\r\n const nominees: INominee[] = setUserCreation(newState.nominees, newState.context?.key as string);\r\n newState.nominees = nominees;\r\n newState.step = 3;\r\n }\r\n return newState;\r\n },\r\n keepNominee(state, action: PayloadAction) {\r\n const newState = state;\r\n const nominee = newState.nominees.find((n) => n.id === action.payload);\r\n if (nominee) {\r\n nominee.fuzzyMatchedUsers.forEach((fm) => {\r\n const alreadyAddedIndex = newState.fuzzies.findIndex((f) => f.auid === fm.auid);\r\n if (alreadyAddedIndex > -1) {\r\n newState.fuzzies.splice(alreadyAddedIndex, 1);\r\n }\r\n });\r\n nominee.create = true;\r\n // nominee.skip = false;\r\n }\r\n return newState;\r\n },\r\n skipNominee(state, action: PayloadAction) {\r\n const newState = state;\r\n const nominee = newState.nominees.find((n) => n.id === action.payload);\r\n if (nominee) {\r\n nominee.create = false;\r\n nominee.skip = true;\r\n }\r\n return newState;\r\n },\r\n acceptFuzzyMatch(state, action: PayloadAction) {\r\n const newState = state;\r\n const nominee = newState.nominees.find((n) => n.id === action.payload.id);\r\n if (nominee) {\r\n const fuzzy = nominee.fuzzyMatchedUsers.find((f) => f.auid === action.payload.auid);\r\n if (fuzzy) {\r\n if (fuzzy.privateEmail !== nominee.emailAddress) {\r\n fuzzy.privateEmail = nominee.emailAddress; // MOF-18\r\n fuzzy.overrideMail = true;\r\n }\r\n nominee.fuzzyMatchedUsers.forEach((fm) => {\r\n const alreadyAddedIndex = newState.fuzzies.findIndex((f) => f.auid === fm.auid);\r\n if (alreadyAddedIndex > -1) {\r\n newState.fuzzies.splice(alreadyAddedIndex, 1);\r\n }\r\n });\r\n newState.fuzzies.push(fuzzy);\r\n }\r\n nominee.create = false;\r\n nominee.skip = false;\r\n }\r\n return newState;\r\n },\r\n // eslint-disable-next-line max-len\r\n setUserCreationAndRoleAssignment(state, action: PayloadAction) {\r\n const newState = state;\r\n const fuzzies: ISignupUser[] = [];\r\n action.payload.fuzzies.forEach((fuzzy) => {\r\n const f = { ...fuzzy };\r\n const data: IRoleAssignPayload = {\r\n context: newState.context?.key || '',\r\n auId: f.auid as number,\r\n sendMail: true,\r\n overrideMail: fuzzy.overrideMail,\r\n privateEmail: fuzzy.privateEmail,\r\n };\r\n f.onProgress = async (): Promise => {\r\n const url = `${window.userRegistrationApiUri}/RoleAssign`;\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n });\r\n\r\n if (!response.ok) {\r\n const error = await response.text();\r\n throw Error(error);\r\n }\r\n\r\n const json = await response.json();\r\n return json;\r\n };\r\n\r\n fuzzies.push(f);\r\n });\r\n\r\n const nominees: INominee[] = setUserCreation(action.payload.nominees.filter((n) => n.create), newState.context?.key as string);\r\n\r\n newState.step = 3;\r\n newState.fuzzies = fuzzies;\r\n newState.nominees = nominees;\r\n return newState;\r\n },\r\n setCreated(state, action: PayloadAction) {\r\n const newState = state;\r\n newState.created = action.payload;\r\n newState.step = 4;\r\n return newState;\r\n },\r\n startOver(state, action: PayloadAction) {\r\n const newState = state;\r\n newState.step = action.payload;\r\n if (newState.step === 0) {\r\n newState.nominees = [];\r\n newState.fuzzies = [];\r\n newState.created = [];\r\n newState.errors = [];\r\n }\r\n return newState;\r\n },\r\n addToErrors(state, action: PayloadAction) {\r\n const newState = state;\r\n const errorAsNominee = action.payload as INominee;\r\n const errorAsFuzzy = action.payload as ISignupUser;\r\n if (errorAsNominee.id) {\r\n const index = newState.nominees.findIndex((n) => n.id === errorAsNominee.id);\r\n newState.nominees.splice(index, 1);\r\n newState.errors.push(errorAsNominee);\r\n }\r\n if (errorAsFuzzy.auid) {\r\n const index = newState.fuzzies.findIndex((f) => f.auid === errorAsFuzzy.auid);\r\n newState.fuzzies.splice(index, 1);\r\n newState.errors.push(errorAsFuzzy);\r\n }\r\n\r\n return newState;\r\n },\r\n setInvalidContext(state) {\r\n const newState = state;\r\n newState.context = undefined;\r\n return newState;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(getRegistrationContext.fulfilled, (state, action: PayloadAction) => {\r\n const newState = state;\r\n newState.context = action.payload;\r\n });\r\n builder.addCase(getRegistrationContext.rejected, (state) => {\r\n const newState = state;\r\n newState.context = undefined;\r\n });\r\n builder.addCase(getNominees.pending, (state) => {\r\n const newState = state;\r\n newState.uploading = true;\r\n });\r\n builder.addCase(getNominees.fulfilled, (state, action: PayloadAction) => {\r\n const newState = state;\r\n const nominees: INominee[] = [];\r\n\r\n const serializedPayloads: string[] = [];\r\n action.payload.forEach((nominee) => {\r\n const p = { ...nominee };\r\n const data: IFuzzyMatchPayload = {\r\n context: newState.context?.key || '',\r\n nominee: p,\r\n };\r\n // eslint-disable-next-line func-names\r\n p.onProgress = async (): Promise => {\r\n const url = `${window.userRegistrationApiUri}/FuzzyMatch?id=${data.nominee.id}`;\r\n const serializedPayload = JSON.stringify({\r\n firstNames: data.nominee.firstNames,\r\n lastName: data.nominee.lastName,\r\n emailAddress: data.nominee.emailAddress,\r\n gender: data.nominee.gender,\r\n dateOfBirth: data.nominee.dateOfBirth,\r\n });\r\n if (!serializedPayloads.includes(serializedPayload)) {\r\n serializedPayloads.push(serializedPayload);\r\n } else {\r\n throw Error('Payload for fuzzy match already added');\r\n }\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n });\r\n\r\n if (!response.ok) {\r\n const error = await response.text();\r\n throw Error(error);\r\n }\r\n\r\n const json = await response.json();\r\n return json;\r\n };\r\n nominees.push(p);\r\n });\r\n\r\n newState.nominees = nominees;\r\n newState.step = 1;\r\n newState.uploading = false;\r\n return newState;\r\n });\r\n builder.addCase(getNominees.rejected, (state, action) => {\r\n const newState = state;\r\n newState.excelError = action.payload as string;\r\n newState.uploading = false;\r\n return newState;\r\n });\r\n },\r\n});\r\n\r\nexport const {\r\n setNominees,\r\n keepNominee,\r\n skipNominee,\r\n acceptFuzzyMatch,\r\n setUserCreationAndRoleAssignment,\r\n setCreated,\r\n startOver,\r\n addToErrors,\r\n setInvalidContext,\r\n} = nominationSlice.actions;\r\n\r\nexport default nominationSlice.reducer;\r\n","/* eslint-disable max-len */\r\n/* eslint-env browser */\r\n/* eslint no-plusplus: 0 */\r\nimport {\r\n createSlice, PayloadAction, createAsyncThunk,\r\n} from '@reduxjs/toolkit';\r\n\r\ninterface AppState {\r\n context: ISignupContext | null | undefined,\r\n userSignupByLdapResult: IUserSignupByCredentialsResult | null,\r\n userSignupByCprResult: IUserSignupByCprResult | null,\r\n userSignupByFormResult: IUserSignupByFormResult | null,\r\n uiBusy: boolean,\r\n error: IError | null,\r\n}\r\n\r\nconst initialState: AppState = {\r\n context: null,\r\n userSignupByLdapResult: null,\r\n userSignupByCprResult: null,\r\n userSignupByFormResult: null,\r\n uiBusy: false,\r\n error: null,\r\n};\r\n\r\nexport const getRegistrationContext = createAsyncThunk(\r\n 'selfservice/getRegistrationContext',\r\n async (contextName: string, { rejectWithValue }) => {\r\n const url = `${window.userRegistrationApiUri}/getregistrationcontext?contextName=${contextName}`;\r\n const response = await fetch(url);\r\n\r\n if (!response.ok) {\r\n const error = await response.json();\r\n return rejectWithValue(error);\r\n }\r\n\r\n const json = await response.json();\r\n return json;\r\n },\r\n);\r\n\r\nexport const userSignupByLdap = createAsyncThunk(\r\n 'selfservice/userSignupByLdap',\r\n async (payload: IUserSignupByLdapPayload, { rejectWithValue }) => {\r\n const url = `${window.userRegistrationApiUri}/usersignupbycredentials`;\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n body: JSON.stringify(payload),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n });\r\n\r\n if (!response.ok) {\r\n const error = await response.json();\r\n return rejectWithValue(error);\r\n }\r\n\r\n const json = await response.json();\r\n return json;\r\n },\r\n);\r\n\r\nexport const userSignupByCpr = createAsyncThunk(\r\n 'selfservice/userSignupByCpr',\r\n async (payload: IUserSignupByCprPayload, { rejectWithValue }) => {\r\n const url = `${window.userRegistrationApiUri}/usersignupbycpr`;\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n body: JSON.stringify(payload),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n });\r\n\r\n if (!response.ok) {\r\n const error = await response.json();\r\n return rejectWithValue(error);\r\n }\r\n\r\n const json = await response.json();\r\n return json;\r\n },\r\n);\r\n\r\nexport const userSignupByForm = createAsyncThunk(\r\n 'selfservice/userSignupByForm',\r\n async (payload: IUserSignupByFormPayload, { rejectWithValue }) => {\r\n const url = `${window.userRegistrationApiUri}/usersignupbyform`;\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n body: JSON.stringify(payload),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n });\r\n\r\n if (!response.ok) {\r\n const error = await response.json();\r\n return rejectWithValue(error);\r\n }\r\n\r\n const json = await response.json();\r\n return json;\r\n },\r\n);\r\n\r\nconst selfserviceSlice = createSlice({\r\n name: 'selfservice',\r\n initialState,\r\n reducers: {\r\n setInvalidContext(state) {\r\n const newState = state;\r\n newState.context = undefined;\r\n return newState;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(getRegistrationContext.fulfilled, (state, action: PayloadAction) => {\r\n const newState = state;\r\n newState.context = action.payload;\r\n });\r\n builder.addCase(getRegistrationContext.rejected, (state) => {\r\n const newState = state;\r\n newState.context = undefined;\r\n });\r\n builder.addCase(userSignupByLdap.pending, (state) => {\r\n const newState = state;\r\n newState.uiBusy = true;\r\n });\r\n builder.addCase(userSignupByLdap.fulfilled, (state, action: PayloadAction) => {\r\n const newState = state;\r\n newState.uiBusy = false;\r\n newState.userSignupByLdapResult = action.payload;\r\n });\r\n builder.addCase(userSignupByLdap.rejected, (state, action) => {\r\n const newState = state;\r\n const {\r\n type, title, detail, status,\r\n } = action.payload as Record;\r\n newState.error = {\r\n name: type,\r\n message: title,\r\n code: status,\r\n stack: detail,\r\n };\r\n newState.uiBusy = false;\r\n });\r\n builder.addCase(userSignupByCpr.pending, (state) => {\r\n const newState = state;\r\n newState.uiBusy = true;\r\n });\r\n builder.addCase(userSignupByCpr.fulfilled, (state, action: PayloadAction) => {\r\n const newState = state;\r\n newState.uiBusy = false;\r\n newState.userSignupByCprResult = action.payload;\r\n });\r\n builder.addCase(userSignupByCpr.rejected, (state, action) => {\r\n const newState = state;\r\n const {\r\n type, title, detail, status,\r\n } = action.payload as Record;\r\n newState.error = {\r\n name: type,\r\n message: title,\r\n code: status,\r\n stack: detail,\r\n };\r\n newState.uiBusy = false;\r\n });\r\n builder.addCase(userSignupByForm.pending, (state) => {\r\n const newState = state;\r\n newState.uiBusy = true;\r\n });\r\n builder.addCase(userSignupByForm.fulfilled, (state, action: PayloadAction) => {\r\n const newState = state;\r\n newState.uiBusy = false;\r\n newState.userSignupByFormResult = action.payload;\r\n });\r\n builder.addCase(userSignupByForm.rejected, (state, action) => {\r\n const newState = state;\r\n const {\r\n type, title, detail, status,\r\n } = action.payload as Record;\r\n newState.error = {\r\n name: type,\r\n message: title,\r\n code: status,\r\n stack: detail,\r\n };\r\n newState.uiBusy = false;\r\n });\r\n },\r\n});\r\n\r\nexport const {\r\n setInvalidContext,\r\n} = selfserviceSlice.actions;\r\n\r\nexport default selfserviceSlice.reducer;\r\n","/* eslint-disable max-len */\r\n/* eslint-env browser */\r\n/* eslint no-plusplus: 0 */\r\nimport {\r\n createSlice, PayloadAction, createAsyncThunk,\r\n} from '@reduxjs/toolkit';\r\n\r\ninterface AppState {\r\n context: ISignupContext | null | undefined,\r\n adminSignupByCprResult: IAdminSignupByCprResult | null,\r\n adminSignupByFormResult: IAdminSignupByFormResult | null,\r\n adminSignupByCprRequest: IAdminSignupByCprPayload | null,\r\n adminSignupByFormRequest: IAdminSignupByFormPayload | null,\r\n uiBusy: boolean,\r\n error: IError | null,\r\n countryCodes: ICountryCode[],\r\n}\r\n\r\nconst initialState: AppState = {\r\n context: null,\r\n adminSignupByCprResult: null,\r\n adminSignupByFormResult: null,\r\n adminSignupByCprRequest: null,\r\n adminSignupByFormRequest: null,\r\n uiBusy: false,\r\n error: null,\r\n countryCodes: [],\r\n};\r\n\r\nexport const getCountryCodes = createAsyncThunk(\r\n 'administrative/getCountryCodes',\r\n async (lang: string, { rejectWithValue }) => {\r\n const url = `${window.userRegistrationApiUri}/getcountrycodes?lang=${lang}`;\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n body: JSON.stringify({}),\r\n });\r\n\r\n if (!response.ok) {\r\n const error = await response.json();\r\n return rejectWithValue(error);\r\n }\r\n\r\n const json = await response.json();\r\n return json;\r\n },\r\n);\r\n\r\nexport const getRegistrationContext = createAsyncThunk(\r\n 'administrative/getRegistrationContext',\r\n async (contextName: string, { rejectWithValue }) => {\r\n const url = `${window.userRegistrationApiUri}/getregistrationcontext?contextName=${contextName}`;\r\n const response = await fetch(url);\r\n\r\n if (!response.ok) {\r\n const error = await response.json();\r\n return rejectWithValue(error);\r\n }\r\n\r\n const json = await response.json();\r\n return json;\r\n },\r\n);\r\n\r\nexport const adminSignupByCpr = createAsyncThunk(\r\n 'administrative/adminSignupByCpr',\r\n async (payload: IAdminSignupByCprPayload, { rejectWithValue }) => {\r\n const url = `${window.userRegistrationApiUri}/adminsignupbycpr`;\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n body: JSON.stringify(payload),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n });\r\n\r\n if (!response.ok) {\r\n const error = await response.json();\r\n return rejectWithValue(error);\r\n }\r\n\r\n const json = await response.json();\r\n return {\r\n response: json,\r\n request: payload,\r\n };\r\n },\r\n);\r\n\r\nexport const adminSignupByForm = createAsyncThunk(\r\n 'administrative/adminSignupByForm',\r\n async (payload: IAdminSignupByFormPayload, { rejectWithValue }) => {\r\n const url = `${window.userRegistrationApiUri}/adminsignupbyform`;\r\n const response = await fetch(url, {\r\n method: 'POST',\r\n body: JSON.stringify(payload),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n });\r\n\r\n if (!response.ok) {\r\n const error = await response.json();\r\n return rejectWithValue(error);\r\n }\r\n\r\n const json = await response.json();\r\n return {\r\n response: json,\r\n request: payload,\r\n };\r\n },\r\n);\r\n\r\nconst administrativeSlice = createSlice({\r\n name: 'administrative',\r\n initialState,\r\n reducers: {\r\n setInvalidContext(state) {\r\n const newState = state;\r\n newState.context = undefined;\r\n return newState;\r\n },\r\n adminResetSignup(state) {\r\n const newState = state;\r\n newState.adminSignupByFormResult = null;\r\n newState.adminSignupByCprResult = null;\r\n return newState;\r\n },\r\n resetAdminSignupByFormResponse(state) {\r\n const newState = state;\r\n newState.adminSignupByFormResult = null;\r\n return newState;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(getCountryCodes.fulfilled, (state, action: PayloadAction) => {\r\n const newState = state;\r\n newState.countryCodes = action.payload;\r\n });\r\n builder.addCase(getCountryCodes.rejected, (state) => {\r\n const newState = state;\r\n newState.countryCodes = [];\r\n });\r\n builder.addCase(getRegistrationContext.fulfilled, (state, action: PayloadAction) => {\r\n const newState = state;\r\n newState.context = action.payload;\r\n });\r\n builder.addCase(getRegistrationContext.rejected, (state) => {\r\n const newState = state;\r\n newState.context = undefined;\r\n });\r\n builder.addCase(adminSignupByCpr.pending, (state) => {\r\n const newState = state;\r\n newState.uiBusy = true;\r\n });\r\n builder.addCase(adminSignupByCpr.fulfilled, (state, action) => {\r\n const newState = state;\r\n newState.uiBusy = false;\r\n newState.adminSignupByCprResult = (action.payload as IAdminSignupByCprResponse).response;\r\n newState.adminSignupByCprRequest = (action.payload as IAdminSignupByCprResponse).request;\r\n });\r\n builder.addCase(adminSignupByCpr.rejected, (state, action) => {\r\n const newState = state;\r\n const {\r\n type, title, detail, status,\r\n } = action.payload as Record;\r\n newState.error = {\r\n name: type,\r\n message: title,\r\n code: status,\r\n stack: detail,\r\n };\r\n newState.uiBusy = false;\r\n });\r\n builder.addCase(adminSignupByForm.pending, (state) => {\r\n const newState = state;\r\n newState.uiBusy = true;\r\n });\r\n builder.addCase(adminSignupByForm.fulfilled, (state, action) => {\r\n const newState = state;\r\n newState.uiBusy = false;\r\n newState.adminSignupByFormResult = (action.payload as IAdminSignupByFormResponse).response;\r\n newState.adminSignupByFormRequest = (action.payload as IAdminSignupByFormResponse).request;\r\n });\r\n builder.addCase(adminSignupByForm.rejected, (state, action) => {\r\n const newState = state;\r\n const {\r\n type, title, detail, status,\r\n } = action.payload as Record;\r\n newState.error = {\r\n name: type,\r\n message: title,\r\n code: status,\r\n stack: detail,\r\n };\r\n newState.uiBusy = false;\r\n });\r\n },\r\n});\r\n\r\nexport const {\r\n setInvalidContext,\r\n adminResetSignup,\r\n resetAdminSignupByFormResponse,\r\n} = administrativeSlice.actions;\r\n\r\nexport default administrativeSlice.reducer;\r\n","import { configureStore } from '@reduxjs/toolkit';\r\nimport rootReducer from '../reducers';\r\n\r\nconst store = configureStore({\r\n reducer: rootReducer,\r\n});\r\n\r\nexport type AppDispatch = typeof store.dispatch\r\n\r\nexport default store;\r\n","import { combineReducers } from '@reduxjs/toolkit';\r\nimport nomination from './nomination';\r\nimport selfservice from './selfservice';\r\nimport administrative from './administrative';\r\n\r\nconst reducers = {\r\n nomination,\r\n selfservice,\r\n administrative,\r\n};\r\n\r\nconst rootReducer = combineReducers(reducers);\r\n\r\nexport type RootState = ReturnType\r\n\r\nexport default rootReducer;\r\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport createContext from 'mini-create-react-context';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\");\n\nvar context = /*#__PURE__*/createNamedContext(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n if (_this._isMounted) {\n _this.setState({\n location: location\n });\n } else {\n _this._pendingLocation = location;\n }\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, /*#__PURE__*/React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? /*#__PURE__*/React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return /*#__PURE__*/React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && /*#__PURE__*/React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? /*#__PURE__*/React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return /*#__PURE__*/React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global[key] && global[key] !== \"esm\") {\n var initialBuildName = buildNames[global[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","import { Router, __RouterContext, matchPath } from 'react-router';\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter } from 'react-router';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport { createBrowserHistory, createHashHistory, createLocation, createPath } from 'history';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport invariant from 'tiny-invariant';\n\n/**\n * The public API for a that uses HTML5 history.\n */\n\nvar BrowserRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createBrowserHistory(_this.props);\n return _this;\n }\n\n var _proto = BrowserRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for a that uses window.location.hash.\n */\n\nvar HashRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(HashRouter, _React$Component);\n\n function HashRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createHashHistory(_this.props);\n return _this;\n }\n\n var _proto = HashRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return HashRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { HashRouter as Router }`.\") : void 0;\n };\n}\n\nvar resolveToLocation = function resolveToLocation(to, currentLocation) {\n return typeof to === \"function\" ? to(currentLocation) : to;\n};\nvar normalizeToLocation = function normalizeToLocation(to, currentLocation) {\n return typeof to === \"string\" ? createLocation(to, null, null, currentLocation) : to;\n};\n\nvar forwardRefShim = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar LinkAnchor = forwardRef(function (_ref, forwardedRef) {\n var innerRef = _ref.innerRef,\n navigate = _ref.navigate,\n _onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, [\"innerRef\", \"navigate\", \"onClick\"]);\n\n var target = rest.target;\n\n var props = _extends({}, rest, {\n onClick: function onClick(event) {\n try {\n if (_onClick) _onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && ( // ignore everything but left clicks\n !target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n\n\n return /*#__PURE__*/React.createElement(\"a\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n/**\n * The public API for rendering a history-aware .\n */\n\n\nvar Link = forwardRef(function (_ref2, forwardedRef) {\n var _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,\n replace = _ref2.replace,\n to = _ref2.to,\n innerRef = _ref2.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"component\", \"replace\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history;\n var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);\n var href = location ? history.createHref(location) : \"\";\n\n var props = _extends({}, rest, {\n href: href,\n navigate: function navigate() {\n var location = resolveToLocation(to, context.location);\n var isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n var method = replace || isDuplicateNavigation ? history.replace : history.push;\n method(location);\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(component, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]);\n var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n })]);\n Link.displayName = \"Link\";\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nvar forwardRefShim$1 = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef$1 = React.forwardRef;\n\nif (typeof forwardRef$1 === \"undefined\") {\n forwardRef$1 = forwardRefShim$1;\n}\n\nfunction joinClassnames() {\n for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.filter(function (i) {\n return i;\n }).join(\" \");\n}\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = forwardRef$1(function (_ref, forwardedRef) {\n var _ref$ariaCurrent = _ref[\"aria-current\"],\n ariaCurrent = _ref$ariaCurrent === void 0 ? \"page\" : _ref$ariaCurrent,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? \"active\" : _ref$activeClassName,\n activeStyle = _ref.activeStyle,\n classNameProp = _ref.className,\n exact = _ref.exact,\n isActiveProp = _ref.isActive,\n locationProp = _ref.location,\n sensitive = _ref.sensitive,\n strict = _ref.strict,\n styleProp = _ref.style,\n to = _ref.to,\n innerRef = _ref.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref, [\"aria-current\", \"activeClassName\", \"activeStyle\", \"className\", \"exact\", \"isActive\", \"location\", \"sensitive\", \"strict\", \"style\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var currentLocation = locationProp || context.location;\n var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);\n var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n\n var escapedPath = path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n var match = escapedPath ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact: exact,\n sensitive: sensitive,\n strict: strict\n }) : null;\n var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);\n var className = typeof classNameProp === \"function\" ? classNameProp(isActive) : classNameProp;\n var style = typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = _extends({}, style, activeStyle);\n }\n\n var props = _extends({\n \"aria-current\": isActive && ariaCurrent || null,\n className: className,\n style: style,\n to: toLocation\n }, rest); // React 15 compat\n\n\n if (forwardRefShim$1 !== forwardRef$1) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(Link, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n var ariaCurrentType = PropTypes.oneOf([\"page\", \"step\", \"location\", \"date\", \"time\", \"true\", \"false\"]);\n NavLink.propTypes = _extends({}, Link.propTypes, {\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n });\n}\n\nexport { BrowserRouter, HashRouter, Link, NavLink };\n//# sourceMappingURL=react-router-dom.js.map\n","/* eslint-env browser */\n/* NO IMPORTS! */\n\nconst { serviceScopeProfile } = window; // Sættes pr. webapp\n\nconst sortAlphaObj = (a, b) => {\n if (typeof a.name !== 'undefined' && typeof b.name !== 'undefined') {\n return a.name.toLowerCase().localeCompare(b.name.toLowerCase(), 'da', { ignorePunctuation: true });\n }\n return 0;\n};\n\nconst isElementInViewport = (element) => {\n if (element === null) {\n return false;\n }\n\n const rect = element.getBoundingClientRect();\n\n return rect.bottom > 0\n && rect.right > 0\n && rect.left < (window.innerWidth || document.documentElement.clientWidth)\n && rect.top < (window.innerHeight || document.documentElement.clientHeight);\n};\n\nconst isElementPartlyInViewport = (element) => {\n let top = element.offsetTop;\n let left = element.offsetLeft;\n const width = element.offsetWidth;\n const height = element.offsetHeight;\n\n let offsetElement = element;\n while (offsetElement.offsetParent) {\n offsetElement = element.offsetParent;\n top += element.offsetTop;\n left += element.offsetLeft;\n }\n\n return (\n top < (window.pageYOffset + window.innerHeight)\n && left < (window.pageXOffset + window.innerWidth)\n && (top + height) > window.pageYOffset\n && (left + width) > window.pageXOffset\n );\n};\n\nconst setCookie = (cookieName, value, maxAge = null, exdays = null, path = ';path=/;domain=au.dk') => {\n let cookieValue = encodeURI(value);\n if (exdays != null) {\n const exdate = new Date();\n exdate.setDate(exdate.getDate() + exdays);\n cookieValue = `${cookieValue}; expires=${exdate.toUTCString()}`;\n } else if (maxAge != null) {\n cookieValue = `${cookieValue}; max-age=${maxAge}`;\n }\n\n document.cookie = `${cookieName}=${cookieValue}${path}`;\n};\n\nconst getCookie = (cookieName) => {\n let cookieValue = document.cookie;\n let cookieStart = cookieValue.indexOf(` ${cookieName}=`);\n if (cookieStart === -1) {\n cookieStart = cookieValue.indexOf(`${cookieName}=`);\n }\n if (cookieStart === -1) {\n cookieValue = null;\n } else {\n cookieStart = cookieValue.indexOf('=', cookieStart) + 1;\n let cookieEnd = cookieValue.indexOf(';', cookieStart);\n if (cookieEnd === -1) {\n cookieEnd = cookieValue.length;\n }\n cookieValue = decodeURI(cookieValue.substring(cookieStart, cookieEnd));\n }\n return cookieValue;\n};\n\nconst addToSessionStorage = (key, data) => {\n if (window.sessionStorage) {\n sessionStorage.setItem(key, JSON.stringify(data));\n }\n\n return data;\n};\n\nconst getFromSessionStorage = (key) => {\n if (window.sessionStorage) {\n const data = sessionStorage.getItem(key);\n if (data) {\n return JSON.parse(data);\n }\n }\n\n return null;\n};\n\nconst addToLocalStorage = (key, data) => {\n if (window.localStorage) {\n localStorage.setItem(key, JSON.stringify(data));\n }\n\n return data;\n};\n\nconst getFromLocalStorage = (key) => {\n if (window.localStorage) {\n const data = localStorage.getItem(key);\n if (data) {\n return JSON.parse(data);\n }\n }\n\n return null;\n};\n\nconst setContextInSession = (key, data, clearPrevious = true) => {\n if (clearPrevious) {\n Object.entries(window.sessionStorage).forEach((entry) => {\n const entryKey = entry[0];\n if (entryKey.includes('user-context')) {\n window.sessionStorage.removeItem(entryKey);\n }\n });\n }\n window.sessionStorage.setItem(`user-context-${key}`, data);\n};\n\nconst getContextFromSession = (key = '', any = false) => {\n if (any) {\n let foundContext = null;\n Object.entries(window.sessionStorage).forEach((entry) => {\n const entryKey = entry[0];\n if (entryKey.includes('user-context')) {\n foundContext = window.sessionStorage.getItem(entryKey);\n }\n });\n return foundContext;\n }\n\n return window.sessionStorage.getItem(`user-context-${key}`);\n};\n\n// Credits: http://blog.vishalon.net/index.php/javascript-getting-and-setting-caret-position-in-textarea/\nconst setCaretPosition = (element, pos) => {\n // Modern browsers\n if (element && element.setSelectionRange) {\n element.focus();\n element.setSelectionRange(pos, pos);\n }\n};\n\nconst splitPhoneNumber = (countryCodes, phoneNumber) => {\n const countryCodeFound = (code) => countryCodes.filter(\n (x) => x.code === parseInt(code, 10),\n ).length > 0;\n\n const findPrefix = () => {\n const skip = '+';\n let count = 1;\n let prefix = countryCodes.find((x) => x.important).code;\n while (count < phoneNumber.length) {\n const split = phoneNumber.substring(skip.length, skip.length + count);\n if (countryCodeFound(split)) {\n prefix = split;\n }\n count += 1;\n }\n return skip + prefix;\n };\n\n const prefix = findPrefix();\n return {\n prefix,\n number: phoneNumber.replace(prefix, ''),\n };\n};\n\nconst prettyPrintPhone = (countryCodes, phone) => {\n if (phone) {\n const { prefix, number } = splitPhoneNumber(countryCodes, phone);\n return `${prefix} ${number.match(/\\d{1,2}/g).join(' ')}`;\n }\n return '';\n};\n\nconst getAccessToken = (auAuth, serviceScope, callback) => {\n auAuth.getAccessToken([serviceScope]).then((accessToken) => {\n callback(accessToken.accessToken);\n });\n};\n\nconst parseError = (errorArray) => errorArray.map((e) => e.errorMessage).join(', ');\n\nconst scrollTo = (x = 0, y = 0) => window.scrollTo(x, y);\n\nexport {\n sortAlphaObj,\n isElementInViewport,\n isElementPartlyInViewport,\n setCookie,\n getCookie,\n addToLocalStorage,\n getFromLocalStorage,\n addToSessionStorage,\n getFromSessionStorage,\n setCaretPosition,\n getAccessToken,\n serviceScopeProfile,\n splitPhoneNumber,\n prettyPrintPhone,\n parseError,\n scrollTo,\n setContextInSession,\n getContextFromSession,\n};\n","/* eslint-env browser */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { isElementInViewport } from '../../lib/helpers';\n\nclass AUSpinnerComponent extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n loading: true,\n visible: props.visible,\n };\n\n this.lazyLoad = this.lazyLoad.bind(this);\n }\n\n componentDidMount() {\n this.lazyLoad();\n window.addEventListener('scroll', () => {\n this.lazyLoad();\n });\n }\n\n componentDidUpdate() {\n this.lazyLoad();\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.visible !== prevState.visible) {\n return {\n visible: nextProps.visible,\n };\n }\n\n return null;\n }\n\n lazyLoad() {\n const {\n loadingCondition,\n loaded,\n domID,\n onLoad,\n } = this.props;\n const { loading, visible } = this.state;\n\n const element = document.getElementById(domID);\n if (!loaded && loading && loadingCondition && (visible || isElementInViewport(element))) {\n this.setState({\n loading: false,\n }, () => {\n onLoad();\n });\n }\n }\n\n render() {\n const {\n className, content, loaded, domID, children, height, init,\n } = this.props;\n\n if (!loaded) {\n if (init === 'table') {\n return (\n
\n );\n }\n if (init === 'box') {\n return (\n
\n );\n }\n return (\n
\n );\n }\n\n return children || content;\n }\n}\n\nAUSpinnerComponent.defaultProps = {\n domID: 'au-spinner-component',\n visible: false,\n className: '',\n content: null,\n children: null,\n onLoad: () => { },\n height: 'auto',\n init: '',\n};\n\nAUSpinnerComponent.propTypes = {\n /**\n * Relevant ved mere end en spinner per side\n */\n domID: PropTypes.string,\n /**\n * Om den er synlig på skærmen ved indlæsning\n */\n visible: PropTypes.bool,\n className: PropTypes.string,\n content: PropTypes.element,\n children: PropTypes.element,\n loaded: PropTypes.bool.isRequired,\n loadingCondition: PropTypes.bool.isRequired,\n onLoad: PropTypes.func,\n height: PropTypes.string,\n init: PropTypes.string,\n};\n\nAUSpinnerComponent.displayName = 'AUSpinnerComponent';\nexport default AUSpinnerComponent;\n","import React, { FC } from 'react';\r\n\r\nconst ErrorComponent: FC = ({\r\n header,\r\n text,\r\n}: ErrorComponentProps) => (\r\n
\r\n
\r\n

{header}

\r\n

\r\n

\r\n
\r\n);\r\n\r\nErrorComponent.displayName = 'ErrorComponent';\r\nexport default ErrorComponent;\r\n","/* eslint-disable react/destructuring-assignment */\r\n/* eslint-disable jsx-a11y/label-has-associated-control */\r\nimport React, { FC, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { RootState } from '../../reducers';\r\nimport {\r\n getNominees as getNomineesConnect,\r\n} from '../../reducers/nomination';\r\nimport ErrorComponent from '../common/ErrorComponent';\r\n\r\nconst FileUploadComponent: FC = ({\r\n getNominees,\r\n context,\r\n uploading,\r\n excelError,\r\n}: FileUploadComponentProps) => {\r\n const [file, setFile] = useState(null);\r\n console.log(excelError);\r\n return (\r\n <>\r\n {\r\n e.preventDefault();\r\n const data = new FormData();\r\n data.append('xlsxFile', file as Blob);\r\n getNominees({\r\n data,\r\n context: context?.key as string,\r\n });\r\n }}\r\n >\r\n
\r\n \r\n
\r\n {\r\n if (e.target?.files && e.target.files.length > 0) {\r\n setFile(e.target.files[0]);\r\n }\r\n }}\r\n />\r\n
\r\n Vælg fil\r\n
\r\n
\r\n
\r\n
\r\n \r\n Upload\r\n \r\n
\r\n \r\n {\r\n excelError && (\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nFileUploadComponent.displayName = 'FileUploadComponent';\r\nexport default connect(\r\n (state: RootState) => state.nomination,\r\n {\r\n getNominees: getNomineesConnect,\r\n },\r\n)(FileUploadComponent);\r\n","/* eslint-disable max-len */\r\nimport React, {\r\n FC,\r\n useEffect,\r\n useState,\r\n memo,\r\n} from 'react';\r\n\r\nconst ProgressBarComponent: FC = ({\r\n items,\r\n onAllDone,\r\n onError,\r\n renderStatus,\r\n}: ProgressBarComponentProps) => {\r\n const [progressed, setProgressed] = useState([]);\r\n const [originalItems] = useState(items);\r\n useEffect(() => {\r\n if (originalItems && progressed.length < originalItems.length) {\r\n (originalItems[progressed.length].onProgress as IOnProgressFunc)().then((item: IProgressable) => {\r\n setProgressed([...progressed, ...[{ ...originalItems[progressed.length], ...item }]]);\r\n }).catch((error) => {\r\n setProgressed([...progressed, ...[originalItems[progressed.length]]]);\r\n onError(originalItems[progressed.length], error);\r\n });\r\n }\r\n if (originalItems && progressed.length === originalItems.length) {\r\n onAllDone(progressed);\r\n }\r\n }, [progressed.length]);\r\n const percentage = originalItems?.length > 0 ? Math.floor((progressed.length / originalItems?.length) * 100) : 0;\r\n return (\r\n <>\r\n
\r\n
\r\n
100 %
\r\n
{`${percentage} %`}
\r\n
\r\n

\r\n {\r\n progressed.length < originalItems.length && (\r\n <>\r\n {renderStatus(originalItems[progressed.length])}\r\n \r\n )\r\n }\r\n

\r\n \r\n );\r\n};\r\n\r\nProgressBarComponent.displayName = 'ProgressBarComponent';\r\nexport default memo(ProgressBarComponent);\r\n","/* eslint-disable import/prefer-default-export */\r\nimport { parse as qsParse } from 'query-string';\r\n\r\nexport const getContextFromQuery = (): string => {\r\n const qs = qsParse(window.location.search);\r\n const c = qs.context;\r\n if (c) {\r\n return c as string;\r\n }\r\n\r\n return '';\r\n};\r\n\r\nexport const getContextBasedHeadline = (lang: string, context: ISignupContext): string | null => {\r\n if (!context) {\r\n return null;\r\n }\r\n const { startUserCreationHeadingDa, startUserCreationHeadingEn } = context;\r\n return lang === 'da' ? startUserCreationHeadingDa : startUserCreationHeadingEn;\r\n};\r\n\r\nexport const genderInDanish = (gender: string, toLower: boolean): string => {\r\n let result = 'Ukendt';\r\n if (gender === 'male') {\r\n result = 'Mand';\r\n }\r\n if (gender === 'female') {\r\n result = 'Kvinde';\r\n }\r\n\r\n if (toLower) {\r\n return result.toLocaleLowerCase();\r\n }\r\n\r\n return result;\r\n};\r\n\r\nexport const mod11 = (cpr: string): boolean => {\r\n const weights = [4, 3, 2, 7, 6, 5, 4, 3, 2, 1];\r\n const split = cpr.replace('-', '').split('').map((x) => parseInt(x, 10));\r\n if (split.length === weights.length) {\r\n let sum = 0;\r\n split.forEach((number, index) => {\r\n sum += number * weights[index];\r\n });\r\n return sum % 11 === 0;\r\n }\r\n return false;\r\n};\r\n","/* eslint-disable jsx-a11y/label-has-associated-control */\r\nimport React, { FC } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { RootState } from '../../reducers';\r\nimport {\r\n keepNominee as keepNomineeConnect,\r\n skipNominee as skipNomineeConnect,\r\n acceptFuzzyMatch as acceptFuzzyMatchConnect,\r\n} from '../../reducers/nomination';\r\nimport { genderInDanish } from '../../lib/helpers';\r\n\r\nconst renderInfo = (data: (string | number | null)[]): string => {\r\n const headers = ['AU-id', 'E-mail', 'Titel', 'Enhed'];\r\n const output: string[] = [];\r\n data.forEach((d, index) => {\r\n if (d) {\r\n output.push(`${headers[index]}: ${d}`);\r\n }\r\n });\r\n return output.join(', ');\r\n};\r\n\r\nconst FuzzyMatchComponent: FC = ({\r\n nominees,\r\n keepNominee,\r\n skipNominee,\r\n acceptFuzzyMatch,\r\n}: FuzzyMatchComponentProps) => {\r\n const foundWithFuzzies = nominees.filter((n) => n.fuzzyMatchedUsers?.length > 0);\r\n const renderWithFuzzy = foundWithFuzzies.map((n) => {\r\n // eslint-disable-next-line max-len\r\n const renderFuzzies = n.fuzzyMatchedUsers.map((f) => (\r\n
\r\n \r\n acceptFuzzyMatch({\r\n id: n.id,\r\n auid: f.auid as number,\r\n })}\r\n />\r\n
\r\n ));\r\n return (\r\n
\r\n

{`${n.firstNames} ${n.lastName}`}

\r\n {`E-mail: ${n.emailAddress}, født: ${n.dateOfBirth}, køn: ${genderInDanish(n.gender.toLocaleLowerCase(), true)}`}\r\n

Vælg mulig dublet

\r\n
\r\n
\r\n {renderFuzzies}\r\n
\r\n \r\n keepNominee(n.id)}\r\n />\r\n
\r\n
\r\n \r\n skipNominee(n.id)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n );\r\n });\r\n return (\r\n <>\r\n

${nominees.length} personer i den valgte fil. Af disse er ${nominees.length - foundWithFuzzies.length} klar til at blive oprettet, mens ${foundWithFuzzies.length} muligvis allerede er kendt på Aarhus Universitet. Tag venligst stilling til disse nedenfor, før du går videre til brugeroprettelsen.` }} />\r\n

    \r\n {renderWithFuzzy}\r\n
\r\n \r\n );\r\n};\r\n\r\nFuzzyMatchComponent.displayName = 'FuzzyMatchComponent';\r\nexport default connect(\r\n (state: RootState) => state.nomination,\r\n {\r\n keepNominee: keepNomineeConnect,\r\n skipNominee: skipNomineeConnect,\r\n acceptFuzzyMatch: acceptFuzzyMatchConnect,\r\n },\r\n)(FuzzyMatchComponent);\r\n","/* eslint-disable react/destructuring-assignment */\r\n/* eslint-disable max-len */\r\nimport React, { FC } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { RootState } from '../../reducers';\r\nimport ErrorComponent from '../common/ErrorComponent';\r\nimport { genderInDanish } from '../../lib/helpers';\r\n\r\nconst ReceiptComponent: FC = ({\r\n context,\r\n nominees,\r\n fuzzies,\r\n errors,\r\n}: ReceiptBulkComponentProps) => {\r\n const renderNominees = (data: INominee[]) => data.map((nominee) => (\r\n \r\n {`${nominee.firstNames} ${nominee.lastName}`}\r\n {nominee.emailAddress}\r\n {nominee.dateOfBirth}\r\n {genderInDanish(nominee.gender.toLocaleLowerCase(), false)}\r\n \r\n ));\r\n const renderFuzzies = (data: ISignupUser[]) => data.map((fuzzy) => (\r\n \r\n {fuzzy.auid}\r\n {`${fuzzy.firstName} ${fuzzy.lastName}`}\r\n {fuzzy.privateEmail}\r\n {fuzzy.title}\r\n {fuzzy.organizationUnit}\r\n \r\n ));\r\n\r\n const fuzzyErrors = errors.filter((e) => (e as ISignupUser).auid);\r\n const nomineeErrors = errors.filter((e) => (e as INominee).id);\r\n const createdNominees = nominees.filter((n) => n.create);\r\n\r\n return (\r\n <>\r\n {\r\n errors.length === 0 && (\r\n
\r\n
\r\n

\r\n {context?.successUserCreatedHeadingDa}\r\n
\r\n {context?.successUserCreatedTextDa}\r\n

\r\n
\r\n )\r\n }\r\n {\r\n errors.length > 0 && (\r\n <>\r\n \r\n {\r\n fuzzyErrors.length > 0 && (\r\n <>\r\n

Følgende personer eksisterer i forvejen, men kunne ikke få tildelt rolle.

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderFuzzies(fuzzyErrors as ISignupUser[])}\r\n \r\n
AU-idNavnE-mailTitelEnhed
\r\n \r\n )\r\n }\r\n {\r\n nomineeErrors.length > 0 && (\r\n <>\r\n

Følgende personer kunne ikke oprettes.

\r\n

Bemærk: fejlen kan skyldes dubletter i regnearket. I så fald er brugeren kun oprettet én gang, og vil figurere i oversigten over oprettede brugere.

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderNominees(nomineeErrors as INominee[])}\r\n \r\n
NavnE-mailFødtKøn
\r\n \r\n )\r\n }\r\n \r\n )\r\n }\r\n {\r\n fuzzies.length > 0 && (\r\n <>\r\n

Følgende personer eksisterede i forvejen og har fået tildelt rolle.

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderFuzzies(fuzzies)}\r\n \r\n
AU-idNavnE-mailTitelEnhed
\r\n \r\n )\r\n }\r\n {\r\n createdNominees.length > 0 && (\r\n <>\r\n

Følgende personer er oprettet og har fået tildelt rolle.

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderNominees(createdNominees)}\r\n \r\n
NavnE-mailFødtKøn
\r\n \r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nReceiptComponent.displayName = 'ReceiptComponent';\r\nexport default connect(\r\n (state: RootState) => state.nomination,\r\n)(ReceiptComponent);\r\n","import { FC } from 'react';\r\n\r\nconst StepComponent: FC = ({\r\n step,\r\n children,\r\n}: StepComponentProps) => children[step] || null;\r\n\r\nStepComponent.displayName = 'StepComponent';\r\nexport default StepComponent;\r\n","import React, { FC } from 'react';\r\nimport ErrorComponent from './ErrorComponent';\r\n\r\nconst isContextAllowed = (context: ISignupContext | null, allowed: string): boolean => {\r\n if (context == null) {\r\n return true; // Mens vi loader...\r\n }\r\n\r\n if (allowed === 'admin') {\r\n return context.adminContext;\r\n }\r\n\r\n if (allowed === 'selfservice') {\r\n return context.selfServiceContext;\r\n }\r\n\r\n if (allowed === 'bulk') {\r\n return context.bulkContext;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst InvalidContextComponent: FC = ({\r\n context,\r\n children,\r\n allowed,\r\n}: InvalidContextComponentProps) => {\r\n if (typeof context === 'undefined' || !isContextAllowed(context, allowed)) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return children;\r\n};\r\n\r\nInvalidContextComponent.displayName = 'InvalidContextComponent';\r\nexport default InvalidContextComponent;\r\n","/* eslint-disable react/destructuring-assignment */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable jsx-a11y/label-has-associated-control */\r\nimport React, { FC } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport AUSpinnerComponent from '@aarhus-university/au-lib-react-components/src/components/delphinus/AUSpinnerComponent';\r\nimport { RootState } from '../../reducers';\r\nimport {\r\n setNominees as setNomineesConnect,\r\n setCreated as setCreatedConnect,\r\n addToErrors as addToErrorsConnect,\r\n startOver as startOverConnect,\r\n setUserCreationAndRoleAssignment as setUserCreationAndRoleAssignmentConnect,\r\n getRegistrationContext as getRegistrationContextConnect,\r\n setInvalidContext as setInvalidContextConnect,\r\n} from '../../reducers/nomination';\r\nimport FileUploadComponent from './FileUploadComponent';\r\nimport ProgressBarComponent from './ProgressBarComponent';\r\nimport FuzzyMatchComponent from './FuzzyMatchComponent';\r\nimport ReceiptComponent from './ReceiptComponent';\r\nimport StepComponent from './StepComponent';\r\nimport InvalidContextComponent from '../common/InvalidContextComponent';\r\nimport { getContextFromQuery } from '../../lib/helpers';\r\n\r\nconst ManageComponent: FC = ({\r\n context,\r\n nominees,\r\n fuzzies,\r\n step,\r\n setNominees,\r\n setCreated,\r\n addToErrors,\r\n setUserCreationAndRoleAssignment,\r\n startOver,\r\n getRegistrationContext,\r\n setInvalidContext,\r\n}: ManageComponentProps) => {\r\n const canMoveOnToUserCreation = fuzzies.length === nominees.filter(\r\n (n) => !n.create && !n.skip,\r\n ).length;\r\n\r\n return (\r\n \r\n {\r\n const query = getContextFromQuery();\r\n if (query) {\r\n getRegistrationContext(query);\r\n } else {\r\n setInvalidContext();\r\n }\r\n }}\r\n >\r\n <>\r\n
\r\n

{context?.startUserCreationHeadingDa}

\r\n
\r\n
\r\n \r\n \r\n setNominees(progressable as INominee[])}\r\n onError={(progressable: IProgressable, errorText: string) => {\r\n addToErrors(progressable as INominee);\r\n console.log(errorText, context);\r\n }}\r\n renderStatus={(progressable: IProgressable): string => {\r\n const nominee = (progressable as INominee);\r\n return `Undersøger ${nominee.firstNames} ${nominee.lastName} ...`;\r\n }}\r\n />\r\n \r\n setCreated(progressable as INominee[])}\r\n onError={(progressable: IProgressable, errorText: string) => {\r\n addToErrors((progressable as ISignupUser).auid ? progressable as ISignupUser : progressable as INominee);\r\n console.log(errorText);\r\n }}\r\n renderStatus={(progressable: IProgressable): string => {\r\n if ((progressable as INominee).id) {\r\n const nominee = (progressable as INominee);\r\n return `Opretter ${nominee.firstNames} ${nominee.lastName} og tildeler adgang ...`;\r\n }\r\n const nominee = (progressable as ISignupUser);\r\n return `Tildeler adgang til ${nominee.firstName} ${nominee.lastName} ...`;\r\n }}\r\n />\r\n \r\n \r\n
\r\n
\r\n
\r\n {\r\n (step === 2 || step === 4) && (\r\n
\r\n {\r\n // eslint-disable-next-line no-alert\r\n if (window.confirm('Er du sikker?')) {\r\n startOver(0);\r\n }\r\n }}\r\n >\r\n Start forfra\r\n \r\n
\r\n )\r\n }\r\n {\r\n step === 2 && (\r\n
\r\n setUserCreationAndRoleAssignment({\r\n nominees,\r\n fuzzies,\r\n })}\r\n >\r\n Fortsæt\r\n \r\n
\r\n )\r\n }\r\n
\r\n
\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nManageComponent.displayName = 'ManageComponent';\r\nexport default connect(\r\n (state: RootState) => state.nomination,\r\n {\r\n setNominees: setNomineesConnect,\r\n setCreated: setCreatedConnect,\r\n addToErrors: addToErrorsConnect,\r\n startOver: startOverConnect,\r\n setUserCreationAndRoleAssignment: setUserCreationAndRoleAssignmentConnect,\r\n getRegistrationContext: getRegistrationContextConnect,\r\n setInvalidContext: setInvalidContextConnect,\r\n },\r\n)(ManageComponent);\r\n","import React, { VFC } from 'react';\r\nimport {\r\n BrowserRouter as Router,\r\n Switch,\r\n Route,\r\n} from 'react-router-dom';\r\nimport ManageComponent from './bulk/ManageComponent';\r\n\r\ndeclare global {\r\n interface Window {\r\n userRegistrationApiUri: string;\r\n }\r\n}\r\n\r\nconst BulkWrapperComponent: VFC = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nBulkWrapperComponent.displayName = 'BulkWrapperComponent';\r\nexport default BulkWrapperComponent;\r\n","const Lang = {\r\n da: {\r\n // Self Service\r\n // ===========================================\r\n\r\n // Entry\r\n // -------------------------------------------\r\n loginHeaderExisting: 'Jeg har allerede en bruger på Aarhus Universitet',\r\n loginHeaderNew: 'Jeg har endnu ikke en bruger på Aarhus Universitet',\r\n loginHeaderNew2: 'Jeg ønsker at oprette en bruger på Aarhus Universitet',\r\n loginCPRYes: 'Jeg har ikke et AU-id, men et CPR-nummer',\r\n loginCPRNo: 'Jeg har hverken et AU-id eller et CPR-nummer',\r\n loginUsingAu: 'Log ind med AU-id og opret adgang',\r\n loginUsingCpr: 'Opret adgang via CPR-nummer',\r\n loginUsingForm: 'Opret adgang uden AU-id eller CPR-nummer',\r\n\r\n // Ldap Signup\r\n createUsingLdapHeading: 'Opret via dit AU-login',\r\n username: 'Brugernavn',\r\n usernameIsRequired: 'Brugernavn skal angives',\r\n password: 'Adgangskode',\r\n passwordIsRequired: 'Adgangskode skal angives',\r\n invalidUsernameOrPassword: 'Forkert brugernavn eller adgangskode',\r\n usernameMustBeValidAuid: 'Brugernavn skal starte med \\'au\\', efterfulgt af dit au-nummer, f.eks. au1234',\r\n forgotLink: 'Jeg har glemt mit brugernavn eller adgangskode',\r\n createAccess: 'Opret adgang',\r\n\r\n // CprSignup\r\n createUsingCprHeading: 'Opret bruger via CPR-nummer',\r\n cprNumber: 'CPR-nummer',\r\n cprMandatory: 'CPR-nummer skal udfyldes',\r\n invalidCpr: 'Ugyldigt CPR-nummer',\r\n invalidCprText: 'Det indtastede CPR-nummer er ikke et gyldigt CPR-nummer.',\r\n next: 'Næste',\r\n disclaimerDefaultText: 'Ved at oprette denne konto, giver jeg mit samtykke til at Aarhus Universitet må videregive mine personlige oplysninger, heriblandt mit navn, adresser og CPR nummer. Hvis jeg søger om bolig gennem Aarhus University Housing, giver jeg specifikt samtykke til at mine personlige oplysninger må videregives til Aarhus Universitets boligsamarbejdspartnere. Hvis jeg søger optagelse ved Aarhus Universitet, giver jeg desuden samtykke til at Aarhus Universitet må sende min karakterudskrift til mit hjemmeuniversitet.',\r\n mustAcceptDisclaimer: 'Du skal give samtykke for at kunne fortsætte oprettelsen',\r\n\r\n // Form Signup\r\n createWithTempCprHeading: 'Opret midlertidigt CPR',\r\n birthDate: 'Fødselsdato',\r\n day: 'Dag (DD)',\r\n dayIsRequired: 'Dag skal angives',\r\n dayMustBeANumber: 'Dag skal være et tal',\r\n dayMustBeInRange: 'Dag skal være mellem 1 og 31',\r\n month: 'Måned (MM)',\r\n monthIsRequired: 'Måned skal angives',\r\n monthMustBeANumber: 'Måned skal være et tal',\r\n monthMustBeInRange: 'Måned skal være mellem 1 og 12',\r\n year: 'År (YYYY)',\r\n yearIsRequired: 'År skal angives',\r\n yearMustBeANumber: 'År skal være et tal',\r\n yearMustBeInRange: 'År skal være 4 cifre',\r\n privateEmailIsRequired: 'Privat email skal udfyldes',\r\n firstName: 'Fornavn',\r\n firstNameIsRequired: 'Fornavn skal udfyldes',\r\n lastName: 'Efternavn',\r\n lastNameIsRequired: 'Efternavn skal udfyldes',\r\n gender: 'Køn',\r\n genderUnknown: 'Andet / ukendt / ikke oplyst',\r\n genderFemale: 'Kvinde',\r\n genderMale: 'Mand',\r\n userUnderAge: 'Du skal være mindst 13 år gammel for at oprette dig',\r\n invalidEmail: 'Email adressen er ugyldig',\r\n firstNameTooLong: 'Fornavn må max være på 32 tegn',\r\n lastNameTooLong: 'Efternavn må max være på 32 tegn',\r\n invalidDate: 'Ugyldig dato',\r\n createUser: 'Opret bruger',\r\n\r\n // Confirmation\r\n // -------------------------------------------\r\n looksLikeYouAlreadyExist: 'Det ser ud som om du allerede har en bruger',\r\n didYouForget: 'Har du glemt...?',\r\n ifYouStillCantGetAccess: 'Hvis du stadig ikke kan få adgang',\r\n contactSupport: 'Kontakt supporten',\r\n serviceDeskCreated: 'Der er nu oprettet en supportsag, der beskriver problemet med din adgang',\r\n serviceDeskCreatedText: 'Vi kontaker dig snarest på',\r\n serviceDeskCreatedNoEmailText: 'Vi kontakter dig snarest.',\r\n serviceDeskQuestions: 'Hvis du har spørgsmål, så kontakt os på',\r\n\r\n // User Activation\r\n // ------------------------------------------\r\n setYourPassword: 'Vælg din adgangskode',\r\n invalidPassword: 'Ugyldig adgangskode. Skal være på mindst 6 tegn og indeholde både bogstaver og tal.',\r\n setPasswordFailHeading: 'Noget gik galt',\r\n setPasswordFailText: 'Der skete en fejl. Prøv at genindlæse siden, eller forsøg at oprette dig som bruger igen.',\r\n setPasswordValidationErrorHeading: 'Der er noget galt med den valgte adgangskode',\r\n setPasswordValidationErrorText: 'Prøv igen med en anden adgangskode',\r\n tryAgain: 'Prøv igen',\r\n\r\n // Admin\r\n // ============================================\r\n\r\n // CprSignup\r\n privateEmail: 'Privat email',\r\n sendActivationMail: 'Send aktiveringsmail til den oprettede bruger',\r\n cprNumberNotFound: 'CPR-nummeret kunne ikke findes',\r\n userIsWithoutCpr: 'Brugeren har ikke et CPR-nummer',\r\n returnToOrigin: 'Retur til hvor du kom fra',\r\n cancel: 'Fortryd',\r\n ok: 'OK',\r\n personAlreadyExists: 'Personen findes allerede',\r\n\r\n // Form Signup\r\n createUserAndCreateCpr: 'Opret bruger og konstruér CPR',\r\n userExistsYouCanReturn: 'Da personen allerede findes, kan du returnere og anvende denne person:',\r\n nationality: 'Nationalitet',\r\n\r\n // Confirmation\r\n grantUserRightsToThisUser: 'Vil du tildele rettigheder til denne bruger?',\r\n createThisUser: 'Vil du oprette denne bruger?',\r\n changeCprAndGrant: 'Vil du ændre cpr og tildele rettigheder til denne bruger?',\r\n auid: 'Auid',\r\n userRights: 'Rettigheder:',\r\n create: 'Opret',\r\n grant: 'Tildel',\r\n created: 'Oprettet',\r\n granted: 'Tildelt',\r\n userCreated: 'Brugeren er blevet oprettet',\r\n userGranted: 'Brugeren har fået tildelt rettighederne',\r\n\r\n // Existing users\r\n noUsersFoundForCpr: 'Vi fandt ingen AU personer med CPR-nummeret',\r\n possibleDuplicatesFound: 'Vi fandt mulige dubletter',\r\n existingUsersOnCprHeading: 'Eksisterende brugere, der ligner den, du har søgt på',\r\n existingUsersOnSearchHeading: 'Eksisterende brugere, der ligner den, du er ved at oprette',\r\n noMatchCreate: 'Intet match, opret:',\r\n cpr: 'CPR',\r\n title: 'Titel',\r\n organizationUnit: 'Enhed',\r\n\r\n // Error handling\r\n // ============================================\r\n errorHeader: 'Du kan desværre ikke oprette dig som bruger i øjeblikket',\r\n errorBody: 'Der er sket en fejl i oprettelsen af din bruger. Du bedes kontakte it-supporten på Aarhus Universitet:
adm.it@au.dk',\r\n back: 'Tilbage',\r\n },\r\n\r\n en: {\r\n // Self Service\r\n // ===========================================\r\n\r\n // Entry\r\n // -------------------------------------------\r\n loginHeaderExisting: 'I am already a user at Aarhus University',\r\n loginHeaderNew: 'I am not yet a user at Aarhus University',\r\n loginHeaderNew2: 'I want to create an account at Aarhus University',\r\n loginCPRYes: 'I do not have an AU ID, but a Danish CPR number',\r\n loginCPRNo: 'I do not have an AU ID or a Danish CPR number',\r\n loginUsingAu: 'Login with AU ID and create account',\r\n loginUsingCpr: 'Create account using my Danish CPR number',\r\n loginUsingForm: 'Create account without AU ID or Danish CPR number',\r\n\r\n // Ldap Signup\r\n createUsingLdapHeading: 'Register using your AU-login',\r\n username: 'Username',\r\n usernameIsRequired: 'Username is required',\r\n password: 'Password',\r\n passwordIsRequired: 'Password is required',\r\n invalidUsernameOrPassword: 'Wrong username or password',\r\n usernameMustBeValidAuid: 'Username must begin with \\'au\\', followed by your au-number, ex. au1234',\r\n forgotLink: 'I forgot my username or password',\r\n createAccess: 'Create access',\r\n\r\n // CprSignup\r\n createUsingCprHeading: 'Create user using Danish civil registration number',\r\n cprNumber: 'Civil Registration Number',\r\n cprMandatory: 'Civil Registration Number is required',\r\n invalidCpr: 'Civil Registration Number is invalid',\r\n invalidCprText: 'The supplied Danish civil registration number is not valid.',\r\n next: 'Next',\r\n disclaimerDefaultText: 'By creating this account, I consent to the release and distribution of my personal information, including my name, addresses, Danish CPR-number by Aarhus University. If I am applying for housing through Aarhus University Housing Services, I specifically consent to the release of my personal information to Aarhus University’s housing providers. If I am applying for admission to Aarhus University, I also consent to the distribution by Aarhus University of my transcript of records for courses taken at Aarhus University to my home university.',\r\n mustAcceptDisclaimer: 'You must give consent to continue creating your account',\r\n\r\n // Form Signup\r\n createWithTempCprHeading: 'Create Temporary Danish civil registration number',\r\n birthDate: 'Birth date',\r\n day: 'Day (DD)',\r\n dayIsRequired: 'Day is required',\r\n dayMustBeANumber: 'Day must be a number',\r\n dayMustBeInRange: 'Day must be between 1 and 31',\r\n month: 'Month (MM)',\r\n monthIsRequired: 'Month is required',\r\n monthMustBeANumber: 'Month must be a number',\r\n monthMustBeInRange: 'Month must be between 1 and 12',\r\n year: 'Year (YYYY)',\r\n yearIsRequired: 'Year is required',\r\n yearMustBeANumber: 'Year must be a number',\r\n yearMustBeInRange: 'Year must have 4 digits',\r\n privateEmailIsRequired: 'Private email is required',\r\n firstName: 'First name',\r\n firstNameIsRequired: 'First name is required',\r\n lastName: 'Last name',\r\n lastNameIsRequired: 'Last name is required',\r\n gender: 'Gender',\r\n genderUnknown: 'Other / unknown / not specified',\r\n genderFemale: 'Female',\r\n genderMale: 'Male',\r\n userUnderAge: 'You must be at least 13 years old to register',\r\n invalidEmail: 'Invalid email address',\r\n firstNameTooLong: 'First name exeeds max length of 32 characters',\r\n lastNameTooLong: 'Last name exeeds max length of 32 characters',\r\n invalidDate: 'Invalid date',\r\n createUser: 'Create user account',\r\n\r\n // Confirmation\r\n // -------------------------------------------\r\n looksLikeYouAlreadyExist: 'It looks like you already have a user account',\r\n didYouForget: 'Did you forget...?',\r\n ifYouStillCantGetAccess: 'You you still have trouble getting access',\r\n contactSupport: 'Contact support',\r\n serviceDeskCreated: 'A support desk issue have been created to handle the problem of creating access for you',\r\n serviceDeskCreatedText: 'We will contact you at',\r\n serviceDeskCreatedNoEmailText: 'We will contact you shortly',\r\n serviceDeskQuestions: 'If you have any questions, please contact support at',\r\n\r\n // User Activation\r\n // ------------------------------------------\r\n setYourPassword: 'Please set your password',\r\n invalidPassword: 'Invalid password. Must be at least 6 characters long and contain both letters and numbers.',\r\n setPasswordFailHeading: 'An error occurred',\r\n setPasswordFailText: 'An error occurred trying to set your password. Please try refreshing the page, or repeat your signup process.',\r\n setPasswordValidationErrorHeading: 'The chosen password could not be accepted',\r\n setPasswordValidationErrorText: 'Please try again with another password.',\r\n tryAgain: 'Try again',\r\n\r\n // Admin\r\n // ============================================\r\n\r\n // CprSignup\r\n privateEmail: 'Private email',\r\n sendActivationMail: 'Send activation email to the created user',\r\n cprNumberNotFound: 'Civil Registration Number not found',\r\n userIsWithoutCpr: 'The user does not have a civil registration number',\r\n returnToOrigin: 'Return',\r\n cancel: 'Cancel',\r\n ok: 'OK',\r\n personAlreadyExists: 'The person already exists',\r\n\r\n // Form Signup\r\n createUserAndCreateCpr: 'Create user and create Danish civil registration number',\r\n userExistsYouCanReturn: 'As this person already exists, you can return and use this person:',\r\n nationality: 'Nationality',\r\n\r\n // Confirmation\r\n grantUserRightsToThisUser: 'Do you want to grant user roles to this user?',\r\n createThisUser: 'Do you want to create this user?',\r\n changeCprAndGrant: 'Do you want to change Danish civil registration number and grant user roles to this user?',\r\n auid: 'Auid',\r\n userRights: 'User roles:',\r\n create: 'Create',\r\n grant: 'Grant',\r\n created: 'Created',\r\n granted: 'Granted',\r\n userCreated: 'The user has been created',\r\n userGranted: 'The user has been granted the user roles',\r\n\r\n // Existing users\r\n noUsersFoundForCpr: 'We did not find any AU person with the specified Danish civil registration number',\r\n possibleDuplicatesFound: 'We found possible duplicates',\r\n existingUsersOnCprHeading: 'Existing users similar to the one you searched for',\r\n existingUsersOnSearchHeading: 'Existing users similar to the one you are about to create',\r\n noMatchCreate: 'No match, create:',\r\n cpr: 'CPR',\r\n title: 'Title',\r\n organizationUnit: 'Organization Unit',\r\n\r\n // Error Handling\r\n // ============================================\r\n errorHeader: 'It is not possible to create your account at the moment',\r\n errorBody: 'There was an error creating your account. Please contact IT support at Aarhus University: adm.it@au.dk',\r\n back: 'Back',\r\n },\r\n};\r\n\r\nexport default Lang;\r\n","/* eslint-disable max-len */\r\nimport React, { FC } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport AUSpinnerComponent from '@aarhus-university/au-lib-react-components/src/components/delphinus/AUSpinnerComponent';\r\nimport { RootState } from '../../reducers';\r\nimport { getContextBasedHeadline, getContextFromQuery } from '../../lib/helpers';\r\nimport InvalidContextComponent from '../common/InvalidContextComponent';\r\nimport {\r\n getRegistrationContext as getRegistrationContextConnect,\r\n setInvalidContext as setInvalidContextConnect,\r\n} from '../../reducers/selfservice';\r\nimport Lang from '../../lib/i18n';\r\n\r\ninterface SelfServiceFrontComponentProps {\r\n context: ISignupContext | null | undefined,\r\n getRegistrationContext: (context: string) => void,\r\n setInvalidContext: () => void,\r\n}\r\n\r\nconst SelfServiceFrontComponent: FC = ({\r\n context,\r\n getRegistrationContext,\r\n setInvalidContext,\r\n}: SelfServiceFrontComponentProps) => (\r\n \r\n {\r\n const query = getContextFromQuery();\r\n if (query) {\r\n getRegistrationContext(query);\r\n } else {\r\n setInvalidContext();\r\n }\r\n }}\r\n >\r\n
\r\n

\r\n {getContextBasedHeadline(window.appLang, context as ISignupContext)}\r\n

\r\n
\r\n
\r\n
    \r\n {\r\n (context?.assignRoles || []).length > 0 && (\r\n
  • \r\n

    {Lang[window.appLang].loginHeaderExisting}

    \r\n
    \r\n {Lang[window.appLang].loginUsingAu}\r\n
    \r\n
  • \r\n )\r\n }\r\n
  • \r\n

    {(context?.assignRoles || []).length > 0 ? Lang[window.appLang].loginHeaderNew : Lang[window.appLang].loginHeaderNew2}

    \r\n

    \r\n {Lang[window.appLang].loginCPRYes}\r\n

    \r\n
    \r\n {Lang[window.appLang].loginUsingCpr}\r\n
    \r\n

    \r\n {Lang[window.appLang].loginCPRNo}\r\n

    \r\n
    \r\n {Lang[window.appLang].loginUsingForm}\r\n
    \r\n
  • \r\n
\r\n
\r\n \r\n \r\n);\r\n\r\nSelfServiceFrontComponent.displayName = 'SelfServiceFrontComponent';\r\nexport default connect(\r\n (state: RootState) => state.selfservice,\r\n {\r\n getRegistrationContext: getRegistrationContextConnect,\r\n setInvalidContext: setInvalidContextConnect,\r\n },\r\n)(SelfServiceFrontComponent);\r\n","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\r\nvar isObject = (value) => !isNullOrUndefined(value) &&\r\n !Array.isArray(value) &&\r\n isObjectType(value) &&\r\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\r\n ? isCheckBoxInput(event.target)\r\n ? event.target.checked\r\n : event.target.value\r\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (obj, path, defaultValue) => {\r\n if (!path || !isObject(obj)) {\r\n return defaultValue;\r\n }\r\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], obj);\r\n return isUndefined(result) || result === obj\r\n ? isUndefined(obj[path])\r\n ? defaultValue\r\n : obj[path]\r\n : result;\r\n};\n\nconst EVENTS = {\r\n BLUR: 'blur',\r\n FOCUS_OUT: 'focusout',\r\n CHANGE: 'change',\r\n};\r\nconst VALIDATION_MODE = {\r\n onBlur: 'onBlur',\r\n onChange: 'onChange',\r\n onSubmit: 'onSubmit',\r\n onTouched: 'onTouched',\r\n all: 'all',\r\n};\r\nconst INPUT_VALIDATION_RULES = {\r\n max: 'max',\r\n min: 'min',\r\n maxLength: 'maxLength',\r\n minLength: 'minLength',\r\n pattern: 'pattern',\r\n required: 'required',\r\n validate: 'validate',\r\n};\n\nconst HookFormContext = React.createContext(null);\r\n/**\r\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\r\n *\r\n * @returns return all useForm methods\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const methods = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * return (\r\n * \r\n *
\r\n * \r\n * \r\n * \r\n *
\r\n * );\r\n * }\r\n *\r\n * function NestedInput() {\r\n * const { register } = useFormContext(); // retrieve all hook methods\r\n * return ;\r\n * }\r\n * ```\r\n */\r\nconst useFormContext = () => React.useContext(HookFormContext);\r\n/**\r\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\r\n *\r\n * @param props - all useFrom methods\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const methods = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * return (\r\n * \r\n *
\r\n * \r\n * \r\n * \r\n *
\r\n * );\r\n * }\r\n *\r\n * function NestedInput() {\r\n * const { register } = useFormContext(); // retrieve all hook methods\r\n * return ;\r\n * }\r\n * ```\r\n */\r\nconst FormProvider = (props) => {\r\n const { children, ...data } = props;\r\n return (React.createElement(HookFormContext.Provider, { value: data }, props.children));\r\n};\n\nvar getProxyFormState = (formState, _proxyFormState, localProxyFormState, isRoot = true) => {\r\n const result = {};\r\n for (const key in formState) {\r\n Object.defineProperty(result, key, {\r\n get: () => {\r\n const _key = key;\r\n if (_proxyFormState[_key] !== VALIDATION_MODE.all) {\r\n _proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\r\n }\r\n localProxyFormState && (localProxyFormState[_key] = true);\r\n return formState[_key];\r\n },\r\n });\r\n }\r\n return result;\r\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, isRoot) => {\r\n const { name, ...formState } = formStateData;\r\n return (isEmptyObject(formState) ||\r\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\r\n Object.keys(formState).find((key) => _proxyFormState[key] ===\r\n (!isRoot || VALIDATION_MODE.all)));\r\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => exact && signalName\r\n ? name === signalName\r\n : !name ||\r\n !signalName ||\r\n name === signalName ||\r\n convertToArrayPayload(name).some((currentName) => currentName &&\r\n (currentName.startsWith(signalName) ||\r\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\r\n const _props = React.useRef(props);\r\n _props.current = props;\r\n React.useEffect(() => {\r\n const tearDown = (subscription) => {\r\n if (subscription) {\r\n subscription.unsubscribe();\r\n }\r\n };\r\n const subscription = !props.disabled &&\r\n _props.current.subject.subscribe({\r\n next: _props.current.callback,\r\n });\r\n return () => tearDown(subscription);\r\n }, [props.disabled]);\r\n}\n\n/**\r\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\r\n *\r\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, handleSubmit, control } = useForm({\r\n * defaultValues: {\r\n * firstName: \"firstName\"\r\n * }});\r\n * const { dirtyFields } = useFormState({\r\n * control\r\n * });\r\n * const onSubmit = (data) => console.log(data);\r\n *\r\n * return (\r\n *
\r\n * \r\n * {dirtyFields.firstName &&

Field is dirty.

}\r\n * \r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useFormState(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, disabled, name, exact } = props || {};\r\n const [formState, updateFormState] = React.useState(control._formState);\r\n const _localProxyFormState = React.useRef({\r\n isDirty: false,\r\n dirtyFields: false,\r\n touchedFields: false,\r\n isValidating: false,\r\n isValid: false,\r\n errors: false,\r\n });\r\n const _name = React.useRef(name);\r\n const _mounted = React.useRef(true);\r\n _name.current = name;\r\n const callback = React.useCallback((value) => _mounted.current &&\r\n shouldSubscribeByName(_name.current, value.name, exact) &&\r\n shouldRenderFormState(value, _localProxyFormState.current) &&\r\n updateFormState({\r\n ...control._formState,\r\n ...value,\r\n }), [control, exact]);\r\n useSubscribe({\r\n disabled,\r\n callback,\r\n subject: control._subjects.state,\r\n });\r\n React.useEffect(() => {\r\n _mounted.current = true;\r\n return () => {\r\n _mounted.current = false;\r\n };\r\n }, []);\r\n return getProxyFormState(formState, control._proxyFormState, _localProxyFormState.current, false);\r\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal) => {\r\n const isArray = Array.isArray(names);\r\n if (isString(names)) {\r\n isGlobal && _names.watch.add(names);\r\n return get(formValues, names);\r\n }\r\n if (isArray) {\r\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName),\r\n get(formValues, fieldName)));\r\n }\r\n isGlobal && (_names.watchAll = true);\r\n return formValues;\r\n};\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar objectHasFunction = (data) => {\r\n for (const key in data) {\r\n if (isFunction(data[key])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\n\n/**\r\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\r\n *\r\n * @remarks\r\n *\r\n * [API](https://react-hook-form.com/api/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\r\n *\r\n * @example\r\n * ```tsx\r\n * const { watch } = useForm();\r\n * const values = useWatch({\r\n * name: \"fieldName\"\r\n * control,\r\n * })\r\n * ```\r\n */\r\nfunction useWatch(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\r\n const _name = React.useRef(name);\r\n _name.current = name;\r\n const callback = React.useCallback((formState) => {\r\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\r\n const fieldValues = generateWatchOutput(_name.current, control._names, formState.values || control._formValues);\r\n updateValue(isUndefined(_name.current) ||\r\n (isObject(fieldValues) && !objectHasFunction(fieldValues))\r\n ? { ...fieldValues }\r\n : Array.isArray(fieldValues)\r\n ? [...fieldValues]\r\n : isUndefined(fieldValues)\r\n ? defaultValue\r\n : fieldValues);\r\n }\r\n }, [control, exact, defaultValue]);\r\n useSubscribe({\r\n disabled,\r\n subject: control._subjects.watch,\r\n callback,\r\n });\r\n const [value, updateValue] = React.useState(isUndefined(defaultValue)\r\n ? control._getWatch(name)\r\n : defaultValue);\r\n React.useEffect(() => {\r\n control._removeUnmounted();\r\n });\r\n return value;\r\n}\n\n/**\r\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\r\n *\r\n * @param props - the path name to the form field value, and validation rules.\r\n *\r\n * @returns field properties, field and form state. {@link UseControllerReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function Input(props) {\r\n * const { field, fieldState, formState } = useController(props);\r\n * return (\r\n *
\r\n * \r\n *

{fieldState.isTouched && \"Touched\"}

\r\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useController(props) {\r\n const methods = useFormContext();\r\n const { name, control = methods.control, shouldUnregister } = props;\r\n const isArrayField = isNameInFieldArray(control._names.array, name);\r\n const value = useWatch({\r\n control,\r\n name,\r\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\r\n exact: true,\r\n });\r\n const formState = useFormState({\r\n control,\r\n name,\r\n });\r\n const _registerProps = React.useRef(control.register(name, {\r\n ...props.rules,\r\n value,\r\n }));\r\n React.useEffect(() => {\r\n const updateMounted = (name, value) => {\r\n const field = get(control._fields, name);\r\n if (field) {\r\n field._f.mount = value;\r\n }\r\n };\r\n updateMounted(name, true);\r\n return () => {\r\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\r\n (isArrayField\r\n ? _shouldUnregisterField && !control._stateFlags.action\r\n : _shouldUnregisterField)\r\n ? control.unregister(name)\r\n : updateMounted(name, false);\r\n };\r\n }, [name, control, isArrayField, shouldUnregister]);\r\n return {\r\n field: {\r\n name,\r\n value,\r\n onChange: React.useCallback((event) => {\r\n _registerProps.current.onChange({\r\n target: {\r\n value: getEventValue(event),\r\n name: name,\r\n },\r\n type: EVENTS.CHANGE,\r\n });\r\n }, [name]),\r\n onBlur: React.useCallback(() => {\r\n _registerProps.current.onBlur({\r\n target: {\r\n value: get(control._formValues, name),\r\n name: name,\r\n },\r\n type: EVENTS.BLUR,\r\n });\r\n }, [name, control]),\r\n ref: React.useCallback((elm) => {\r\n const field = get(control._fields, name);\r\n if (elm && field && elm.focus) {\r\n field._f.ref = {\r\n focus: () => elm.focus(),\r\n setCustomValidity: (message) => elm.setCustomValidity(message),\r\n reportValidity: () => elm.reportValidity(),\r\n };\r\n }\r\n }, [name, control._fields]),\r\n },\r\n formState,\r\n fieldState: Object.defineProperties({}, {\r\n invalid: {\r\n get: () => !!get(formState.errors, name),\r\n },\r\n isDirty: {\r\n get: () => !!get(formState.dirtyFields, name),\r\n },\r\n isTouched: {\r\n get: () => !!get(formState.touchedFields, name),\r\n },\r\n error: {\r\n get: () => get(formState.errors, name),\r\n },\r\n }),\r\n };\r\n}\n\n/**\r\n * Component based on `useController` hook to work with controlled component.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\r\n *\r\n * @param props - the path name to the form field value, and validation rules.\r\n *\r\n * @returns provide field handler functions, field and form state.\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { control } = useForm({\r\n * defaultValues: {\r\n * test: \"\"\r\n * }\r\n * });\r\n *\r\n * return (\r\n *
\r\n * (\r\n * <>\r\n * \r\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\r\n *

{fieldState.isTouched ? \"touched\" : \"\"}

\r\n * \r\n * )}\r\n * />\r\n * \r\n * );\r\n * }\r\n * ```\r\n */\r\nconst Controller = (props) => props.render(useController(props));\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\r\n ? {\r\n ...errors[name],\r\n types: {\r\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\r\n [type]: message || true,\r\n },\r\n }\r\n : {};\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nfunction set(object, path, value) {\r\n let index = -1;\r\n const tempPath = isKey(path) ? [path] : stringToPath(path);\r\n const length = tempPath.length;\r\n const lastIndex = length - 1;\r\n while (++index < length) {\r\n const key = tempPath[index];\r\n let newValue = value;\r\n if (index !== lastIndex) {\r\n const objValue = object[key];\r\n newValue =\r\n isObject(objValue) || Array.isArray(objValue)\r\n ? objValue\r\n : !isNaN(+tempPath[index + 1])\r\n ? []\r\n : {};\r\n }\r\n object[key] = newValue;\r\n object = object[key];\r\n }\r\n return object;\r\n}\n\nconst focusFieldBy = (fields, callback, fieldsNames) => {\r\n for (const key of fieldsNames || Object.keys(fields)) {\r\n const field = get(fields, key);\r\n if (field) {\r\n const { _f, ...currentField } = field;\r\n if (_f && callback(_f.name)) {\r\n if (_f.ref.focus && isUndefined(_f.ref.focus())) {\r\n break;\r\n }\r\n else if (_f.refs) {\r\n _f.refs[0].focus();\r\n break;\r\n }\r\n }\r\n else if (isObject(currentField)) {\r\n focusFieldBy(currentField, callback);\r\n }\r\n }\r\n }\r\n};\n\nvar generateId = () => {\r\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n const r = (Math.random() * 16 + d) % 16 | 0;\r\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\r\n });\r\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\r\n ? options.focusName ||\r\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\r\n : '';\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\r\n (_names.watchAll ||\r\n _names.watch.has(name) ||\r\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\r\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nfunction append(data, value) {\r\n return [...data, ...convertToArrayPayload(value)];\r\n}\n\nvar isWeb = typeof window !== 'undefined' &&\r\n typeof window.HTMLElement !== 'undefined' &&\r\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\r\n let copy;\r\n const isArray = Array.isArray(data);\r\n if (data instanceof Date) {\r\n copy = new Date(data);\r\n }\r\n else if (data instanceof Set) {\r\n copy = new Set(data);\r\n }\r\n else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&\r\n (isArray || isObject(data))) {\r\n copy = isArray ? [] : {};\r\n for (const key in data) {\r\n copy[key] = isFunction(data[key]) ? data[key] : cloneObject(data[key]);\r\n }\r\n }\r\n else {\r\n return data;\r\n }\r\n return copy;\r\n}\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\r\n return [\r\n ...data.slice(0, index),\r\n ...convertToArrayPayload(value),\r\n ...data.slice(index),\r\n ];\r\n}\n\nvar moveArrayAt = (data, from, to) => {\r\n if (!Array.isArray(data)) {\r\n return [];\r\n }\r\n if (isUndefined(data[to])) {\r\n data[to] = undefined;\r\n }\r\n data.splice(to, 0, data.splice(from, 1)[0]);\r\n return data;\r\n};\n\nfunction prepend(data, value) {\r\n return [...convertToArrayPayload(value), ...convertToArrayPayload(data)];\r\n}\n\nfunction removeAtIndexes(data, indexes) {\r\n let i = 0;\r\n const temp = [...data];\r\n for (const index of indexes) {\r\n temp.splice(index - i, 1);\r\n i++;\r\n }\r\n return compact(temp).length ? temp : [];\r\n}\r\nvar removeArrayAt = (data, index) => isUndefined(index)\r\n ? []\r\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\r\n data[indexA] = [data[indexB], (data[indexB] = data[indexA])][0];\r\n};\n\nfunction baseGet(object, updatePath) {\r\n const length = updatePath.slice(0, -1).length;\r\n let index = 0;\r\n while (index < length) {\r\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\r\n }\r\n return object;\r\n}\r\nfunction unset(object, path) {\r\n const updatePath = isKey(path) ? [path] : stringToPath(path);\r\n const childObject = updatePath.length == 1 ? object : baseGet(object, updatePath);\r\n const key = updatePath[updatePath.length - 1];\r\n let previousObjRef;\r\n if (childObject) {\r\n delete childObject[key];\r\n }\r\n for (let k = 0; k < updatePath.slice(0, -1).length; k++) {\r\n let index = -1;\r\n let objectRef;\r\n const currentPaths = updatePath.slice(0, -(k + 1));\r\n const currentPathsLength = currentPaths.length - 1;\r\n if (k > 0) {\r\n previousObjRef = object;\r\n }\r\n while (++index < currentPaths.length) {\r\n const item = currentPaths[index];\r\n objectRef = objectRef ? objectRef[item] : object[item];\r\n if (currentPathsLength === index &&\r\n ((isObject(objectRef) && isEmptyObject(objectRef)) ||\r\n (Array.isArray(objectRef) &&\r\n !objectRef.filter((data) => !isUndefined(data)).length))) {\r\n previousObjRef ? delete previousObjRef[item] : delete object[item];\r\n }\r\n previousObjRef = objectRef;\r\n }\r\n }\r\n return object;\r\n}\n\nvar updateAt = (fieldValues, index, value) => {\r\n fieldValues[index] = value;\r\n return fieldValues;\r\n};\n\n/**\r\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\r\n *\r\n * @param props - useFieldArray props\r\n *\r\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\r\n * defaultValues: {\r\n * test: []\r\n * }\r\n * });\r\n * const { fields, append } = useFieldArray({\r\n * control,\r\n * name: \"test\"\r\n * });\r\n *\r\n * return (\r\n *
console.log(data))}>\r\n * {fields.map((item, index) => (\r\n * \r\n * ))}\r\n * \r\n * \r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useFieldArray(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;\r\n const [fields, setFields] = React.useState(control._getFieldArray(name));\r\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\r\n const _fieldIds = React.useRef(fields);\r\n const _name = React.useRef(name);\r\n const _actioned = React.useRef(false);\r\n _name.current = name;\r\n _fieldIds.current = fields;\r\n control._names.array.add(name);\r\n const callback = React.useCallback(({ values, name: fieldArrayName }) => {\r\n if (fieldArrayName === _name.current || !fieldArrayName) {\r\n const fieldValues = get(values, _name.current, []);\r\n setFields(fieldValues);\r\n ids.current = fieldValues.map(generateId);\r\n }\r\n }, []);\r\n useSubscribe({\r\n callback,\r\n subject: control._subjects.array,\r\n });\r\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\r\n _actioned.current = true;\r\n control._updateFieldArray(name, updatedFieldArrayValues);\r\n }, [control, name]);\r\n const append$1 = (value, options) => {\r\n const appendValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = append(control._getFieldArray(name), appendValue);\r\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\r\n ids.current = append(ids.current, appendValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, append, {\r\n argA: fillEmptyArray(value),\r\n });\r\n };\r\n const prepend$1 = (value, options) => {\r\n const prependValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = prepend(control._getFieldArray(name), prependValue);\r\n control._names.focus = getFocusFieldName(name, 0, options);\r\n ids.current = prepend(ids.current, prependValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, prepend, {\r\n argA: fillEmptyArray(value),\r\n });\r\n };\r\n const remove = (index) => {\r\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\r\n ids.current = removeArrayAt(ids.current, index);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\r\n argA: index,\r\n });\r\n };\r\n const insert$1 = (index, value, options) => {\r\n const insertValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\r\n control._names.focus = getFocusFieldName(name, index, options);\r\n ids.current = insert(ids.current, index, insertValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\r\n argA: index,\r\n argB: fillEmptyArray(value),\r\n });\r\n };\r\n const swap = (indexA, indexB) => {\r\n const updatedFieldArrayValues = control._getFieldArray(name);\r\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\r\n swapArrayAt(ids.current, indexA, indexB);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\r\n argA: indexA,\r\n argB: indexB,\r\n }, false);\r\n };\r\n const move = (from, to) => {\r\n const updatedFieldArrayValues = control._getFieldArray(name);\r\n moveArrayAt(updatedFieldArrayValues, from, to);\r\n moveArrayAt(ids.current, from, to);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\r\n argA: from,\r\n argB: to,\r\n }, false);\r\n };\r\n const update = (index, value) => {\r\n const updateValue = cloneObject(value);\r\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\r\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\r\n updateValues(updatedFieldArrayValues);\r\n setFields([...updatedFieldArrayValues]);\r\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\r\n argA: index,\r\n argB: updateValue,\r\n }, true, false);\r\n };\r\n const replace = (value) => {\r\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\r\n ids.current = updatedFieldArrayValues.map(generateId);\r\n updateValues([...updatedFieldArrayValues]);\r\n setFields([...updatedFieldArrayValues]);\r\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\r\n };\r\n React.useEffect(() => {\r\n control._stateFlags.action = false;\r\n isWatched(name, control._names) && control._subjects.state.next({});\r\n if (_actioned.current) {\r\n control._executeSchema([name]).then((result) => {\r\n const error = get(result.errors, name);\r\n const existingError = get(control._formState.errors, name);\r\n if (existingError ? !error && existingError.type : error && error.type) {\r\n error\r\n ? set(control._formState.errors, name, error)\r\n : unset(control._formState.errors, name);\r\n control._subjects.state.next({\r\n errors: control._formState.errors,\r\n });\r\n }\r\n });\r\n }\r\n control._subjects.watch.next({\r\n name,\r\n values: control._formValues,\r\n });\r\n control._names.focus &&\r\n focusFieldBy(control._fields, (key) => key.startsWith(control._names.focus));\r\n control._names.focus = '';\r\n control._proxyFormState.isValid && control._updateValid();\r\n }, [fields, name, control]);\r\n React.useEffect(() => {\r\n !get(control._formValues, name) && control._updateFieldArray(name);\r\n return () => {\r\n (control._options.shouldUnregister || shouldUnregister) &&\r\n control.unregister(name);\r\n };\r\n }, [name, control, keyName, shouldUnregister]);\r\n return {\r\n swap: React.useCallback(swap, [updateValues, name, control]),\r\n move: React.useCallback(move, [updateValues, name, control]),\r\n prepend: React.useCallback(prepend$1, [updateValues, name, control]),\r\n append: React.useCallback(append$1, [updateValues, name, control]),\r\n remove: React.useCallback(remove, [updateValues, name, control]),\r\n insert: React.useCallback(insert$1, [updateValues, name, control]),\r\n update: React.useCallback(update, [updateValues, name, control]),\r\n replace: React.useCallback(replace, [updateValues, name, control]),\r\n fields: React.useMemo(() => fields.map((field, index) => ({\r\n ...field,\r\n [keyName]: ids.current[index] || generateId(),\r\n })), [fields, keyName]),\r\n };\r\n}\n\nfunction createSubject() {\r\n let _observers = [];\r\n const next = (value) => {\r\n for (const observer of _observers) {\r\n observer.next(value);\r\n }\r\n };\r\n const subscribe = (observer) => {\r\n _observers.push(observer);\r\n return {\r\n unsubscribe: () => {\r\n _observers = _observers.filter((o) => o !== observer);\r\n },\r\n };\r\n };\r\n const unsubscribe = () => {\r\n _observers = [];\r\n };\r\n return {\r\n get observers() {\r\n return _observers;\r\n },\r\n next,\r\n subscribe,\r\n unsubscribe,\r\n };\r\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\r\n if (isPrimitive(object1) || isPrimitive(object2)) {\r\n return object1 === object2;\r\n }\r\n if (isDateObject(object1) && isDateObject(object2)) {\r\n return object1.getTime() === object2.getTime();\r\n }\r\n const keys1 = Object.keys(object1);\r\n const keys2 = Object.keys(object2);\r\n if (keys1.length !== keys2.length) {\r\n return false;\r\n }\r\n for (const key of keys1) {\r\n const val1 = object1[key];\r\n if (!keys2.includes(key)) {\r\n return false;\r\n }\r\n if (key !== 'ref') {\r\n const val2 = object2[key];\r\n if ((isDateObject(val1) && isDateObject(val2)) ||\r\n (isObject(val1) && isObject(val2)) ||\r\n (Array.isArray(val1) && Array.isArray(val2))\r\n ? !deepEqual(val1, val2)\r\n : val1 !== val2) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\n\nvar getValidationModes = (mode) => ({\r\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\r\n isOnBlur: mode === VALIDATION_MODE.onBlur,\r\n isOnChange: mode === VALIDATION_MODE.onChange,\r\n isOnAll: mode === VALIDATION_MODE.all,\r\n isOnTouch: mode === VALIDATION_MODE.onTouched,\r\n});\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isHTMLElement = (value) => value instanceof HTMLElement;\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nfunction markFieldsDirty(data, fields = {}) {\r\n const isParentNodeArray = Array.isArray(data);\r\n if (isObject(data) || isParentNodeArray) {\r\n for (const key in data) {\r\n if (Array.isArray(data[key]) ||\r\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\r\n fields[key] = Array.isArray(data[key]) ? [] : {};\r\n markFieldsDirty(data[key], fields[key]);\r\n }\r\n else if (!isNullOrUndefined(data[key])) {\r\n fields[key] = true;\r\n }\r\n }\r\n }\r\n return fields;\r\n}\r\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\r\n const isParentNodeArray = Array.isArray(data);\r\n if (isObject(data) || isParentNodeArray) {\r\n for (const key in data) {\r\n if (Array.isArray(data[key]) ||\r\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\r\n if (isUndefined(formValues) ||\r\n isPrimitive(dirtyFieldsFromValues[key])) {\r\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\r\n ? markFieldsDirty(data[key], [])\r\n : { ...markFieldsDirty(data[key]) };\r\n }\r\n else {\r\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\r\n }\r\n }\r\n else {\r\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\r\n }\r\n }\r\n }\r\n return dirtyFieldsFromValues;\r\n}\r\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nconst defaultResult = {\r\n value: false,\r\n isValid: false,\r\n};\r\nconst validResult = { value: true, isValid: true };\r\nvar getCheckboxValue = (options) => {\r\n if (Array.isArray(options)) {\r\n if (options.length > 1) {\r\n const values = options\r\n .filter((option) => option && option.checked && !option.disabled)\r\n .map((option) => option.value);\r\n return { value: values, isValid: !!values.length };\r\n }\r\n return options[0].checked && !options[0].disabled\r\n ? // @ts-expect-error expected to work in the browser\r\n options[0].attributes && !isUndefined(options[0].attributes.value)\r\n ? isUndefined(options[0].value) || options[0].value === ''\r\n ? validResult\r\n : { value: options[0].value, isValid: true }\r\n : validResult\r\n : defaultResult;\r\n }\r\n return defaultResult;\r\n};\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\r\n ? value\r\n : valueAsNumber\r\n ? value === ''\r\n ? NaN\r\n : +value\r\n : valueAsDate && isString(value)\r\n ? new Date(value)\r\n : setValueAs\r\n ? setValueAs(value)\r\n : value;\n\nconst defaultReturn = {\r\n isValid: false,\r\n value: null,\r\n};\r\nvar getRadioValue = (options) => Array.isArray(options)\r\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\r\n ? {\r\n isValid: true,\r\n value: option.value,\r\n }\r\n : previous, defaultReturn)\r\n : defaultReturn;\n\nfunction getFieldValue(_f) {\r\n const ref = _f.ref;\r\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\r\n return;\r\n }\r\n if (isFileInput(ref)) {\r\n return ref.files;\r\n }\r\n if (isRadioInput(ref)) {\r\n return getRadioValue(_f.refs).value;\r\n }\r\n if (isMultipleSelect(ref)) {\r\n return [...ref.selectedOptions].map(({ value }) => value);\r\n }\r\n if (isCheckBoxInput(ref)) {\r\n return getCheckboxValue(_f.refs).value;\r\n }\r\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\r\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\r\n const fields = {};\r\n for (const name of fieldsNames) {\r\n const field = get(_fields, name);\r\n field && set(fields, name, field._f);\r\n }\r\n return {\r\n criteriaMode,\r\n names: [...fieldsNames],\r\n fields,\r\n shouldUseNativeValidation,\r\n };\r\n};\n\nvar isRegex = (value) => value instanceof RegExp;\n\nvar getRuleValue = (rule) => isUndefined(rule)\r\n ? undefined\r\n : isRegex(rule)\r\n ? rule.source\r\n : isObject(rule)\r\n ? isRegex(rule.value)\r\n ? rule.value.source\r\n : rule.value\r\n : rule;\n\nvar hasValidation = (options) => options.mount &&\r\n (options.required ||\r\n options.min ||\r\n options.max ||\r\n options.maxLength ||\r\n options.minLength ||\r\n options.pattern ||\r\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\r\n const error = get(errors, name);\r\n if (error || isKey(name)) {\r\n return {\r\n error,\r\n name,\r\n };\r\n }\r\n const names = name.split('.');\r\n while (names.length) {\r\n const fieldName = names.join('.');\r\n const field = get(_fields, fieldName);\r\n const foundError = get(errors, fieldName);\r\n if (field && !Array.isArray(field) && name !== fieldName) {\r\n return { name };\r\n }\r\n if (foundError && foundError.type) {\r\n return {\r\n name: fieldName,\r\n error: foundError,\r\n };\r\n }\r\n names.pop();\r\n }\r\n return {\r\n name,\r\n };\r\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\r\n if (mode.isOnAll) {\r\n return false;\r\n }\r\n else if (!isSubmitted && mode.isOnTouch) {\r\n return !(isTouched || isBlurEvent);\r\n }\r\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\r\n return !isBlurEvent;\r\n }\r\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\r\n return isBlurEvent;\r\n }\r\n return true;\r\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nvar isMessage = (value) => isString(value) || React.isValidElement(value);\n\nfunction getValidateError(result, ref, type = 'validate') {\r\n if (isMessage(result) ||\r\n (Array.isArray(result) && result.every(isMessage)) ||\r\n (isBoolean(result) && !result)) {\r\n return {\r\n type,\r\n message: isMessage(result) ? result : '',\r\n ref,\r\n };\r\n }\r\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\r\n ? validationData\r\n : {\r\n value: validationData,\r\n message: '',\r\n };\n\nvar validateField = async (field, inputValue, validateAllFieldCriteria, shouldUseNativeValidation) => {\r\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = field._f;\r\n if (!mount || disabled) {\r\n return {};\r\n }\r\n const inputRef = refs ? refs[0] : ref;\r\n const setCustomValidity = (message) => {\r\n if (shouldUseNativeValidation && inputRef.reportValidity) {\r\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || ' ');\r\n inputRef.reportValidity();\r\n }\r\n };\r\n const error = {};\r\n const isRadio = isRadioInput(ref);\r\n const isCheckBox = isCheckBoxInput(ref);\r\n const isRadioOrCheckbox = isRadio || isCheckBox;\r\n const isEmpty = ((valueAsNumber || isFileInput(ref)) && !ref.value) ||\r\n inputValue === '' ||\r\n (Array.isArray(inputValue) && !inputValue.length);\r\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\r\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\r\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\r\n error[name] = {\r\n type: exceedMax ? maxType : minType,\r\n message,\r\n ref,\r\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\r\n };\r\n };\r\n if (required &&\r\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\r\n (isBoolean(inputValue) && !inputValue) ||\r\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\r\n (isRadio && !getRadioValue(refs).isValid))) {\r\n const { value, message } = isMessage(required)\r\n ? { value: !!required, message: required }\r\n : getValueAndMessage(required);\r\n if (value) {\r\n error[name] = {\r\n type: INPUT_VALIDATION_RULES.required,\r\n message,\r\n ref: inputRef,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\r\n let exceedMax;\r\n let exceedMin;\r\n const maxOutput = getValueAndMessage(max);\r\n const minOutput = getValueAndMessage(min);\r\n if (!isNaN(inputValue)) {\r\n const valueNumber = ref.valueAsNumber || +inputValue;\r\n if (!isNullOrUndefined(maxOutput.value)) {\r\n exceedMax = valueNumber > maxOutput.value;\r\n }\r\n if (!isNullOrUndefined(minOutput.value)) {\r\n exceedMin = valueNumber < minOutput.value;\r\n }\r\n }\r\n else {\r\n const valueDate = ref.valueAsDate || new Date(inputValue);\r\n if (isString(maxOutput.value)) {\r\n exceedMax = valueDate > new Date(maxOutput.value);\r\n }\r\n if (isString(minOutput.value)) {\r\n exceedMin = valueDate < new Date(minOutput.value);\r\n }\r\n }\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(error[name].message);\r\n return error;\r\n }\r\n }\r\n }\r\n if ((maxLength || minLength) && !isEmpty && isString(inputValue)) {\r\n const maxLengthOutput = getValueAndMessage(maxLength);\r\n const minLengthOutput = getValueAndMessage(minLength);\r\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\r\n inputValue.length > maxLengthOutput.value;\r\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\r\n inputValue.length < minLengthOutput.value;\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(error[name].message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (pattern && !isEmpty && isString(inputValue)) {\r\n const { value: patternValue, message } = getValueAndMessage(pattern);\r\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\r\n error[name] = {\r\n type: INPUT_VALIDATION_RULES.pattern,\r\n message,\r\n ref,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (validate) {\r\n if (isFunction(validate)) {\r\n const result = await validate(inputValue);\r\n const validateError = getValidateError(result, inputRef);\r\n if (validateError) {\r\n error[name] = {\r\n ...validateError,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(validateError.message);\r\n return error;\r\n }\r\n }\r\n }\r\n else if (isObject(validate)) {\r\n let validationResult = {};\r\n for (const key in validate) {\r\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\r\n break;\r\n }\r\n const validateError = getValidateError(await validate[key](inputValue), inputRef, key);\r\n if (validateError) {\r\n validationResult = {\r\n ...validateError,\r\n ...appendErrorsCurry(key, validateError.message),\r\n };\r\n setCustomValidity(validateError.message);\r\n if (validateAllFieldCriteria) {\r\n error[name] = validationResult;\r\n }\r\n }\r\n }\r\n if (!isEmptyObject(validationResult)) {\r\n error[name] = {\r\n ref: inputRef,\r\n ...validationResult,\r\n };\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n }\r\n setCustomValidity(true);\r\n return error;\r\n};\n\nconst defaultOptions = {\r\n mode: VALIDATION_MODE.onSubmit,\r\n reValidateMode: VALIDATION_MODE.onChange,\r\n shouldFocusError: true,\r\n};\r\nfunction createFormControl(props = {}) {\r\n let _options = {\r\n ...defaultOptions,\r\n ...props,\r\n };\r\n let _formState = {\r\n isDirty: false,\r\n isValidating: false,\r\n dirtyFields: {},\r\n isSubmitted: false,\r\n submitCount: 0,\r\n touchedFields: {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: false,\r\n errors: {},\r\n };\r\n let _fields = {};\r\n let _defaultValues = cloneObject(_options.defaultValues) || {};\r\n let _formValues = _options.shouldUnregister\r\n ? {}\r\n : cloneObject(_defaultValues);\r\n let _stateFlags = {\r\n action: false,\r\n mount: false,\r\n watch: false,\r\n };\r\n let _names = {\r\n mount: new Set(),\r\n unMount: new Set(),\r\n array: new Set(),\r\n watch: new Set(),\r\n };\r\n let delayErrorCallback;\r\n let timer = 0;\r\n let validateFields = {};\r\n const _proxyFormState = {\r\n isDirty: false,\r\n dirtyFields: false,\r\n touchedFields: false,\r\n isValidating: false,\r\n isValid: false,\r\n errors: false,\r\n };\r\n const _subjects = {\r\n watch: createSubject(),\r\n array: createSubject(),\r\n state: createSubject(),\r\n };\r\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\r\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\r\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\r\n const debounce = (callback, wait) => (...args) => {\r\n clearTimeout(timer);\r\n timer = window.setTimeout(() => callback(...args), wait);\r\n };\r\n const _updateValid = async (shouldSkipRender) => {\r\n let isValid = false;\r\n if (_proxyFormState.isValid) {\r\n isValid = _options.resolver\r\n ? isEmptyObject((await _executeSchema()).errors)\r\n : await executeBuildInValidation(_fields, true);\r\n if (!shouldSkipRender && isValid !== _formState.isValid) {\r\n _formState.isValid = isValid;\r\n _subjects.state.next({\r\n isValid,\r\n });\r\n }\r\n }\r\n return isValid;\r\n };\r\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\r\n if (args && method) {\r\n _stateFlags.action = true;\r\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\r\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\r\n shouldSetValues && set(_fields, name, fieldValues);\r\n }\r\n if (_proxyFormState.errors &&\r\n shouldUpdateFieldsAndState &&\r\n Array.isArray(get(_formState.errors, name))) {\r\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\r\n shouldSetValues && set(_formState.errors, name, errors);\r\n unsetEmptyArray(_formState.errors, name);\r\n }\r\n if (_proxyFormState.touchedFields &&\r\n shouldUpdateFieldsAndState &&\r\n Array.isArray(get(_formState.touchedFields, name))) {\r\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\r\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\r\n }\r\n if (_proxyFormState.dirtyFields) {\r\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\r\n }\r\n _subjects.state.next({\r\n isDirty: _getDirty(name, values),\r\n dirtyFields: _formState.dirtyFields,\r\n errors: _formState.errors,\r\n isValid: _formState.isValid,\r\n });\r\n }\r\n else {\r\n set(_formValues, name, values);\r\n }\r\n };\r\n const updateErrors = (name, error) => (set(_formState.errors, name, error),\r\n _subjects.state.next({\r\n errors: _formState.errors,\r\n }));\r\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\r\n const field = get(_fields, name);\r\n if (field) {\r\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\r\n isUndefined(defaultValue) ||\r\n (ref && ref.defaultChecked) ||\r\n shouldSkipSetValueAs\r\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\r\n : setFieldValue(name, defaultValue);\r\n _stateFlags.mount && _updateValid();\r\n }\r\n };\r\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\r\n let isFieldDirty = false;\r\n const output = {\r\n name,\r\n };\r\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\r\n if (_proxyFormState.isDirty) {\r\n const isPreviousFormDirty = _formState.isDirty;\r\n _formState.isDirty = output.isDirty = _getDirty();\r\n isFieldDirty = isPreviousFormDirty !== output.isDirty;\r\n }\r\n if (_proxyFormState.dirtyFields && (!isBlurEvent || shouldDirty)) {\r\n const isPreviousFieldDirty = get(_formState.dirtyFields, name);\r\n const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\r\n isCurrentFieldPristine\r\n ? unset(_formState.dirtyFields, name)\r\n : set(_formState.dirtyFields, name, true);\r\n output.dirtyFields = _formState.dirtyFields;\r\n isFieldDirty =\r\n isFieldDirty ||\r\n isPreviousFieldDirty !== get(_formState.dirtyFields, name);\r\n }\r\n if (isBlurEvent && !isPreviousFieldTouched) {\r\n set(_formState.touchedFields, name, isBlurEvent);\r\n output.touchedFields = _formState.touchedFields;\r\n isFieldDirty =\r\n isFieldDirty ||\r\n (_proxyFormState.touchedFields &&\r\n isPreviousFieldTouched !== isBlurEvent);\r\n }\r\n isFieldDirty && shouldRender && _subjects.state.next(output);\r\n return isFieldDirty ? output : {};\r\n };\r\n const shouldRenderByError = async (shouldSkipRender, name, isValid, error, fieldState) => {\r\n const previousFieldError = get(_formState.errors, name);\r\n const shouldUpdateValid = _proxyFormState.isValid && _formState.isValid !== isValid;\r\n if (props.delayError && error) {\r\n delayErrorCallback =\r\n delayErrorCallback || debounce(updateErrors, props.delayError);\r\n delayErrorCallback(name, error);\r\n }\r\n else {\r\n clearTimeout(timer);\r\n error\r\n ? set(_formState.errors, name, error)\r\n : unset(_formState.errors, name);\r\n }\r\n if (((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\r\n !isEmptyObject(fieldState) ||\r\n shouldUpdateValid) &&\r\n !shouldSkipRender) {\r\n const updatedFormState = {\r\n ...fieldState,\r\n ...(shouldUpdateValid ? { isValid } : {}),\r\n errors: _formState.errors,\r\n name,\r\n };\r\n _formState = {\r\n ..._formState,\r\n ...updatedFormState,\r\n };\r\n _subjects.state.next(updatedFormState);\r\n }\r\n validateFields[name]--;\r\n if (_proxyFormState.isValidating &&\r\n !Object.values(validateFields).some((v) => v)) {\r\n _subjects.state.next({\r\n isValidating: false,\r\n });\r\n validateFields = {};\r\n }\r\n };\r\n const _executeSchema = async (name) => _options.resolver\r\n ? await _options.resolver({ ..._formValues }, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation))\r\n : {};\r\n const executeSchemaAndUpdateState = async (names) => {\r\n const { errors } = await _executeSchema();\r\n if (names) {\r\n for (const name of names) {\r\n const error = get(errors, name);\r\n error\r\n ? set(_formState.errors, name, error)\r\n : unset(_formState.errors, name);\r\n }\r\n }\r\n else {\r\n _formState.errors = errors;\r\n }\r\n return errors;\r\n };\r\n const executeBuildInValidation = async (fields, shouldOnlyCheckValid, context = {\r\n valid: true,\r\n }) => {\r\n for (const name in fields) {\r\n const field = fields[name];\r\n if (field) {\r\n const { _f: fieldReference, ...fieldValue } = field;\r\n if (fieldReference) {\r\n const fieldError = await validateField(field, get(_formValues, fieldReference.name), shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation);\r\n if (fieldError[fieldReference.name]) {\r\n context.valid = false;\r\n if (shouldOnlyCheckValid) {\r\n break;\r\n }\r\n }\r\n if (!shouldOnlyCheckValid) {\r\n fieldError[fieldReference.name]\r\n ? set(_formState.errors, fieldReference.name, fieldError[fieldReference.name])\r\n : unset(_formState.errors, fieldReference.name);\r\n }\r\n }\r\n fieldValue &&\r\n (await executeBuildInValidation(fieldValue, shouldOnlyCheckValid, context));\r\n }\r\n }\r\n return context.valid;\r\n };\r\n const _removeUnmounted = () => {\r\n for (const name of _names.unMount) {\r\n const field = get(_fields, name);\r\n field &&\r\n (field._f.refs\r\n ? field._f.refs.every((ref) => !live(ref))\r\n : !live(field._f.ref)) &&\r\n unregister(name);\r\n }\r\n _names.unMount = new Set();\r\n };\r\n const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\r\n !deepEqual(getValues(), _defaultValues));\r\n const _getWatch = (names, defaultValue, isGlobal) => {\r\n const fieldValues = {\r\n ...(_stateFlags.mount\r\n ? _formValues\r\n : isUndefined(defaultValue)\r\n ? _defaultValues\r\n : isString(names)\r\n ? { [names]: defaultValue }\r\n : defaultValue),\r\n };\r\n return generateWatchOutput(names, _names, fieldValues, isGlobal);\r\n };\r\n const _getFieldArray = (name) => compact(get(_stateFlags.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\r\n const setFieldValue = (name, value, options = {}) => {\r\n const field = get(_fields, name);\r\n let fieldValue = value;\r\n if (field) {\r\n const fieldReference = field._f;\r\n if (fieldReference) {\r\n !fieldReference.disabled &&\r\n set(_formValues, name, getFieldValueAs(value, fieldReference));\r\n fieldValue =\r\n isWeb && isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\r\n ? ''\r\n : value;\r\n if (isMultipleSelect(fieldReference.ref)) {\r\n [...fieldReference.ref.options].forEach((selectRef) => (selectRef.selected = fieldValue.includes(selectRef.value)));\r\n }\r\n else if (fieldReference.refs) {\r\n if (isCheckBoxInput(fieldReference.ref)) {\r\n fieldReference.refs.length > 1\r\n ? fieldReference.refs.forEach((checkboxRef) => !checkboxRef.disabled &&\r\n (checkboxRef.checked = Array.isArray(fieldValue)\r\n ? !!fieldValue.find((data) => data === checkboxRef.value)\r\n : fieldValue === checkboxRef.value))\r\n : fieldReference.refs[0] &&\r\n (fieldReference.refs[0].checked = !!fieldValue);\r\n }\r\n else {\r\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\r\n }\r\n }\r\n else if (isFileInput(fieldReference.ref)) {\r\n fieldReference.ref.value = '';\r\n }\r\n else {\r\n fieldReference.ref.value = fieldValue;\r\n if (!fieldReference.ref.type) {\r\n _subjects.watch.next({\r\n name,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n (options.shouldDirty || options.shouldTouch) &&\r\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\r\n options.shouldValidate && trigger(name);\r\n };\r\n const setValues = (name, value, options) => {\r\n for (const fieldKey in value) {\r\n const fieldValue = value[fieldKey];\r\n const fieldName = `${name}.${fieldKey}`;\r\n const field = get(_fields, fieldName);\r\n (_names.array.has(name) ||\r\n !isPrimitive(fieldValue) ||\r\n (field && !field._f)) &&\r\n !isDateObject(fieldValue)\r\n ? setValues(fieldName, fieldValue, options)\r\n : setFieldValue(fieldName, fieldValue, options);\r\n }\r\n };\r\n const setValue = (name, value, options = {}) => {\r\n const field = get(_fields, name);\r\n const isFieldArray = _names.array.has(name);\r\n const cloneValue = cloneObject(value);\r\n set(_formValues, name, cloneValue);\r\n if (isFieldArray) {\r\n _subjects.array.next({\r\n name,\r\n values: _formValues,\r\n });\r\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\r\n options.shouldDirty) {\r\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\r\n _subjects.state.next({\r\n name,\r\n dirtyFields: _formState.dirtyFields,\r\n isDirty: _getDirty(name, cloneValue),\r\n });\r\n }\r\n }\r\n else {\r\n field && !field._f && !isNullOrUndefined(cloneValue)\r\n ? setValues(name, cloneValue, options)\r\n : setFieldValue(name, cloneValue, options);\r\n }\r\n isWatched(name, _names) && _subjects.state.next({});\r\n _subjects.watch.next({\r\n name,\r\n });\r\n };\r\n const onChange = async (event) => {\r\n const target = event.target;\r\n let name = target.name;\r\n const field = get(_fields, name);\r\n if (field) {\r\n let error;\r\n let isValid;\r\n const fieldValue = target.type\r\n ? getFieldValue(field._f)\r\n : getEventValue(event);\r\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\r\n const shouldSkipValidation = (!hasValidation(field._f) &&\r\n !_options.resolver &&\r\n !get(_formState.errors, name) &&\r\n !field._f.deps) ||\r\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\r\n const watched = isWatched(name, _names, isBlurEvent);\r\n set(_formValues, name, fieldValue);\r\n if (isBlurEvent) {\r\n field._f.onBlur && field._f.onBlur(event);\r\n }\r\n else if (field._f.onChange) {\r\n field._f.onChange(event);\r\n }\r\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\r\n const shouldRender = !isEmptyObject(fieldState) || watched;\r\n !isBlurEvent &&\r\n _subjects.watch.next({\r\n name,\r\n type: event.type,\r\n });\r\n if (shouldSkipValidation) {\r\n return (shouldRender &&\r\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\r\n }\r\n !isBlurEvent && watched && _subjects.state.next({});\r\n validateFields[name] = validateFields[name] ? +1 : 1;\r\n _subjects.state.next({\r\n isValidating: true,\r\n });\r\n if (_options.resolver) {\r\n const { errors } = await _executeSchema([name]);\r\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\r\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\r\n error = errorLookupResult.error;\r\n name = errorLookupResult.name;\r\n isValid = isEmptyObject(errors);\r\n }\r\n else {\r\n error = (await validateField(field, get(_formValues, name), shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\r\n isValid = await _updateValid(true);\r\n }\r\n field._f.deps &&\r\n trigger(field._f.deps);\r\n shouldRenderByError(false, name, isValid, error, fieldState);\r\n }\r\n };\r\n const trigger = async (name, options = {}) => {\r\n let isValid;\r\n let validationResult;\r\n const fieldNames = convertToArrayPayload(name);\r\n _subjects.state.next({\r\n isValidating: true,\r\n });\r\n if (_options.resolver) {\r\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\r\n isValid = isEmptyObject(errors);\r\n validationResult = name\r\n ? !fieldNames.some((name) => get(errors, name))\r\n : isValid;\r\n }\r\n else if (name) {\r\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\r\n const field = get(_fields, fieldName);\r\n return await executeBuildInValidation(field && field._f ? { [fieldName]: field } : field);\r\n }))).every(Boolean);\r\n !(!validationResult && !_formState.isValid) && _updateValid();\r\n }\r\n else {\r\n validationResult = isValid = await executeBuildInValidation(_fields);\r\n }\r\n _subjects.state.next({\r\n ...(!isString(name) ||\r\n (_proxyFormState.isValid && isValid !== _formState.isValid)\r\n ? {}\r\n : { name }),\r\n ...(_options.resolver ? { isValid } : {}),\r\n errors: _formState.errors,\r\n isValidating: false,\r\n });\r\n options.shouldFocus &&\r\n !validationResult &&\r\n focusFieldBy(_fields, (key) => get(_formState.errors, key), name ? fieldNames : _names.mount);\r\n return validationResult;\r\n };\r\n const getValues = (fieldNames) => {\r\n const values = {\r\n ..._defaultValues,\r\n ...(_stateFlags.mount ? _formValues : {}),\r\n };\r\n return isUndefined(fieldNames)\r\n ? values\r\n : isString(fieldNames)\r\n ? get(values, fieldNames)\r\n : fieldNames.map((name) => get(values, name));\r\n };\r\n const getFieldState = (name, formState) => ({\r\n invalid: !!get((formState || _formState).errors, name),\r\n isDirty: !!get((formState || _formState).dirtyFields, name),\r\n isTouched: !!get((formState || _formState).touchedFields, name),\r\n error: get((formState || _formState).errors, name),\r\n });\r\n const clearErrors = (name) => {\r\n name\r\n ? convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName))\r\n : (_formState.errors = {});\r\n _subjects.state.next({\r\n errors: _formState.errors,\r\n });\r\n };\r\n const setError = (name, error, options) => {\r\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\r\n set(_formState.errors, name, {\r\n ...error,\r\n ref,\r\n });\r\n _subjects.state.next({\r\n name,\r\n errors: _formState.errors,\r\n isValid: false,\r\n });\r\n options && options.shouldFocus && ref && ref.focus && ref.focus();\r\n };\r\n const watch = (name, defaultValue) => isFunction(name)\r\n ? _subjects.watch.subscribe({\r\n next: (info) => name(_getWatch(undefined, defaultValue), info),\r\n })\r\n : _getWatch(name, defaultValue, true);\r\n const unregister = (name, options = {}) => {\r\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\r\n _names.mount.delete(fieldName);\r\n _names.array.delete(fieldName);\r\n if (get(_fields, fieldName)) {\r\n if (!options.keepValue) {\r\n unset(_fields, fieldName);\r\n unset(_formValues, fieldName);\r\n }\r\n !options.keepError && unset(_formState.errors, fieldName);\r\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\r\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\r\n !_options.shouldUnregister &&\r\n !options.keepDefaultValue &&\r\n unset(_defaultValues, fieldName);\r\n }\r\n }\r\n _subjects.watch.next({});\r\n _subjects.state.next({\r\n ..._formState,\r\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\r\n });\r\n !options.keepIsValid && _updateValid();\r\n };\r\n const register = (name, options = {}) => {\r\n let field = get(_fields, name);\r\n const disabledIsDefined = isBoolean(options.disabled);\r\n set(_fields, name, {\r\n _f: {\r\n ...(field && field._f ? field._f : { ref: { name } }),\r\n name,\r\n mount: true,\r\n ...options,\r\n },\r\n });\r\n _names.mount.add(name);\r\n field\r\n ? disabledIsDefined &&\r\n set(_formValues, name, options.disabled\r\n ? undefined\r\n : get(_formValues, name, getFieldValue(field._f)))\r\n : updateValidAndValue(name, true, options.value);\r\n return {\r\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\r\n ...(_options.shouldUseNativeValidation\r\n ? {\r\n required: !!options.required,\r\n min: getRuleValue(options.min),\r\n max: getRuleValue(options.max),\r\n minLength: getRuleValue(options.minLength),\r\n maxLength: getRuleValue(options.maxLength),\r\n pattern: getRuleValue(options.pattern),\r\n }\r\n : {}),\r\n name,\r\n onChange,\r\n onBlur: onChange,\r\n ref: (ref) => {\r\n if (ref) {\r\n register(name, options);\r\n field = get(_fields, name);\r\n const fieldRef = isUndefined(ref.value)\r\n ? ref.querySelectorAll\r\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\r\n : ref\r\n : ref;\r\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\r\n const refs = field._f.refs || [];\r\n if (radioOrCheckbox\r\n ? refs.find((option) => option === fieldRef)\r\n : fieldRef === field._f.ref) {\r\n return;\r\n }\r\n set(_fields, name, {\r\n _f: {\r\n ...field._f,\r\n ...(radioOrCheckbox\r\n ? {\r\n refs: [\r\n ...refs.filter(live),\r\n fieldRef,\r\n ...(!!Array.isArray(get(_defaultValues, name))\r\n ? [{}]\r\n : []),\r\n ],\r\n ref: { type: fieldRef.type, name },\r\n }\r\n : { ref: fieldRef }),\r\n },\r\n });\r\n updateValidAndValue(name, false, undefined, fieldRef);\r\n }\r\n else {\r\n field = get(_fields, name, {});\r\n if (field._f) {\r\n field._f.mount = false;\r\n }\r\n (_options.shouldUnregister || options.shouldUnregister) &&\r\n !(isNameInFieldArray(_names.array, name) && _stateFlags.action) &&\r\n _names.unMount.add(name);\r\n }\r\n },\r\n };\r\n };\r\n const handleSubmit = (onValid, onInvalid) => async (e) => {\r\n if (e) {\r\n e.preventDefault && e.preventDefault();\r\n e.persist && e.persist();\r\n }\r\n let hasNoPromiseError = true;\r\n let fieldValues = cloneObject(_formValues);\r\n _subjects.state.next({\r\n isSubmitting: true,\r\n });\r\n try {\r\n if (_options.resolver) {\r\n const { errors, values } = await _executeSchema();\r\n _formState.errors = errors;\r\n fieldValues = values;\r\n }\r\n else {\r\n await executeBuildInValidation(_fields);\r\n }\r\n if (isEmptyObject(_formState.errors)) {\r\n _subjects.state.next({\r\n errors: {},\r\n isSubmitting: true,\r\n });\r\n await onValid(fieldValues, e);\r\n }\r\n else {\r\n if (onInvalid) {\r\n await onInvalid({ ..._formState.errors }, e);\r\n }\r\n _options.shouldFocusError &&\r\n focusFieldBy(_fields, (key) => get(_formState.errors, key), _names.mount);\r\n }\r\n }\r\n catch (err) {\r\n hasNoPromiseError = false;\r\n throw err;\r\n }\r\n finally {\r\n _formState.isSubmitted = true;\r\n _subjects.state.next({\r\n isSubmitted: true,\r\n isSubmitting: false,\r\n isSubmitSuccessful: isEmptyObject(_formState.errors) && hasNoPromiseError,\r\n submitCount: _formState.submitCount + 1,\r\n errors: _formState.errors,\r\n });\r\n }\r\n };\r\n const resetField = (name, options = {}) => {\r\n if (get(_fields, name)) {\r\n if (isUndefined(options.defaultValue)) {\r\n setValue(name, get(_defaultValues, name));\r\n }\r\n else {\r\n setValue(name, options.defaultValue);\r\n set(_defaultValues, name, options.defaultValue);\r\n }\r\n if (!options.keepTouched) {\r\n unset(_formState.touchedFields, name);\r\n }\r\n if (!options.keepDirty) {\r\n unset(_formState.dirtyFields, name);\r\n _formState.isDirty = options.defaultValue\r\n ? _getDirty(name, get(_defaultValues, name))\r\n : _getDirty();\r\n }\r\n if (!options.keepError) {\r\n unset(_formState.errors, name);\r\n _proxyFormState.isValid && _updateValid();\r\n }\r\n _subjects.state.next({ ..._formState });\r\n }\r\n };\r\n const reset = (formValues, keepStateOptions = {}) => {\r\n const updatedValues = formValues || _defaultValues;\r\n const cloneUpdatedValues = cloneObject(updatedValues);\r\n const values = formValues && !isEmptyObject(formValues)\r\n ? cloneUpdatedValues\r\n : _defaultValues;\r\n if (!keepStateOptions.keepDefaultValues) {\r\n _defaultValues = updatedValues;\r\n }\r\n if (!keepStateOptions.keepValues) {\r\n if (keepStateOptions.keepDirtyValues) {\r\n for (const fieldName of _names.mount) {\r\n get(_formState.dirtyFields, fieldName)\r\n ? set(values, fieldName, get(_formValues, fieldName))\r\n : setValue(fieldName, get(values, fieldName));\r\n }\r\n }\r\n else {\r\n if (isWeb && isUndefined(formValues)) {\r\n for (const name of _names.mount) {\r\n const field = get(_fields, name);\r\n if (field && field._f) {\r\n const fieldReference = Array.isArray(field._f.refs)\r\n ? field._f.refs[0]\r\n : field._f.ref;\r\n try {\r\n isHTMLElement(fieldReference) &&\r\n fieldReference.closest('form').reset();\r\n break;\r\n }\r\n catch (_a) { }\r\n }\r\n }\r\n }\r\n _fields = {};\r\n }\r\n _formValues = props.shouldUnregister\r\n ? keepStateOptions.keepDefaultValues\r\n ? cloneObject(_defaultValues)\r\n : {}\r\n : cloneUpdatedValues;\r\n _subjects.array.next({\r\n values,\r\n });\r\n _subjects.watch.next({\r\n values,\r\n });\r\n }\r\n _names = {\r\n mount: new Set(),\r\n unMount: new Set(),\r\n array: new Set(),\r\n watch: new Set(),\r\n watchAll: false,\r\n focus: '',\r\n };\r\n _stateFlags.mount =\r\n !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\r\n _stateFlags.watch = !!props.shouldUnregister;\r\n _subjects.state.next({\r\n submitCount: keepStateOptions.keepSubmitCount\r\n ? _formState.submitCount\r\n : 0,\r\n isDirty: keepStateOptions.keepDirty || keepStateOptions.keepDirtyValues\r\n ? _formState.isDirty\r\n : !!(keepStateOptions.keepDefaultValues &&\r\n !deepEqual(formValues, _defaultValues)),\r\n isSubmitted: keepStateOptions.keepIsSubmitted\r\n ? _formState.isSubmitted\r\n : false,\r\n dirtyFields: keepStateOptions.keepDirty || keepStateOptions.keepDirtyValues\r\n ? _formState.dirtyFields\r\n : keepStateOptions.keepDefaultValues && formValues\r\n ? getDirtyFields(_defaultValues, formValues)\r\n : {},\r\n touchedFields: keepStateOptions.keepTouched\r\n ? _formState.touchedFields\r\n : {},\r\n errors: keepStateOptions.keepErrors\r\n ? _formState.errors\r\n : {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n });\r\n };\r\n const setFocus = (name, options = {}) => {\r\n const field = get(_fields, name)._f;\r\n const fieldRef = field.refs ? field.refs[0] : field.ref;\r\n options.shouldSelect ? fieldRef.select() : fieldRef.focus();\r\n };\r\n return {\r\n control: {\r\n register,\r\n unregister,\r\n getFieldState,\r\n _executeSchema,\r\n _getWatch,\r\n _getDirty,\r\n _updateValid,\r\n _removeUnmounted,\r\n _updateFieldArray,\r\n _getFieldArray,\r\n _subjects,\r\n _proxyFormState,\r\n get _fields() {\r\n return _fields;\r\n },\r\n get _formValues() {\r\n return _formValues;\r\n },\r\n get _stateFlags() {\r\n return _stateFlags;\r\n },\r\n set _stateFlags(value) {\r\n _stateFlags = value;\r\n },\r\n get _defaultValues() {\r\n return _defaultValues;\r\n },\r\n get _names() {\r\n return _names;\r\n },\r\n set _names(value) {\r\n _names = value;\r\n },\r\n get _formState() {\r\n return _formState;\r\n },\r\n set _formState(value) {\r\n _formState = value;\r\n },\r\n get _options() {\r\n return _options;\r\n },\r\n set _options(value) {\r\n _options = {\r\n ..._options,\r\n ...value,\r\n };\r\n },\r\n },\r\n trigger,\r\n register,\r\n handleSubmit,\r\n watch,\r\n setValue,\r\n getValues,\r\n reset,\r\n resetField,\r\n clearErrors,\r\n unregister,\r\n setError,\r\n setFocus,\r\n getFieldState,\r\n };\r\n}\n\n/**\r\n * Custom hook to mange the entire form.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\r\n *\r\n * @param props - form configuration and validation parameters.\r\n *\r\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * console.log(watch(\"example\"));\r\n *\r\n * return (\r\n *
\r\n * \r\n * \r\n * {errors.exampleRequired && This field is required}\r\n * \r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useForm(props = {}) {\r\n const _formControl = React.useRef();\r\n const [formState, updateFormState] = React.useState({\r\n isDirty: false,\r\n isValidating: false,\r\n dirtyFields: {},\r\n isSubmitted: false,\r\n submitCount: 0,\r\n touchedFields: {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: false,\r\n errors: {},\r\n });\r\n if (_formControl.current) {\r\n _formControl.current.control._options = props;\r\n }\r\n else {\r\n _formControl.current = {\r\n ...createFormControl(props),\r\n formState,\r\n };\r\n }\r\n const control = _formControl.current.control;\r\n const callback = React.useCallback((value) => {\r\n if (shouldRenderFormState(value, control._proxyFormState, true)) {\r\n control._formState = {\r\n ...control._formState,\r\n ...value,\r\n };\r\n updateFormState({ ...control._formState });\r\n }\r\n }, [control]);\r\n useSubscribe({\r\n subject: control._subjects.state,\r\n callback,\r\n });\r\n React.useEffect(() => {\r\n if (!control._stateFlags.mount) {\r\n control._proxyFormState.isValid && control._updateValid();\r\n control._stateFlags.mount = true;\r\n }\r\n if (control._stateFlags.watch) {\r\n control._stateFlags.watch = false;\r\n control._subjects.state.next({});\r\n }\r\n control._removeUnmounted();\r\n });\r\n _formControl.current.formState = getProxyFormState(formState, control._proxyFormState);\r\n return _formControl.current;\r\n}\n\nexport { Controller, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","const flowboxLabels = {\n da: {\n select: 'Vælg',\n back: 'Tilbage',\n building: 'Bygning',\n office: 'Kontor',\n },\n en: {\n select: 'Select',\n back: 'Back',\n building: 'Building',\n office: 'Office',\n },\n};\n\nconst newsLabels = {\n da: {\n news: {\n listLoadMore: 'Indlæs flere',\n eventDate: 'Dato',\n eventTime: 'Tid',\n eventWhere: 'Sted',\n eventRegistration: 'Tilmelding',\n weekdays: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'],\n weekdaysShort: ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'],\n months: ['januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'december'],\n monthsShort: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],\n readMore: 'Læs mere',\n rssAdd: 'Klik på RSS-ikonet for at abonnere på listen i din RSS-læser.',\n rssCopy: 'Kopier linket til RSS-feedet fra tekstfeltet herunder.',\n },\n share: {\n facebook: 'Del på Facebook',\n twitter: 'Del på Twitter',\n linkedin: 'Del på LinkedIn',\n mail: 'Send til en ven',\n mailLabelLong: 'Send via e-mailklienten på din computer',\n mailLabelShort: 'E-mail',\n gmailLabelLong: 'Send via Gmail',\n gmailLabelShort: 'Gmail',\n yahooLabelLong: 'Send via Yahoo Mail',\n yahooLabelShort: 'Yahoo Mail',\n outlookLabelLong: 'Send via outlook.com',\n outlookLabelShort: 'Outlook.com',\n },\n },\n en: {\n news: {\n listLoadMore: 'Load more',\n eventDate: 'Date',\n eventTime: 'Time',\n eventWhere: 'Location',\n eventRegistration: 'Registration',\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n readMore: 'Read more',\n rssAdd: 'Click the RSS icon to subscribe to the list in your RSS reader.',\n rssCopy: 'Copy the link to the RSS feed from the textfield below.',\n },\n share: {\n facebook: 'Facebook share',\n twitter: 'Twitter share',\n linkedin: 'LinkedIn share',\n mail: 'Send to a friend',\n mailLabelLong: 'Send via the email client on your computer',\n mailLabelShort: 'E-mail',\n gmailLabelLong: 'Send via Gmail',\n gmailLabelShort: 'Gmail',\n yahooLabelLong: 'Send via Yahoo Mail',\n yahooLabelShort: 'Yahoo Mail',\n outlookLabelLong: 'Send via outlook.com',\n outlookLabelShort: 'Outlook.com',\n },\n },\n};\n\nconst universeLabels = {\n da: {\n staffTitleLink: 'medarbejdere.au.dk',\n studentTitleLink: 'studerende.au.dk',\n mainPageLink: 'au.dk',\n iconSystems: 'Systemer',\n iconPin: 'Personer og bygninger',\n iconBurger: 'Menu',\n mitstudieText: 'mitstudie',\n mitstudieUrl: 'https://mitstudie.au.dk',\n },\n en: {\n staffTitleLink: 'staff.au.dk',\n studentTitleLink: 'students.au.dk',\n mainPageLink: 'au.dk',\n iconSystems: 'Systems',\n iconPin: 'Persons and buildings',\n iconBurger: 'Menu',\n mitstudieText: 'mystudies.au.dk',\n mitstudieUrl: 'https://mystudies.au.dk/',\n },\n};\n\nconst profileLabels = {\n da: {\n login: 'Log ind',\n logout: 'Log ud',\n edit: 'Ret',\n auId: 'AU-id',\n studentNumber: 'Studienummer',\n changeLanguage: 'Change language',\n headerContainer: 'Profilindstillinger',\n headerName: 'Profilnavn',\n headerMail: 'Mailadresser',\n headerMobile: 'Privat mobilnummer',\n headerLanguage: 'Sprog i systemer',\n headerNextOfKin: 'Pårørende',\n otherMail: 'Se øvrige AU-mailadresser',\n languageIn: 'Du har valgt dansk som standardsprog',\n legendName: 'Vælg dit profilnavn til universitetets systemer',\n legendNameHint: 'Vær opmærksom på, at ændringer ikke slår igennem i alle systemer.',\n formNameHint: 'Dit navn fra CPR-registeret',\n formNameDisplayName: 'Skriv et andet navn',\n firstName: 'Fornavn',\n firstNameHint: 'Undlad mellemnavne, hvis du kun vil vises med ét fornavn',\n lastName: 'Efternavn',\n workMail: 'AU-mailadresse',\n workMailHint: 'Ændringer i din medarbejder-mailadresse skal afspejle dit navn',\n workMailScreenreader: 'Din medarbejder-mailadresse er ###MAIL###. Du kan kun rette den del, der kommer før @.',\n studentMail: 'Studie-mailadresse',\n studentMailScreenreader: 'Din studie-mailadresse er ###MAIL###. Du kan kun rette den del, der kommer før @.',\n privateMail: 'Privat mailadresse',\n privateMailHint: 'Vi sender en mail til din private mailadresse, hvis du glemmer dit brugernavn eller adgangskode til universitetets systemer.',\n countryCode: 'Landekode',\n number: 'Nummer',\n languageLegend: 'Vælg dit foretrukne sprog til universitetets systemer ',\n danish: 'Dansk',\n english: 'Engelsk',\n nextOfKinParagraph: 'Du kan oplyse navn og telefonnummer på en pårørende, så universitetet kan kontakte vedkommende i et nødstilfælde.',\n nextOfKinName: 'Navn',\n nextOfKinTelephone: 'Telefonnummer',\n headerPassword: 'Skift adgangskode',\n save: 'Gem',\n saved: 'Dine ændringer er blevet gemt.',\n mailNotice: 'Vær opmærksom på, at der kan gå op til 15 minutter, før ændringer til din e-mailadresse slår igennem.',\n cancel: 'Annuller',\n validMail: 'Mailadressen du har skrevet er ikke gyldig.',\n validMailPrivate: 'Mailadressen du har skrevet er ikke gyldig, eller du har forsøgt at benytte din AU-mailadresse som privat mailadresse.',\n validMobile: 'Telefonnummeret du har skrevet er ikke gyldigt.',\n validName: 'Skriv et navn.',\n validFirstName: 'Skriv et fornavn.',\n validLastName: 'Skriv et efternavn.',\n emptyMail: 'Du har endnu ikke tilføjet en privat mailadresse',\n emptyMobile: 'Du har endnu ikke tilføjet et mobilnummer',\n emptyNok: 'Du har endnu ikke tilføjet en pårørende',\n copyAuid: 'Kopiér dit AU-id',\n copyStudentNumber: 'Kopiér dit studienummer',\n headerVacationAbsence: 'Ferie og fravær',\n myProfile: 'Min profil',\n helpModalHeader: 'Nyt: Medarbejderprofil',\n helpModalText: 'Nu kan du rette dine profiloplysninger, skifte adgangskode og se din ferie- og fraværsoversigt på medarbejdere.au.dk. Klik på \"Min profil\" for at logge ind og se din medarbejderprofil.',\n helpModalBtn: 'Ok, vis ikke igen',\n profileFor: 'Profilmenu for',\n changeLanguageButton: 'Switch to English',\n },\n en: {\n login: 'Sign in',\n logout: 'Sign out',\n edit: 'Edit',\n auId: 'AU ID',\n studentNumber: 'Student registration number',\n changeLanguage: 'Skift sprog',\n headerContainer: 'Profile settings',\n headerName: 'Profile name',\n headerMail: 'Email addresses',\n headerMobile: 'Private mobile phone number',\n headerLanguage: 'System language',\n headerNextOfKin: 'Relatives',\n otherMail: 'See other AU email addresses',\n languageIn: 'You have selected English as the standard language',\n legendName: 'Select your profile name for the university\\'s systems',\n legendNameHint: 'Please note that changes will not take effect in all systems.',\n formNameHint: 'Your name from the CPR (civil registration number) register',\n formNameDisplayName: 'Enter another name',\n firstName: 'First name',\n firstNameHint: 'Omit any middle names if you only want one first name to be displayed.',\n lastName: 'Last name',\n workMail: 'AU email address',\n workMailHint: 'Changes to your work mail must reflect your name',\n workMailScreenreader: 'Your work mail is ###MAIL###. You are only able to edit the part before the @.',\n studentMail: 'Student mail address',\n studentMailScreenreader: 'Your student mail address is ###MAIL###. You are only able to edit the part before the @.',\n privateMail: 'Private mail address',\n privateMailHint: 'If you forget your username or password for the university’s systems, we will send an email to your private email address.',\n countryCode: 'Country code',\n number: 'Number',\n languageLegend: 'Select your preferred language for the university’s systems.',\n danish: 'Danish',\n english: 'English',\n nextOfKinParagraph: 'State the name and phone number of a relative so the university can contact the person in question in case of an emergency.',\n nextOfKinName: 'Name',\n nextOfKinTelephone: 'Telephone number',\n headerPassword: 'Change password',\n save: 'Save',\n saved: 'Your changes have been saved',\n mailNotice: 'Please note that it may take up to 15 minutes for changes to your email address to take effect.',\n cancel: 'Cancel',\n validMail: 'The email address you have entered is not valid.',\n validMailPrivate: 'The email address you have entered is not valid, or you have tried to use your AU email address as your private email address.',\n validMobile: 'The phone number you have entered is not valid.',\n validName: 'Enter a name.',\n validFirstName: 'Enter a first name.',\n validLastName: 'Enter a last name.',\n emptyMail: 'You have not yet added a private email address',\n emptyMobile: 'You have not yet added a mobile number',\n emptyNok: 'You have not yet added information about a relative ',\n copyAuid: 'Copy your AU ID',\n copyStudentNumber: 'Copy your student registration number',\n headerVacationAbsence: 'Holiday and absence',\n myProfile: 'My profile',\n helpModalHeader: 'New features at staff.au.dk',\n helpModalText: 'You can now edit your profile settings, change your password and see your holiday and absence overview at staff.au.dk. Click \"My profile\" to log in and see your staff profile.',\n helpModalBtn: 'OK, don\\'t show again',\n profileFor: 'Profile menu for',\n changeLanguageButton: 'Skift til dansk',\n },\n};\n\nconst passwordLabels = {\n da: {\n currentPassword: 'Skriv din nuværende adgangskode',\n changePassword: 'Skift adgangskode',\n changePasswordInfo: 'Vær opmærksom på, at når du skifter din adgangskode, gælder det alle universitetets systemer.',\n newPassword: 'Skriv en ny adgangskode',\n newPasswordInfo: 'Af sikkerhedsmæssige årsager må du ikke have anvendt din adgangskode tidligere, og den må ikke indeholde personlige oplysninger.',\n repeatPassword: 'Skriv din nye adgangskode igen',\n receipt: 'Godt gået!
Din adgangskode er nu skiftet',\n goto: 'Gå til forsiden',\n requirementsHeader: 'Din nye adgangskode skal indholde:',\n requirement1: 'Mindst 12 tegn',\n requirement2: 'Ingen æ, ø, å eller Æ, Ø, Å',\n requirement3: 'Ingen mellemrum',\n requirement4: 'En kombination af bogstaver, tal og disse specialtegn:',\n rules: {\n lowerupper: 'Tilføj et lille bogstav eller et stort bogstav.',\n loweruppernumbers: 'Tilføj en kombination af små bogstaver, store bogstaver og tal.',\n lowerupperspecial: 'Tilføj en kombination af små bogstaver, store bogstaver og specialtegn.',\n loweruppernumbersspecial: 'Din adgangskode skal indeholde en kombination af bogstaver, tal og specialtegn.',\n lowernumbers: 'Tilføj et lille bogstav eller et tal.',\n lowernumbersspecial: 'Tilføj en kombination af små bogstaver, tal og specialtegn.',\n lowerspecial: 'Tilføj et lille bogstav eller et specialtegn.',\n uppernumbers: 'Tilføj et stort bogstav eller et tal.',\n uppernumbersspecial: 'Tilføj en kombination af store bogstaver, tal og specialtegn.',\n upperspecial: 'Tilføj et stort bogstav eller et specialtegn.',\n numbersspecial: 'Tilføj et tal eller et specialtegn.',\n invalid: 'Din adgangskode må ikke indeholde æ, ø, å eller Æ, Ø, Å.',\n length: 'Din adgangskode skal være på mindst ###LENGTH### tegn.',\n spaces: 'Din adgangskode må ikke indeholde mellemrum.',\n specialchars: 'Din adgangskode indholder et specieltegn, som ikke er tilladt.',\n },\n allRequirements: 'Din nye adgangskode opfylder alle krav.',\n passwordsEqual: 'De to adgangskoder er ens',\n passwordsNotEqual: 'Hov, du har skrevet to forskellige adgangskoder. Prøv igen.',\n typeNew: 'Skriv en ny adgangskode',\n repeatNew: 'Skriv din nye adgangskode igen',\n privateMail: 'Privat mailadresse',\n privateMailHint: 'Hvis du ikke har registreret din private mailadresse på Aarhus Universitet, kan du skrive din AU-mailadresse, dit AU-id eller dit studienummer.',\n privateMailHint2: 'Hvis du ikke har registreret din private mailadresse på Aarhus Universitet, kan du skrive din AU-mailadresse.',\n mailReceiptHeader: 'Vi har sendt et link til din mailadresse',\n mailReceiptParagraph: 'Brug linket til at skifte din adgangskode.',\n mailReceiptHeader2: 'Vi har sendt dit AU-brugernavn til din mail',\n mailReceiptHelp: 'Har du ikke modtaget en mail fra os?',\n mailReceiptHelp2: 'Det kan skyldes, at du har indtastet en forkert mailadresse, AU-id eller studienummer.',\n mailReceiptHelp3: 'Det kan skyldes, at du har indtastet en forkert mailadresse.',\n mailReceiptLink: 'Gå tilbage og prøv igen',\n forgotPassword: 'Glemt adgangskode',\n forgotPasswordParagraph: 'Skriv din mailadresse, så sender vi et link, som du kan bruge til at skifte din adgangskode.',\n forgotUsername: 'Glemt brugernavn',\n forgotUsernameParagraph: 'Skriv din mailadresse, så sender vi en mail med dit brugernavn.',\n allGood: 'Perfekt',\n validInput: 'Du har ikke skrevet gyldig mailadresse, AU-id eller studienummer.',\n sendBtnPassword: 'Næste',\n sendBtnUsername: 'Send mit brugernavn',\n expiredHeader: 'Linket er desværre udløbet.',\n expiredText: 'Vær opmærksom på, at linket kun er aktivt i 24 timer.',\n expiredLink: 'Prøv igen',\n goBack: 'Gå tilbage',\n supportHeader: 'Har du brug for hjælp?',\n supportStudentLink: 'https://studerende.au.dk/it-support/',\n supportStudentText: 'Support til studerende',\n supportStaffLink: 'https://medarbejdere.au.dk/administration/it/',\n supportStaffText: 'Support til medarbejdere og andre',\n },\n en: {\n currentPassword: 'Enter your current password',\n changePassword: 'Change password',\n changePasswordInfo: 'Please note that when you change your password, the change will apply to all the university’s systems.',\n newPassword: 'Enter a new password',\n newPasswordInfo: 'For security reasons, you cannot use a password that you have used before, and the password may not contain personal information.',\n repeatPassword: 'Re-enter your new password',\n receipt: 'Well done!
Your password has now been changed',\n goto: 'Go to the front page',\n requirementsHeader: 'Your new password must contain:',\n requirement1: 'At least 12 characters',\n requirement2: 'No \\'æ\\', \\'ø\\', \\'å\\' or \\'Æ\\', \\'Ø\\', \\'Å\\'',\n requirement3: 'No spaces',\n requirement4: 'A combination of letters, numbers and these special characters:',\n rules: {\n lowerupper: 'Add a lower-case letter or an upper-case letter.',\n loweruppernumbers: 'Add a combination of lower-case letters, upper-case letters and numbers.',\n lowerupperspecial: 'Add a combination of lower-case letters, upper-case letters and special characters.',\n loweruppernumbersspecial: 'Your password must contain a combination of letters, numbers and special characters.',\n lowernumbers: 'Add a lower-case letter or a number.',\n lowernumbersspecial: 'Add a combination of lower-case letters, numbers and special characters.',\n lowerspecial: 'Add a lower-case letter or a special character.',\n uppernumbers: 'Add an upper-case letter or a number.',\n uppernumbersspecial: 'Add a combination of upper-case letters, numbers and special characters.',\n upperspecial: 'Add an upper-case letter or a special character.',\n numbersspecial: 'Add a number or a special charactern',\n invalid: 'Your password may not contain the letters \\'æ\\', \\'ø\\', \\'å\\' or \\'Æ\\', \\'Ø\\', \\'Å\\'.',\n length: 'Your password must consist of at least ###LENGTH### characters.',\n spaces: 'Your password may not contain spaces.',\n specialchars: 'Your password contains a special character which is not permitted.',\n },\n allRequirements: 'Your new password meets all requirements.',\n passwordsEqual: 'The passwords match',\n passwordsNotEqual: 'Ups. You have written two different passwords. Please try again.',\n typeNew: 'Enter a new password',\n repeatNew: 'Re-enter your new password',\n privateMail: 'Private email address',\n privateMailHint: 'If you have not registered your private email address at Aarhus University, you can write your AU email address, your AU ID or your student registration number.',\n privateMailHint2: 'If you have not registered your private email address at Aarhus University, you can write your AU email address.',\n mailReceiptHeader: 'We have sent a link to your email addresse registered',\n mailReceiptParagraph: 'Use the link to change your password.',\n mailReceiptHeader2: 'We have sent an email with your username to your email address',\n mailReceiptHelp: 'Haven’t you received an email from us?',\n mailReceiptHelp2: 'Maybe you have entered the wrong email address, AU ID or student registration number.',\n mailReceiptHelp3: 'Maybe you have entered the wrong email address.',\n mailReceiptLink: 'Please go back and try again',\n forgotPassword: 'Forgot your password?',\n forgotPasswordParagraph: 'Enter your email address. We will then send you a link which you can use to reset your password.',\n forgotUsername: 'Forgot your username?',\n forgotUsernameParagraph: 'Enter your email address. We will then send you an email with your username.',\n allGood: 'Perfect',\n validInput: 'You have not entered a valid email address, AU ID or student registration number.',\n sendBtnPassword: 'Next',\n sendBtnUsername: 'Send my username',\n expiredHeader: 'Unfortunately, the link has expired.',\n expiredText: 'Please note that the link is only active for 24 hours.',\n expiredLink: 'Try again',\n goBack: 'Go back',\n supportHeader: 'Need help?',\n supportStudentLink: 'https://studerende.au.dk/en/it-support/',\n supportStudentText: 'Support for students',\n supportStaffLink: 'https://medarbejdere.au.dk/en/administration/it/',\n supportStaffText: 'Support for staff and others',\n },\n};\n\nconst countryCodes = [\n { da: 'Afghanistan', en: 'Afghanistan', code: 93 },\n { da: 'Albanien', en: 'Albania', code: 355 },\n { da: 'Algeriet', en: 'Algeria', code: 213 },\n { da: 'Amerikansk Samoa', en: 'American Samoa', code: 684 },\n { da: 'Andorra', en: 'Andorra', code: 376 },\n { da: 'Angola', en: 'Angola', code: 244 },\n { da: 'Anguilla', en: 'Anguilla', code: 1264 },\n { da: 'Antigua og Barbuda', en: 'Antigua and Barbuda', code: 1268 },\n { da: 'Argentina', en: 'Argentina', code: 54 },\n { da: 'Armenien', en: 'Armenia', code: 374 },\n { da: 'Aruba', en: 'Aruba', code: 297 },\n { da: 'Ascension', en: 'Ascension', code: 247 },\n { da: 'Aserbajdsjan', en: 'Azerbaijan', code: 994 },\n { da: 'Australien', en: 'Australia', code: 61 },\n { da: 'Bahamas', en: 'Bahamas', code: 1242 },\n { da: 'Bahrain', en: 'Bahrain', code: 973 },\n { da: 'Bangladesh', en: 'Bangladesh', code: 880 },\n { da: 'Barbados', en: 'Barbados', code: 1246 },\n { da: 'Belgien', en: 'Belgium', code: 32 },\n { da: 'Belize', en: 'Belize', code: 501 },\n { da: 'Benin', en: 'Benin', code: 229 },\n { da: 'Bermuda', en: 'Bermuda', code: 1441 },\n { da: 'Bhutan', en: 'Bhutan', code: 975 },\n { da: 'Bolivia', en: 'Bolivia', code: 591 },\n { da: 'Bosnien-Hercegovina', en: 'Bosnia Herzegovina', code: 387 },\n { da: 'Botswana', en: 'Botswana', code: 267 },\n { da: 'Brasilien', en: 'Brazil', code: 55 },\n { da: 'Britiske Jomfruøer', en: 'British Virgin Islands', code: 1284 },\n { da: 'Brunei', en: 'Brunei', code: 673 },\n { da: 'Bulgarien', en: 'Bulgaria', code: 359 },\n { da: 'Burkina Faso', en: 'Burkina Faso', code: 226 },\n { da: 'Burma', en: 'Burma', code: 95 },\n { da: 'Burundi', en: 'Burundi', code: 257 },\n { da: 'Cambodja', en: 'Cambodia', code: 855 },\n { da: 'Cameroun', en: 'Cameroon', code: 237 },\n { da: 'Canada', en: 'Canada', code: 1 },\n { da: 'Caymanøerne', en: 'Cayman Islands', code: 1345 },\n { da: 'Centralafrikanske Republik', en: 'Centralafrican Republic', code: 236 },\n { da: 'Chile', en: 'Chile', code: 56 },\n { da: 'Cocosøerne', en: 'Cocos', code: 619162 },\n { da: 'Colombia', en: 'Colombia', code: 57 },\n { da: 'Comorerne', en: 'Comoros', code: 269 },\n { da: 'Cook-øerne', en: 'Cook Islands', code: 682 },\n { da: 'Costa Rica', en: 'Costa Rica', code: 506 },\n { da: 'Cuba', en: 'Cuba', code: 53 },\n { da: 'Cypern', en: 'Cyprus', code: 357 },\n {\n da: 'Danmark',\n en: 'Denmark',\n code: 45,\n important: true,\n },\n { da: 'Demokratiske Republik Congo', en: 'Democratic Republic of Congo', code: 243 },\n { da: 'Diego Garcia', en: 'Diego Garcia', code: 246 },\n { da: 'Djibouti', en: 'Djibouti', code: 253 },\n { da: 'Dominica', en: 'Dominica', code: 1767 },\n { da: 'Dominikanske Republik', en: 'Dominican Republic', code: 1809 },\n { da: 'Ecuador', en: 'Ecuador', code: 593 },\n { da: 'Egypten', en: 'Egypt', code: 20 },\n { da: 'El Salvador', en: 'El Salvador', code: 503 },\n { da: 'Elfenbenskysten', en: 'Ivory Coast', code: 225 },\n { da: 'Eritrea', en: 'Eritrea', code: 291 },\n { da: 'Estland', en: 'Estonia', code: 372 },\n { da: 'Etiopien', en: 'Ethiopia', code: 251 },\n { da: 'Falklandsøerne', en: 'Falklands', code: 500 },\n { da: 'Fiji', en: 'Fiji', code: 679 },\n { da: 'Filippinerne', en: 'Phillipines', code: 63 },\n { da: 'Finland', en: 'Finland', code: 358 },\n { da: 'Forenede Arabiske Emirater', en: 'United Arab Emirates', code: 971 },\n { da: 'Frankrig', en: 'France', code: 33 },\n { da: 'Fransk Guyana', en: 'French Guiana', code: 594 },\n { da: 'Fransk Polynesien', en: 'French Polynesia', code: 689 },\n { da: 'Færøerne', en: 'Faroe Islands', code: 298 },\n { da: 'Gabon', en: 'Gabon', code: 241 },\n { da: 'Gambia', en: 'Gambia', code: 220 },\n { da: 'Georgien', en: 'Georgia', code: 995 },\n { da: 'Ghana', en: 'Ghana', code: 233 },\n { da: 'Gibraltar', en: 'Gibraltar', code: 350 },\n { da: 'Grenada', en: 'Grenada', code: 1473 },\n { da: 'Grækenland', en: 'Greece', code: 30 },\n { da: 'Grønland', en: 'Greenland', code: 299 },\n { da: 'Guadeloupe', en: 'Guadeloupe', code: 590 },\n { da: 'Guam', en: 'Guam', code: 1671 },\n { da: 'Guatemala', en: 'Guatemala', code: 502 },\n { da: 'Guinea', en: 'Guinea', code: 224 },\n { da: 'Guinea-Bissau', en: 'Guinea-Bissau', code: 245 },\n { da: 'Guyana', en: 'Guyana', code: 592 },\n { da: 'Haiti', en: 'Haiti', code: 509 },\n { da: 'Honduras', en: 'Honduras', code: 504 },\n { da: 'Hong Kong', en: 'Hong Kong', code: 852 },\n { da: 'Hviderusland', en: 'Belarus', code: 375 },\n { da: 'Indien', en: 'India', code: 91 },\n { da: 'Indonesien', en: 'Indonesia', code: 62 },\n { da: 'Irak', en: 'Iraq', code: 964 },\n { da: 'Iran', en: 'Iran', code: 98 },\n { da: 'Irland', en: 'Ireland', code: 353 },\n { da: 'Island', en: 'Iceland', code: 354 },\n { da: 'Israel', en: 'Israel', code: 972 },\n { da: 'Italien', en: 'Italy', code: 39 },\n { da: 'Jamaica', en: 'Jamaica', code: 1876 },\n { da: 'Japan', en: 'Japan', code: 81 },\n { da: 'Jomfruøerne', en: 'Virgin Islands', code: 1340 },\n { da: 'Jordan', en: 'Jordan', code: 962 },\n { da: 'Juleøen', en: 'Christmas Island', code: 619164 },\n { da: 'Kap Verde', en: 'Cape Verde', code: 238 },\n { da: 'Kasakhstan', en: 'Kazakhstan', code: 7 },\n { da: 'Kenya', en: 'Kenya', code: 254 },\n { da: 'Kina', en: 'China', code: 86 },\n { da: 'Kirgisistan', en: 'Kyrgyzstan', code: 996 },\n { da: 'Kiribati', en: 'Kiribati', code: 686 },\n { da: 'Kroatien', en: 'Croatia', code: 385 },\n { da: 'Kuwait', en: 'Kuwait', code: 965 },\n { da: 'Laos', en: 'Laos', code: 856 },\n { da: 'Lesotho', en: 'Lesotho', code: 266 },\n { da: 'Letland', en: 'Latvia', code: 371 },\n { da: 'Libanon', en: 'Lebanon', code: 961 },\n { da: 'Liberia', en: 'Liberia', code: 231 },\n { da: 'Libyen', en: 'Libya', code: 218 },\n { da: 'Liechtenstein', en: 'Liechtenstein', code: 423 },\n { da: 'Litauen', en: 'Lithuania', code: 370 },\n { da: 'Luxemburg', en: 'Luxemburg', code: 352 },\n { da: 'Macau', en: 'Macau', code: 853 },\n { da: 'Madagaskar', en: 'Madagascar', code: 261 },\n { da: 'Makedonien', en: 'Macedonia', code: 389 },\n { da: 'Malawi', en: 'Malawi', code: 265 },\n { da: 'Malaysia', en: 'Malaysia', code: 60 },\n { da: 'Maldiverne', en: 'Maldives', code: 960 },\n { da: 'Mali', en: 'Mali', code: 223 },\n { da: 'Malta', en: 'Malta', code: 356 },\n { da: 'Marokko', en: 'Morocco', code: 212 },\n { da: 'Marshalløerne', en: 'Marshall Islands', code: 692 },\n { da: 'Martinique', en: 'Martinique', code: 596 },\n { da: 'Mauretanien', en: 'Mauritania', code: 222 },\n { da: 'Mauritius', en: 'Mauritius', code: 230 },\n { da: 'Mayotte', en: 'Mayotte', code: 262 },\n { da: 'Mexico', en: 'Mexico', code: 52 },\n { da: 'Mikronesien', en: 'Micronesia', code: 691 },\n { da: 'Moldova', en: 'Moldova', code: 373 },\n { da: 'Monaco', en: 'Monaco', code: 377 },\n { da: 'Mongoliet', en: 'Mongolia', code: 976 },\n { da: 'Montenegro', en: 'Montenegro', code: 382 },\n { da: 'Montserrat', en: 'Montserrat', code: 1664 },\n { da: 'Mozambique', en: 'Mozambique', code: 258 },\n { da: 'Namibia', en: 'Namibia', code: 264 },\n { da: 'Nauru', en: 'Nauru', code: 674 },\n { da: 'Nederlandene', en: 'Netherlands', code: 31 },\n { da: 'Nederlandske Antiller', en: 'Netherlands Antilles', code: 599 },\n { da: 'Nepal', en: 'Nepal', code: 977 },\n { da: 'New Zealand', en: 'New Zealand', code: 64 },\n { da: 'Nicaragua', en: 'Nicaragua', code: 505 },\n { da: 'Niger', en: 'Niger', code: 227 },\n { da: 'Nigeria', en: 'Nigeria', code: 234 },\n { da: 'Niue', en: 'Niue', code: 683 },\n { da: 'Nordirland', en: 'Northern Ireland', code: 44 },\n { da: 'Nordkorea', en: 'North Korea', code: 850 },\n { da: 'Norfolk', en: 'Norfolk', code: 672 },\n { da: 'Norge', en: 'Norway', code: 47 },\n { da: 'Ny Caledonien', en: 'New Caledonia', code: 687 },\n { da: 'Oman', en: 'Oman', code: 968 },\n { da: 'Pakistan', en: 'Pakistan', code: 92 },\n { da: 'Panama', en: 'Panama', code: 507 },\n { da: 'Papua Ny Guinea', en: 'Papua New Guinea', code: 675 },\n { da: 'Paraguay', en: 'Paraguay', code: 595 },\n { da: 'Peru', en: 'Peru', code: 51 },\n { da: 'Polen', en: 'Poland', code: 48 },\n { da: 'Portugal', en: 'Portugal', code: 351 },\n { da: 'Puerto Rico', en: 'Puerto Rico', code: 1787 },\n { da: 'Qatar', en: 'Qatar', code: 974 },\n { da: 'Republikken Congo', en: 'Republic of the Congo', code: 242 },\n { da: 'Réunion', en: 'Reunion', code: 262 },\n { da: 'Rumænien', en: 'Romania', code: 40 },\n { da: 'Rusland', en: 'Russia', code: 7 },\n { da: 'Rwanda', en: 'Rwanda', code: 250 },\n { da: 'Saint Helena', en: 'Saint Helena', code: 290 },\n { da: 'Saint Kitts og Nevis', en: 'Saint Kitts and Nevis', code: 1869 },\n { da: 'Saint Lucia', en: 'Saint Lucia', code: 1758 },\n { da: 'Saint Pierre og Miquelon', en: 'Saint Pierre and Miquelon', code: 508 },\n { da: 'Saint Vincent og Grenadinerne', en: 'Saint Vincent and the Grenadines', code: 1784 },\n { da: 'Salomonøerne', en: 'Solomons', code: 677 },\n { da: 'San Marino', en: 'San Marino', code: 378 },\n { da: 'Sao Tomé og Principe', en: 'Sao Tome and Principe', code: 239 },\n { da: 'Saudi-Arabien', en: 'Saudi Arabia', code: 966 },\n { da: 'Schweiz', en: 'Switzerland', code: 41 },\n { da: 'Senegal', en: 'Senegal', code: 221 },\n { da: 'Serbien', en: 'Serbia', code: 381 },\n { da: 'Seychellerne', en: 'Seychelles', code: 248 },\n { da: 'Sierra Leone', en: 'Sierra Leone', code: 232 },\n { da: 'Singapore', en: 'Singapore', code: 65 },\n { da: 'Slovakiet', en: 'Slovakia', code: 421 },\n { da: 'Slovenien', en: 'Slovenia', code: 386 },\n { da: 'Somalia', en: 'Somalia', code: 252 },\n { da: 'Spanien', en: 'Spain', code: 34 },\n { da: 'Sri Lanka', en: 'Sri Lanka', code: 94 },\n { da: 'Storbritannien', en: 'United Kingdom', code: 44 },\n { da: 'Sudan', en: 'Sudan', code: 249 },\n { da: 'Surinam', en: 'Suriname', code: 597 },\n { da: 'Sverige', en: 'Sweden', code: 46 },\n { da: 'Swaziland', en: 'Swaziland', code: 268 },\n { da: 'Sydafrika', en: 'South Africa', code: 27 },\n { da: 'Sydkorea', en: 'South Korea', code: 82 },\n { da: 'Sydsudan', en: 'South Sudan', code: 211 },\n { da: 'Syrien', en: 'Syria', code: 963 },\n { da: 'Tadsjikistan', en: 'Tajikistan', code: 992 },\n { da: 'Taiwan', en: 'Taiwan', code: 886 },\n { da: 'Tanzania', en: 'Tanzania', code: 255 },\n { da: 'Tchad', en: 'Chad', code: 235 },\n { da: 'Thailand', en: 'Thailand', code: 66 },\n { da: 'Tjekkiet', en: 'Czech republic', code: 420 },\n { da: 'Togo', en: 'Togo', code: 228 },\n { da: 'Tonga', en: 'Tonga', code: 676 },\n { da: 'Trinidad og Tobago', en: 'Trinidad and Tobago', code: 1868 },\n { da: 'Tunesien', en: 'Tunisia', code: 216 },\n { da: 'Turkmenistan', en: 'Turkmenistan', code: 993 },\n { da: 'Turks- og Caicosøerne', en: 'Turks and Caicos Islands', code: 1649 },\n { da: 'Tuvalu', en: 'Tuvalu', code: 688 },\n { da: 'Tyrkiet', en: 'Turkey', code: 90 },\n { da: 'Tyskland', en: 'Germany', code: 49 },\n { da: 'Uganda', en: 'Uganda', code: 256 },\n { da: 'Ukraine', en: 'Ukraine', code: 380 },\n { da: 'Ungarn', en: 'Hungary', code: 36 },\n { da: 'Uruguay', en: 'Uruguay', code: 598 },\n { da: 'USA', en: 'USA', code: 1 },\n { da: 'Usbekistan', en: 'Uzbekistan', code: 998 },\n { da: 'Vanuatu', en: 'Vanuatu', code: 678 },\n { da: 'Venezuela', en: 'Venezuela', code: 58 },\n { da: 'Vest Samoa', en: 'West Samoa', code: 685 },\n { da: 'Vietnam', en: 'Vietnam', code: 84 },\n { da: 'Yemen', en: 'Yemen', code: 967 },\n { da: 'Zambia', en: 'Zambia', code: 260 },\n { da: 'Zimbabwe', en: 'Zimbabwe', code: 263 },\n { da: 'Ækvatorialguinea', en: 'Equatorial Guinea', code: 240 },\n { da: 'Østrig', en: 'Austria', code: 43 },\n];\n\n\nexport {\n flowboxLabels,\n newsLabels,\n universeLabels,\n profileLabels,\n passwordLabels,\n countryCodes,\n};\n","/* eslint-disable max-len */\r\n/* eslint-env browser */\r\nimport React, { FC } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { passwordLabels } from '@aarhus-university/au-lib-react-components/src/lib/i18n';\r\nimport { RootState } from '../../reducers';\r\nimport Lang from '../../lib/i18n';\r\n\r\nconst ReceiptComponent: FC = ({\r\n context,\r\n confirmDetails,\r\n onContactSupport,\r\n uiBusy,\r\n}: ReceiptSelfServiceComponentProps) => {\r\n const {\r\n key,\r\n successAccessGrantHeadingDa,\r\n successAccessGrantHeadingEn,\r\n successAccessGrantTextDa,\r\n successAccessGrantTextEn,\r\n activationReturnUrlDa,\r\n activationReturnUrlEn,\r\n activationReturnTextDa,\r\n activationReturnTextEn,\r\n successUserCreatedHeadingDa,\r\n successUserCreatedHeadingEn,\r\n successUserCreatedTextDa,\r\n successUserCreatedTextEn,\r\n } = context as ISignupContext;\r\n return (\r\n <>\r\n {confirmDetails && confirmDetails.result === 'AccessGrantedToExistingUser' && (\r\n
\r\n
\r\n
\r\n\r\n

\r\n {window.appLang === 'da' ? successAccessGrantHeadingDa : successAccessGrantHeadingEn}\r\n
\r\n {window.appLang === 'da' ? successAccessGrantTextDa : successAccessGrantTextEn}\r\n

\r\n \r\n
\r\n
\r\n )}\r\n {confirmDetails && confirmDetails.result === 'AccessGrantedToNewUser' && (\r\n <>\r\n
\r\n
\r\n
\r\n\r\n

\r\n {window.appLang === 'da' ? successUserCreatedHeadingDa : successUserCreatedHeadingEn}\r\n
\r\n {window.appLang === 'da' ? successUserCreatedTextDa : successUserCreatedTextEn}\r\n

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

{passwordLabels[window.appLang].mailReceiptHelp}

\r\n

{passwordLabels[window.appLang].mailReceiptHelp3}

\r\n {passwordLabels[window.appLang].mailReceiptLink}\r\n
\r\n
\r\n

{passwordLabels[window.appLang].supportHeader}

\r\n {passwordLabels[window.appLang].supportStudentText}\r\n
\r\n {passwordLabels[window.appLang].supportStaffText}\r\n
\r\n
\r\n
\r\n
\r\n \r\n )}\r\n {confirmDetails && confirmDetails.result === 'MatchingExistingUserFound' && (\r\n
\r\n

{Lang[window.appLang].looksLikeYouAlreadyExist}

\r\n

{Lang[window.appLang].didYouForget}

\r\n \r\n

{Lang[window.appLang].ifYouStillCantGetAccess}

\r\n {\r\n if (typeof onContactSupport === 'function') {\r\n onContactSupport();\r\n }\r\n }}\r\n >\r\n {Lang[window.appLang].contactSupport}\r\n \r\n
\r\n )}\r\n {confirmDetails && confirmDetails.result === 'ServiceDeskIssueCreated' && (\r\n
\r\n
\r\n
\r\n\r\n

\r\n {Lang[window.appLang].serviceDeskCreated}\r\n
\r\n
\r\n \r\n {((confirmDetails as IUserSignupByFormResult).user.privateEmail\r\n ? Lang[window.appLang].serviceDeskCreatedText\r\n : Lang[window.appLang].serviceDeskCreatedNoEmailText)}\r\n
\r\n {(confirmDetails as IUserSignupByFormResult).user.privateEmail}\r\n
\r\n

\r\n
\r\n {`${Lang[window.appLang].serviceDeskQuestions} `}\r\n support@au.dk\r\n
\r\n
\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nReceiptComponent.displayName = 'ReceiptComponent';\r\nexport default connect(\r\n (state: RootState) => state.selfservice,\r\n)(ReceiptComponent);\r\n","/* eslint-disable react/jsx-props-no-spreading */\r\nimport React, { FC } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useForm } from 'react-hook-form';\r\nimport { RootState } from '../../reducers';\r\nimport Lang from '../../lib/i18n';\r\nimport { getContextBasedHeadline } from '../../lib/helpers';\r\nimport {\r\n userSignupByLdap as userSignupByLdapConnect,\r\n} from '../../reducers/selfservice';\r\nimport ReceiptComponent from './ReceiptComponent';\r\nimport ErrorComponent from '../common/ErrorComponent';\r\n\r\nconst CreateAUIDComponent: FC = ({\r\n context,\r\n error,\r\n userSignupByLdapResult,\r\n userSignupByLdap,\r\n uiBusy,\r\n}: CreateAUIDComponentProps) => {\r\n const {\r\n register, handleSubmit, formState: { errors },\r\n } = useForm();\r\n\r\n const onSubmit = (data: IUserSignupByLdapPayload) => {\r\n userSignupByLdap({\r\n username: data.username,\r\n password: data.password,\r\n context: context?.key as string,\r\n });\r\n };\r\n\r\n if (!context) {\r\n return null;\r\n }\r\n\r\n if (userSignupByLdapResult && userSignupByLdapResult.result !== 'InvalidCredentials' && userSignupByLdapResult.result !== 'Error') {\r\n return (\r\n \r\n );\r\n }\r\n\r\n let buttonClass = 'button';\r\n if (uiBusy) {\r\n buttonClass = `${buttonClass} button--processing`;\r\n }\r\n\r\n if (error != null) {\r\n buttonClass = `${buttonClass} visually-disabled`;\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
{getContextBasedHeadline(window.appLang, context as ISignupContext)}
\r\n

{Lang[window.appLang].loginUsingAu}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {Lang[window.appLang].forgotLink}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n (userSignupByLdapResult && userSignupByLdapResult.result === 'Error') && (\r\n
\r\n \r\n
\r\n )\r\n }\r\n {\r\n error && (\r\n
\r\n \r\n
\r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nCreateAUIDComponent.displayName = 'CreateAUIDComponent';\r\nexport default connect(\r\n (state: RootState) => state.selfservice,\r\n {\r\n userSignupByLdap: userSignupByLdapConnect,\r\n },\r\n)(CreateAUIDComponent);\r\n","export const emailRegex = /^(?=.{6,320}$)([0-9A-Za-z\\x21\\x23\\x24\\x25\\x26\\x27\\x2a\\x2b\\x2f\\x3d\\x3f\\x5e\\x5f\\x60\\x7b\\x7c\\x7d\\x7e\\x2d]([0-9A-Za-z\\x21\\x23\\x24\\x25\\x26\\x27\\x2a\\x2b\\x2f\\x3d\\x3f\\x5e\\x5f\\x60\\x7b\\x7c\\x7d\\x7e\\x2d\\x2e]{0,62}[0-9A-Za-z\\x21\\x23\\x24\\x25\\x26\\x27\\x2a\\x2b\\x2f\\x3d\\x3f\\x5e\\x5f\\x60\\x7b\\x7c\\x7d\\x7e\\x2d])?\\x40(?=.{4,255}$)(([0-9A-Za-z]([0-9A-Za-z\\x2d]{0,254}[0-9A-Za-z])?\\x2e)+[0-9A-Za-z]([0-9A-Za-z\\x2d]{0,254}[0-9A-Za-z])?))$/;\r\nexport const nameRegex = /^(?=.{6,320}$)([0-9A-Za-z\\x21\\x23\\x24\\x25\\x26\\x27\\x2a\\x2b\\x2f\\x3d\\x3f\\x5e\\x5f\\x60\\x7b\\x7c\\x7d\\x7e\\x2d]([0-9A-Za-z\\x21\\x23\\x24\\x25\\x26\\x27\\x2a\\x2b\\x2f\\x3d\\x3f\\x5e\\x5f\\x60\\x7b\\x7c\\x7d\\x7e\\x2d\\x2e]{0,62}[0-9A-Za-z\\x21\\x23\\x24\\x25\\x26\\x27\\x2a\\x2b\\x2f\\x3d\\x3f\\x5e\\x5f\\x60\\x7b\\x7c\\x7d\\x7e\\x2d])?\\x40(?=.{4,255}$)(([0-9A-Za-z]([0-9A-Za-z\\x2d]{0,254}[0-9A-Za-z])?\\x2e)+[0-9A-Za-z]([0-9A-Za-z\\x2d]{0,254}[0-9A-Za-z])?))$/;\r\n","/* eslint-disable react/jsx-props-no-spreading */\r\nimport React, { FC, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useForm } from 'react-hook-form';\r\nimport AUSpinnerComponent from '@aarhus-university/au-lib-react-components/src/components/delphinus/AUSpinnerComponent';\r\nimport { RootState } from '../../reducers';\r\nimport Lang from '../../lib/i18n';\r\nimport { getContextBasedHeadline, mod11 } from '../../lib/helpers';\r\nimport {\r\n userSignupByCpr as userSignupByCprConnect,\r\n} from '../../reducers/selfservice';\r\nimport ReceiptComponent from './ReceiptComponent';\r\nimport ErrorComponent from '../common/ErrorComponent';\r\nimport { emailRegex } from '../../lib/common';\r\n\r\nconst CreateCPRComponent: FC = ({\r\n context,\r\n error,\r\n userSignupByCprResult,\r\n userSignupByCpr,\r\n uiBusy,\r\n}: CreateCPRSelfServiceComponentProps) => {\r\n const {\r\n register, handleSubmit, formState: { errors },\r\n } = useForm();\r\n\r\n const [cpr, setCpr] = useState(null);\r\n\r\n const onSubmit = (data: IUserSignupByCprPayload) => {\r\n userSignupByCpr({\r\n cpr: cpr as string,\r\n privateEmail: data.privateEmail,\r\n preferredLanguage: 'en',\r\n createServiceDeskIssueIfNeeded: false,\r\n context: context?.key as string,\r\n });\r\n };\r\n\r\n if (!context) {\r\n return null;\r\n }\r\n\r\n const {\r\n key,\r\n } = context;\r\n\r\n let disclaimer = Lang[window.appLang].disclaimerDefaultText;\r\n const { disclaimerDa, disclaimerEn } = context as ISignupContext;\r\n if (window.appLang === 'da' && disclaimerDa !== null) {\r\n disclaimer = disclaimerDa;\r\n } else if (window.appLang === 'en' && disclaimerEn !== null) {\r\n disclaimer = disclaimerEn;\r\n }\r\n\r\n if (cpr == null) {\r\n return (\r\n
\r\n
{getContextBasedHeadline(window.appLang, context as ISignupContext)}
\r\n

{Lang[window.appLang].loginUsingCpr}

\r\n {\r\n setCpr(data.cpr);\r\n })}\r\n >\r\n
\r\n \r\n
\r\n
\r\n \r\n {\r\n if (x === false) {\r\n return Lang[window.appLang].mustAcceptDisclaimer;\r\n }\r\n return true;\r\n },\r\n })}\r\n disabled={uiBusy}\r\n />\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n let buttonClass = 'button';\r\n if (uiBusy) {\r\n buttonClass = `${buttonClass} button--processing`;\r\n }\r\n\r\n if (error != null) {\r\n buttonClass = `${buttonClass} visually-disabled`;\r\n }\r\n\r\n return (\r\n
\r\n {\r\n userSignupByCpr({\r\n cpr: cpr as string,\r\n privateEmail: null,\r\n preferredLanguage: null,\r\n createServiceDeskIssueIfNeeded: false,\r\n context: context?.key as string,\r\n });\r\n }}\r\n >\r\n {userSignupByCprResult && userSignupByCprResult.result === 'PrivateEmailNeeded' && (\r\n <>\r\n

{Lang[window.appLang].loginUsingCpr}

\r\n
\r\n
\r\n \r\n {errors.privateEmail\r\n && (\r\n \r\n {errors.privateEmail.message}\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n )}\r\n {\r\n (userSignupByCprResult && userSignupByCprResult.result !== 'PrivateEmailNeeded'\r\n && userSignupByCprResult.result !== 'Error') && (\r\n {\r\n userSignupByCpr({\r\n privateEmail: userSignupByCprResult.user.privateEmail as string,\r\n preferredLanguage: userSignupByCprResult.user.preferredLanguage as string,\r\n cpr: cpr as string,\r\n createServiceDeskIssueIfNeeded: true,\r\n context: key,\r\n });\r\n }}\r\n />\r\n )\r\n }\r\n {\r\n userSignupByCprResult && userSignupByCprResult.result === 'Error' && (\r\n <>\r\n

{Lang[window.appLang].loginUsingCpr}

\r\n \r\n \r\n \r\n )\r\n }\r\n {\r\n error && (\r\n
\r\n \r\n
\r\n )\r\n }\r\n \r\n
\r\n );\r\n};\r\n\r\nCreateCPRComponent.displayName = 'CreateCPRComponent';\r\nexport default connect(\r\n (state: RootState) => state.selfservice,\r\n {\r\n userSignupByCpr: userSignupByCprConnect,\r\n },\r\n)(CreateCPRComponent);\r\n","/* eslint-disable react/jsx-props-no-spreading */\r\n/* eslint-disable max-len */\r\nimport React, { FC, useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useForm } from 'react-hook-form';\r\nimport { RootState } from '../../reducers';\r\nimport Lang from '../../lib/i18n';\r\nimport { getContextBasedHeadline } from '../../lib/helpers';\r\nimport {\r\n userSignupByForm as userSignupByFormConnect,\r\n} from '../../reducers/selfservice';\r\nimport { emailRegex } from '../../lib/common';\r\nimport ErrorComponent from '../common/ErrorComponent';\r\nimport ReceiptComponent from './ReceiptComponent';\r\n\r\nconst CreateFormComponent: FC = ({\r\n context,\r\n error,\r\n userSignupByFormResult,\r\n userSignupByForm,\r\n uiBusy,\r\n}: CreateFormSelfServiceComponentProps) => {\r\n const {\r\n register, handleSubmit, formState: { errors }, setError,\r\n } = useForm();\r\n\r\n useEffect(() => {\r\n if (userSignupByFormResult && userSignupByFormResult.result === 'UnderAge' && !errors.dateOfBirth_day) {\r\n setError('dateOfBirth_day', {\r\n type: 'manual',\r\n message: Lang[window.appLang].userUnderAge,\r\n });\r\n }\r\n });\r\n\r\n const onSubmit = (data: IUserSignupByFormUser) => {\r\n const date = new Date(\r\n data.dateOfBirth_year,\r\n (+data.dateOfBirth_month - 1),\r\n data.dateOfBirth_day,\r\n );\r\n\r\n /* eslint eqeqeq: 0 */\r\n const isValidDate = (Boolean(+date) && date.getDate() == data.dateOfBirth_day);\r\n if (!isValidDate) {\r\n setError('dateOfBirth_day', {\r\n type: 'manual',\r\n message: Lang[window.appLang].invalidDate,\r\n });\r\n } else {\r\n userSignupByForm({\r\n user: {\r\n ...data,\r\n dateOfBirth: new Date(Date.UTC(\r\n data.dateOfBirth_year,\r\n data.dateOfBirth_month - 1,\r\n data.dateOfBirth_day,\r\n )),\r\n preferredLanguage: 'en',\r\n },\r\n createServiceDeskIssueIfNeeded: false,\r\n context: context?.key as string,\r\n });\r\n }\r\n };\r\n\r\n if (!context) {\r\n return null;\r\n }\r\n\r\n if (userSignupByFormResult && (userSignupByFormResult.result === 'AccessGrantedToNewUser'\r\n || userSignupByFormResult.result === 'MatchingExistingUserFound'\r\n || userSignupByFormResult.result === 'ServiceDeskIssueCreated')) {\r\n return (\r\n {\r\n userSignupByForm({\r\n user: {\r\n firstName: userSignupByFormResult.user.firstName,\r\n lastName: userSignupByFormResult.user.lastName,\r\n dateOfBirth: new Date(userSignupByFormResult.user.dateOfBirth as string),\r\n gender: userSignupByFormResult.user.gender,\r\n privateEmail: userSignupByFormResult.user.privateEmail as string,\r\n preferredLanguage: userSignupByFormResult.user.preferredLanguage as string,\r\n nationality: null,\r\n organizationUnit: null,\r\n title: null,\r\n },\r\n createServiceDeskIssueIfNeeded: true,\r\n context: context?.key as string,\r\n });\r\n }}\r\n />\r\n );\r\n }\r\n\r\n let disclaimer = Lang[window.appLang].disclaimerDefaultText;\r\n const { disclaimerDa, disclaimerEn } = context as ISignupContext;\r\n if (window.appLang === 'da' && disclaimerDa !== null) {\r\n disclaimer = disclaimerDa;\r\n } else if (window.appLang === 'en' && disclaimerEn !== null) {\r\n disclaimer = disclaimerEn;\r\n }\r\n\r\n let buttonClass = 'button';\r\n if (uiBusy) {\r\n buttonClass = `${buttonClass} button--processing`;\r\n }\r\n\r\n if (error != null) {\r\n buttonClass = `${buttonClass} visually-disabled`;\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
{getContextBasedHeadline(window.appLang, context as ISignupContext)}
\r\n

{Lang[window.appLang].loginUsingForm}

\r\n
\r\n
\r\n \r\n {errors.firstName\r\n && (\r\n \r\n {errors.firstName.message}\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n {errors.lastName\r\n && (\r\n \r\n {errors.lastName.message}\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n {errors.privateEmail\r\n && (\r\n \r\n {errors.privateEmail.message}\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {' '}\r\n
{Lang[window.appLang].birthDate}
\r\n
\r\n {(errors.dateOfBirth_day || errors.dateOfBirth_month || errors.dateOfBirth_year)\r\n && (\r\n \r\n {\r\n [errors.dateOfBirth_day ? errors.dateOfBirth_day.message : null, errors.dateOfBirth_month ? errors.dateOfBirth_month.message : null, errors.dateOfBirth_year ? errors.dateOfBirth_year.message : null].filter(Boolean).join('. ')\r\n }\r\n \r\n )}\r\n
\r\n
\r\n \r\n {\r\n if (value < 1 || value > 31) {\r\n return Lang[window.appLang].dayMustBeInRange;\r\n }\r\n return true;\r\n },\r\n })}\r\n />\r\n
\r\n
\r\n \r\n {\r\n if (value < 1 || value > 12) {\r\n return Lang[window.appLang].monthMustBeInRange;\r\n }\r\n return true;\r\n },\r\n })}\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {\r\n if (x === false) {\r\n return Lang[window.appLang].mustAcceptDisclaimer;\r\n }\r\n return true;\r\n },\r\n })}\r\n disabled={uiBusy}\r\n />\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n (userSignupByFormResult && userSignupByFormResult.result === 'Error') && (\r\n
\r\n \r\n
\r\n )\r\n }\r\n {\r\n error && (\r\n
\r\n \r\n
\r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nCreateFormComponent.displayName = 'CreateFormComponent';\r\nexport default connect(\r\n (state: RootState) => state.selfservice,\r\n {\r\n userSignupByForm: userSignupByFormConnect,\r\n },\r\n)(CreateFormComponent);\r\n","import React, { VFC } from 'react';\r\nimport {\r\n BrowserRouter as Router,\r\n Switch,\r\n Route,\r\n} from 'react-router-dom';\r\nimport SelfServiceFrontComponent from './selfservice/SelfServiceFrontComponent';\r\nimport CreateAUIDComponent from './selfservice/CreateAUIDComponent';\r\nimport CreateCPRComponent from './selfservice/CreateCPRComponent';\r\nimport CreateFormComponent from './selfservice/CreateFormComponent';\r\n\r\ndeclare global {\r\n interface Window {\r\n userRegistrationApiUri: string;\r\n appLang: string,\r\n }\r\n}\r\n\r\nconst SelfServiceWrapperComponent: VFC = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nSelfServiceWrapperComponent.displayName = 'SelfServiceWrapperComponent';\r\nexport default SelfServiceWrapperComponent;\r\n","import React, { FC } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { RootState } from '../../reducers';\r\nimport Lang from '../../lib/i18n';\r\n\r\nconst ConfirmAdminComponent: FC = ({\r\n isDryRun,\r\n confirmDetails,\r\n isForceCreateNewUser,\r\n onCancel,\r\n onConfirm,\r\n onReturn,\r\n returnText,\r\n uiBusy,\r\n}: ConfirmAdminComponentProps) => (\r\n <>\r\n {isDryRun === true ? (\r\n <>\r\n {\r\n confirmDetails.result === 'AccessGrantedToExistingUser' && (\r\n

{Lang[window.appLang].grantUserRightsToThisUser}

\r\n )\r\n }\r\n {\r\n confirmDetails.result === 'AccessGrantedToNewUser'\r\n && isForceCreateNewUser === true && (\r\n

{Lang[window.appLang].createThisUser}

\r\n )\r\n }\r\n {\r\n confirmDetails.result === 'AccessGrantedToNewUser'\r\n && isForceCreateNewUser !== true && (\r\n

{Lang[window.appLang].createThisUser}

\r\n )\r\n }\r\n {confirmDetails.result === 'AccessGrantedToExistingUserCprChanged' && (\r\n

{Lang[window.appLang].changeCprAndGrant}

\r\n )}\r\n <>\r\n {confirmDetails.user.firstName}\r\n {' '}\r\n {confirmDetails.user.lastName}\r\n
\r\n {\r\n confirmDetails.user.privateEmail && (\r\n <>\r\n {confirmDetails.user.privateEmail}\r\n
\r\n \r\n )\r\n }\r\n {\r\n confirmDetails.user.cpr && (\r\n <>\r\n {`${Lang[window.appLang].cprNumber}: ${confirmDetails.user.cpr}`}\r\n
\r\n \r\n )\r\n }\r\n {\r\n confirmDetails.user.auid !== 0 && (\r\n <>\r\n {`${Lang[window.appLang].auid}: ${confirmDetails.user.auid}`}\r\n
\r\n \r\n )\r\n }\r\n {\r\n confirmDetails.assignedRoles.length > 0 && (\r\n <>\r\n {Lang[window.appLang].userRights}\r\n
    \r\n {confirmDetails.assignedRoles.map((r) =>
  • {r}
  • )}\r\n
\r\n \r\n )\r\n }\r\n \r\n
\r\n \r\n {confirmDetails.result === 'AccessGrantedToNewUser' ? Lang[window.appLang].create : Lang[window.appLang].grant}\r\n \r\n \r\n {Lang[window.appLang].cancel}\r\n \r\n\r\n
\r\n \r\n ) : (\r\n
\r\n
\r\n {confirmDetails.result === 'AccessGrantedToNewUser' ? (\r\n

\r\n {Lang[window.appLang].created}\r\n
\r\n {Lang[window.appLang].userCreated}\r\n
\r\n {\r\n confirmDetails.user.auid !== 0 && (\r\n
\r\n {`${Lang[window.appLang].auid}: ${confirmDetails.user.auid}`}\r\n
\r\n )\r\n }\r\n

\r\n ) : (\r\n

\r\n {Lang[window.appLang].granted}\r\n
\r\n {Lang[window.appLang].userGranted}\r\n
\r\n {\r\n confirmDetails.user.auid !== 0 && (\r\n
\r\n {`${Lang[window.appLang].auid}: ${confirmDetails.user.auid}`}\r\n
\r\n )\r\n }\r\n

\r\n )}\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n);\r\n\r\nConfirmAdminComponent.displayName = 'ConfirmAdminComponent';\r\nexport default connect(\r\n (state: RootState) => state.administrative,\r\n)(ConfirmAdminComponent);\r\n","/* eslint-disable react/jsx-props-no-spreading */\r\nimport React, { FC } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useForm } from 'react-hook-form';\r\nimport Lang from '../../lib/i18n';\r\nimport { RootState } from '../../reducers';\r\n\r\nconst ExistingUsersAdminComponent: FC = ({\r\n existingUsers,\r\n newUser,\r\n onSelectExistingUser,\r\n cpr,\r\n onSelectNone,\r\n onGoBack,\r\n uiBusy,\r\n}: ExistingUsersAdminComponentProps) => {\r\n const {\r\n register, handleSubmit,\r\n } = useForm();\r\n\r\n const onSubmit = (data: IAdminExistingUserPayload) => {\r\n const selected = parseInt(data.personSelect, 10);\r\n if (Number.isNaN(selected) || selected === 0) {\r\n onSelectNone();\r\n return;\r\n }\r\n\r\n onSelectExistingUser(selected);\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n cpr ? (\r\n

\r\n {` ${Lang[window.appLang].noUsersFoundForCpr} ${cpr}.`}\r\n

\r\n ) : (\r\n

{Lang[window.appLang].possibleDuplicatesFound}

\r\n )\r\n }\r\n
\r\n \r\n {cpr ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {existingUsers.map((u) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{Lang[window.appLang].existingUsersOnCprHeading}{Lang[window.appLang].existingUsersOnSearchHeading}
 {Lang[window.appLang].firstName}{Lang[window.appLang].lastName}{Lang[window.appLang].privateEmail}{Lang[window.appLang].title}{Lang[window.appLang].organizationUnit}{Lang[window.appLang].auid}{Lang[window.appLang].cpr} 
\r\n \r\n {u.firstName}{u.lastName}{u.privateEmail}{u.title}{u.organizationUnit}{u.auid}{u.cprNr}
\r\n {Lang[window.appLang].noMatchCreate}
{newUser.firstName}{newUser.lastName}{newUser.privateEmail}   {newUser.cpr}
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nExistingUsersAdminComponent.displayName = 'ExistingUsersAdminComponent';\r\nexport default connect(\r\n (state: RootState) => state.administrative,\r\n)(ExistingUsersAdminComponent);\r\n","/* eslint-disable max-len */\r\n/* eslint-disable react/jsx-props-no-spreading */\r\nimport React, { FC } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useForm } from 'react-hook-form';\r\nimport { RootState } from '../../reducers';\r\nimport ErrorComponent from '../common/ErrorComponent';\r\nimport ConfirmAdminComponent from './ConfirmAdminComponent';\r\nimport ExistingUsersAdminComponent from './ExistingUsersAdminComponent';\r\nimport Lang from '../../lib/i18n';\r\nimport { emailRegex } from '../../lib/common';\r\nimport {\r\n adminSignupByForm as adminSignupByFormConnect,\r\n adminResetSignup as adminResetSignupConnect,\r\n resetAdminSignupByFormResponse as resetAdminSignupByFormResponseConnect,\r\n} from '../../reducers/administrative';\r\n\r\nconst CreateFormComponent: FC = ({\r\n context,\r\n error,\r\n adminSignupByForm,\r\n adminResetSignup,\r\n setIsFormSignup,\r\n adminSignupByFormResult,\r\n resetAdminSignupByFormResponse,\r\n adminSignupByFormRequest,\r\n uiBusy,\r\n countryCodes,\r\n}: CreateFormAdminComponentProps) => {\r\n const {\r\n register, handleSubmit, formState: { errors }, setError,\r\n } = useForm();\r\n\r\n if (!context) {\r\n return null;\r\n }\r\n\r\n const signupByForm = (\r\n user: IAdminSignupByFormUser,\r\n dryRun: boolean,\r\n forceCreateNewUser: boolean,\r\n matchingExistingUser: number,\r\n sendAccountActivationEmail: boolean,\r\n ): void => {\r\n adminSignupByForm({\r\n user: {\r\n ...user,\r\n dateOfBirth: new Date(Date.UTC(\r\n user.dateOfBirth_year,\r\n user.dateOfBirth_month - 1,\r\n user.dateOfBirth_day,\r\n )),\r\n preferredLanguage: user.nationality === 'DK' ? 'da' : 'en',\r\n },\r\n dryRun,\r\n forceCreateNewUser,\r\n matchingExistingUser,\r\n context: context?.key as string,\r\n sendAccountActivationEmail,\r\n });\r\n };\r\n\r\n const onSubmit = (data: IAdminSignupByFormUser): void => {\r\n const date = new Date(\r\n data.dateOfBirth_year,\r\n (+data.dateOfBirth_month - 1),\r\n data.dateOfBirth_day,\r\n );\r\n\r\n /* eslint eqeqeq: 0 */\r\n const isValidDate = (Boolean(+date) && date.getDate() == data.dateOfBirth_day);\r\n if (!isValidDate) {\r\n setError('dateOfBirth_day', {\r\n type: 'manual',\r\n message: Lang[window.appLang].invalidDate,\r\n });\r\n } else {\r\n signupByForm(data, true, false, 0, data.sendAccountActivationEmail);\r\n }\r\n };\r\n\r\n const { assignRoles } = context;\r\n\r\n const onExistingUserAction = (\r\n forceCreateNewUser: boolean,\r\n matchingExistingUser: number,\r\n ): void => {\r\n if (adminSignupByFormRequest && adminSignupByFormRequest.user) {\r\n signupByForm(\r\n {\r\n ...adminSignupByFormRequest.user,\r\n dateOfBirth_year: adminSignupByFormRequest.user.dateOfBirth.getFullYear(),\r\n dateOfBirth_month: adminSignupByFormRequest.user.dateOfBirth.getMonth() + 1,\r\n dateOfBirth_day: adminSignupByFormRequest.user.dateOfBirth.getDate(),\r\n preferredLanguage: adminSignupByFormRequest.user.nationality === 'DK' ? 'da' : 'en',\r\n sendAccountActivationEmail: adminSignupByFormRequest.sendAccountActivationEmail as boolean,\r\n },\r\n true,\r\n forceCreateNewUser,\r\n matchingExistingUser,\r\n adminSignupByFormRequest.sendAccountActivationEmail as boolean,\r\n );\r\n }\r\n };\r\n\r\n const onConfirm = (): void => {\r\n if (adminSignupByFormRequest && adminSignupByFormRequest.user) {\r\n signupByForm(\r\n {\r\n ...adminSignupByFormRequest.user,\r\n dateOfBirth_year: adminSignupByFormRequest.user.dateOfBirth.getFullYear(),\r\n dateOfBirth_month: adminSignupByFormRequest.user.dateOfBirth.getMonth() + 1,\r\n dateOfBirth_day: adminSignupByFormRequest.user.dateOfBirth.getDate(),\r\n preferredLanguage: adminSignupByFormRequest.user.nationality === 'DK' ? 'da' : 'en',\r\n sendAccountActivationEmail: adminSignupByFormRequest.sendAccountActivationEmail as boolean,\r\n },\r\n false,\r\n adminSignupByFormRequest?.forceCreateNewUser as boolean,\r\n adminSignupByFormRequest?.matchingExistingUser as number,\r\n adminSignupByFormRequest?.sendAccountActivationEmail as boolean,\r\n );\r\n }\r\n };\r\n\r\n const goBack = (): void => {\r\n adminResetSignup();\r\n setIsFormSignup(false);\r\n };\r\n\r\n const returnToOrigin = (auid: number): void => {\r\n let returnTo = context.returnUrl.replace('{AUID}', `${auid}`);\r\n if (window.location.search) {\r\n returnTo = `${returnTo}${window.location.search.replace('?', '&')}`;\r\n }\r\n if (returnTo.indexOf('resourceId') > -1) {\r\n returnTo = returnTo.replace('{TAB}', 'roles');\r\n } else {\r\n returnTo = returnTo.replace('{TAB}', 'persons');\r\n }\r\n window.location.href = returnTo;\r\n };\r\n\r\n if (adminSignupByFormResult && adminSignupByFormResult.result === 'SimilarUsersAlreadyExists') {\r\n return (\r\n onExistingUserAction(false, auid)}\r\n onSelectNone={() => onExistingUserAction(true, 0)}\r\n onGoBack={resetAdminSignupByFormResponse}\r\n />\r\n );\r\n }\r\n\r\n if (adminSignupByFormResult && adminSignupByFormResult.result === 'AccessGrantedToExistingUser' && assignRoles.length === 0) {\r\n return (\r\n <>\r\n

{Lang[window.appLang].userExistsYouCanReturn}

\r\n
{`${adminSignupByFormResult.user.firstName} ${adminSignupByFormResult.user.lastName}`}
\r\n
{adminSignupByFormResult.user.privateEmail}
\r\n
\r\n {`${Lang[window.appLang].auid}: ${adminSignupByFormResult.user.auid}`}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n if (adminSignupByFormResult && (adminSignupByFormResult.result === 'AccessGrantedToNewUser'\r\n || (adminSignupByFormResult.result === 'AccessGrantedToExistingUser' && assignRoles.length > 0))) {\r\n return (\r\n returnToOrigin(adminSignupByFormResult.user.auid)}\r\n returnText={window.appLang === 'da' ? context.returnTextDa : context.returnTextEn}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n adminSignupByFormResult == null && (\r\n <>\r\n

{Lang[window.appLang].createUserAndCreateCpr}

\r\n
\r\n
\r\n \r\n {errors.firstName\r\n && (\r\n \r\n {errors.firstName.message}\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n {errors.lastName\r\n && (\r\n \r\n {errors.lastName.message}\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {' '}\r\n
{Lang[window.appLang].birthDate}
\r\n
\r\n {\r\n (errors.dateOfBirth_day || errors.dateOfBirth_month || errors.dateOfBirth_year)\r\n && (\r\n \r\n {\r\n [errors.dateOfBirth_day ? errors.dateOfBirth_day.message : null, errors.dateOfBirth_month ? errors.dateOfBirth_month.message : null, errors.dateOfBirth_year ? errors.dateOfBirth_year.message : null].filter(Boolean).join('. ')\r\n }\r\n \r\n )\r\n }\r\n
\r\n
\r\n \r\n {\r\n if (value < 1 || value > 31) {\r\n return Lang[window.appLang].dayMustBeInRange;\r\n }\r\n return true;\r\n },\r\n })}\r\n />\r\n
\r\n
\r\n \r\n {\r\n if (value < 1 || value > 12) {\r\n return Lang[window.appLang].monthMustBeInRange;\r\n }\r\n return true;\r\n },\r\n })}\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {errors.privateEmail && (\r\n \r\n {errors.privateEmail.message}\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n }\r\n {\r\n error && (\r\n
\r\n \r\n
\r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nCreateFormComponent.displayName = 'CreateFormComponent';\r\nexport default connect(\r\n (state: RootState) => state.administrative,\r\n {\r\n adminSignupByForm: adminSignupByFormConnect,\r\n adminResetSignup: adminResetSignupConnect,\r\n resetAdminSignupByFormResponse: resetAdminSignupByFormResponseConnect,\r\n },\r\n)(CreateFormComponent);\r\n","/* eslint-disable max-len */\r\n/* eslint-disable react/jsx-props-no-spreading */\r\n/* eslint-disable react/destructuring-assignment */\r\nimport React, { FC } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useForm } from 'react-hook-form';\r\nimport { RootState } from '../../reducers';\r\nimport ErrorComponent from '../common/ErrorComponent';\r\nimport ConfirmAdminComponent from './ConfirmAdminComponent';\r\nimport ExistingUsersAdminComponent from './ExistingUsersAdminComponent';\r\nimport Lang from '../../lib/i18n';\r\nimport { emailRegex } from '../../lib/common';\r\nimport { mod11 } from '../../lib/helpers';\r\nimport {\r\n adminSignupByCpr as adminSignupByCprConnect,\r\n adminResetSignup as adminResetSignupConnect,\r\n} from '../../reducers/administrative';\r\n\r\nconst CreateCprComponent: FC = ({\r\n context,\r\n error,\r\n adminSignupByCpr,\r\n adminResetSignup,\r\n adminSignupByCprRequest,\r\n adminSignupByCprResult,\r\n setIsFormSignup,\r\n uiBusy,\r\n}: CreateCPRAdminComponentProps) => {\r\n const {\r\n register, handleSubmit, formState: { errors },\r\n } = useForm();\r\n\r\n if (!context) {\r\n return null;\r\n }\r\n\r\n const signupByCpr = (\r\n cpr: string,\r\n privateEmail: string,\r\n dryRun: boolean,\r\n forceCreateNewUser: boolean,\r\n matchingExistingUser: number,\r\n sendAccountActivationEmail: boolean,\r\n ) => {\r\n adminSignupByCpr({\r\n cpr,\r\n privateEmail,\r\n forceCreateNewUser,\r\n matchingExistingUser,\r\n dryRun,\r\n context: context?.key as string,\r\n sendAccountActivationEmail,\r\n });\r\n };\r\n\r\n const onSubmit = (data: IAdminSignupByCprPayload): void => {\r\n signupByCpr(data.cpr.trim(), data.privateEmail.trim(), true, false, 0, data.sendAccountActivationEmail);\r\n };\r\n\r\n const onExistingUserAction = (\r\n forceCreateNewUser: boolean,\r\n matchingExistingUser: number,\r\n ): void => {\r\n signupByCpr(\r\n adminSignupByCprRequest?.cpr as string,\r\n adminSignupByCprRequest?.privateEmail as string,\r\n true,\r\n forceCreateNewUser,\r\n matchingExistingUser,\r\n adminSignupByCprRequest?.sendAccountActivationEmail as boolean,\r\n );\r\n };\r\n\r\n const onConfirm = (): void => {\r\n signupByCpr(\r\n adminSignupByCprRequest?.cpr as string,\r\n adminSignupByCprRequest?.privateEmail as string,\r\n false,\r\n adminSignupByCprRequest?.forceCreateNewUser as boolean,\r\n adminSignupByCprRequest?.matchingExistingUser as number,\r\n adminSignupByCprRequest?.sendAccountActivationEmail as boolean,\r\n );\r\n };\r\n\r\n const reset = (): void => {\r\n if (adminSignupByCprRequest?.forceCreateNewUser\r\n || adminSignupByCprRequest?.matchingExistingUser as number > 0) {\r\n signupByCpr(\r\n adminSignupByCprRequest?.cpr as string,\r\n adminSignupByCprRequest?.privateEmail as string,\r\n true,\r\n false,\r\n 0,\r\n adminSignupByCprRequest?.sendAccountActivationEmail as boolean,\r\n );\r\n } else adminResetSignup();\r\n };\r\n\r\n const returnToOrigin = (auid: number): void => {\r\n let returnTo = context.returnUrl.replace('{AUID}', `${auid}`);\r\n if (window.location.search) {\r\n returnTo = `${returnTo}${window.location.search.replace('?', '&')}`;\r\n }\r\n if (returnTo.indexOf('resourceId') > -1) {\r\n returnTo = returnTo.replace('{TAB}', 'roles');\r\n } else {\r\n returnTo = returnTo.replace('{TAB}', 'persons');\r\n }\r\n window.location.href = returnTo;\r\n };\r\n\r\n if (adminSignupByCprResult && adminSignupByCprResult.result === 'SimilarUsersAlreadyExists') {\r\n return (\r\n onExistingUserAction(false, auid)}\r\n onSelectNone={() => onExistingUserAction(true, 0)}\r\n onGoBack={adminResetSignup}\r\n />\r\n );\r\n }\r\n\r\n if (adminSignupByCprResult && adminSignupByCprResult.result === 'AccessGrantedToExistingUser' && context.assignRoles.length === 0) {\r\n return (\r\n <>\r\n

{Lang[window.appLang].personAlreadyExists}

\r\n
{`${adminSignupByCprResult.user.firstName} ${adminSignupByCprResult.user.lastName}`}
\r\n
{adminSignupByCprResult.user.privateEmail}
\r\n
\r\n Auid:\r\n {` ${adminSignupByCprResult.user.auid}`}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n if (adminSignupByCprResult && ((adminSignupByCprResult.result === 'AccessGrantedToExistingUser' && context.assignRoles.length > 0)\r\n || adminSignupByCprResult.result === 'AccessGrantedToNewUser'\r\n || adminSignupByCprResult.result === 'AccessGrantedToExistingUserCprChanged')) {\r\n return (\r\n returnToOrigin(adminSignupByCprResult.user.auid)}\r\n returnText={window.appLang === 'da' ? context.returnTextDa : context.returnTextEn}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n (adminSignupByCprResult == null || (adminSignupByCprResult && adminSignupByCprResult.result === 'CprNumberNotFound')) && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {errors.privateEmail\r\n && (\r\n \r\n {errors.privateEmail.message}\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n {\r\n error && (\r\n
\r\n \r\n
\r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nCreateCprComponent.displayName = 'CprSignupAdminComponent';\r\nexport default connect(\r\n (state: RootState) => state.administrative,\r\n {\r\n adminSignupByCpr: adminSignupByCprConnect,\r\n adminResetSignup: adminResetSignupConnect,\r\n },\r\n)(CreateCprComponent);\r\n","/* eslint-disable max-len */\r\nimport React, { FC, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport AUSpinnerComponent from '@aarhus-university/au-lib-react-components/src/components/delphinus/AUSpinnerComponent';\r\nimport { RootState } from '../../reducers';\r\nimport { getContextBasedHeadline, getContextFromQuery } from '../../lib/helpers';\r\nimport InvalidContextComponent from '../common/InvalidContextComponent';\r\nimport CreateFormComponent from './CreateFormComponent';\r\nimport CreateCPRComponent from './CreateCPRComponent';\r\nimport {\r\n getRegistrationContext as getRegistrationContextConnect,\r\n setInvalidContext as setInvalidContextConnect,\r\n getCountryCodes as getCountryCodesConnect,\r\n} from '../../reducers/administrative';\r\n\r\nconst AdministrativeFrontComponent: FC = ({\r\n context,\r\n getRegistrationContext,\r\n setInvalidContext,\r\n getCountryCodes,\r\n}: AdministrativeFrontComponentProps) => {\r\n const [isFormSignup, setIsFormSignup] = useState(false);\r\n return (\r\n \r\n {\r\n const query = getContextFromQuery();\r\n if (query) {\r\n getRegistrationContext(query);\r\n getCountryCodes(window.appLang);\r\n } else {\r\n setInvalidContext();\r\n }\r\n }}\r\n >\r\n
\r\n

\r\n {getContextBasedHeadline(window.appLang, context as ISignupContext)}\r\n

\r\n
\r\n
\r\n {\r\n isFormSignup ? (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nAdministrativeFrontComponent.displayName = 'AdministrativeFrontComponent';\r\nexport default connect(\r\n (state: RootState) => state.administrative,\r\n {\r\n getRegistrationContext: getRegistrationContextConnect,\r\n setInvalidContext: setInvalidContextConnect,\r\n getCountryCodes: getCountryCodesConnect,\r\n },\r\n)(AdministrativeFrontComponent);\r\n","import React, { VFC } from 'react';\r\nimport {\r\n BrowserRouter as Router,\r\n Switch,\r\n Route,\r\n} from 'react-router-dom';\r\nimport AdministrativeFrontComponent from './administrative/AdministrativeFrontComponent';\r\n\r\ndeclare global {\r\n interface Window {\r\n userRegistrationApiUri: string;\r\n appLang: string,\r\n }\r\n}\r\n\r\nconst AdministrativeWrapperComponent: VFC = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nAdministrativeWrapperComponent.displayName = 'AdministrativeWrapperComponent';\r\nexport default AdministrativeWrapperComponent;\r\n","/* eslint-env browser */\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport configureStore from './store/configureStore';\r\nimport BulkWrapperComponent from './components/BulkWrapperComponent';\r\nimport SelfServiceWrapperComponent from './components/SelfServiceWrapperComponent';\r\nimport AdministrativeWrapperComponent from './components/AdministrativeWrapperComponent';\r\n\r\nconst rootElement = document.querySelector('.app-user-registration');\r\n\r\nReactDOM.render(\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n rootElement,\r\n);\r\n"],"names":["root","factory","exports","module","require","define","amd","a","i","self","__WEBPACK_EXTERNAL_MODULE__244__","__WEBPACK_EXTERNAL_MODULE__741__","token","singleMatcher","RegExp","multiMatcher","decodeComponents","components","split","decodeURIComponent","join","err","length","left","slice","right","Array","prototype","concat","call","decode","input","tokens","match","encodedURI","TypeError","replace","replaceMap","exec","result","entries","Object","keys","key","customDecodeURIComponent","obj","predicate","ret","isArr","isArray","val","indexOf","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","type","KNOWN_STATICS","name","caller","callee","arguments","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","e","arr","toString","isarray","pathToRegexp","path","options","groups","source","push","prefix","delimiter","optional","repeat","partial","asterisk","pattern","attachKeys","regexpToRegexp","parts","flags","arrayToRegexp","tokensToRegExp","parse","stringToRegexp","compile","str","tokensToFunction","PATH_REGEXP","res","index","defaultDelimiter","m","escaped","offset","next","capture","group","modifier","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","c","charCodeAt","toUpperCase","matches","opts","data","encode","pretty","encodeURIComponent","segment","value","JSON","stringify","j","test","re","sensitive","strict","end","route","endsWithDelimiter","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","Error","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","strictUriEncode","decodeComponent","splitOnFirst","filterObject","validateArrayFormatSeparator","keysSorter","sort","b","Number","map","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","isNaN","trim","parseBooleans","toLowerCase","query","assign","arrayFormat","arrayFormatSeparator","formatter","accumulator","undefined","includes","isEncodedArray","newValue","item","parserForArrayFormat","create","param","k","reduce","Boolean","shouldFilter","skipNull","skipEmptyString","encoderForArrayFormat","objectCopy","filter","x","parseUrl","url","url_","hash","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","pick","exclude","exclusionFilter","Symbol","for","d","f","g","h","l","n","p","q","r","t","v","w","y","z","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","separator","separatorIndex","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","o","enumerable","get","globalThis","this","Function","window","prop","hasOwnProperty","toStringTag","batch","callback","getBatch","nullListeners","notify","store","parentSub","unsubscribe","listeners","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","subscribe","first","last","clear","listener","isSubscribed","prev","createListenerCollection","notifyNestedSubs","tryUnsubscribe","getListeners","document","createElement","useLayoutEffect","useEffect","_ref","context","children","contextValue","useMemo","previousState","getState","Context","Provider","target","apply","excluded","sourceKeys","_excluded","_excluded2","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","state","action","updateCount","payload","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","current","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","forceComponentUpdateDispatch","didUnsubscribe","lastThrownError","checkForUpdates","newChildProps","error","latestStoreState","initStateUpdates","connectAdvanced","selectorFactory","_ref2","_ref2$getDisplayName","getDisplayName","_ref2$methodName","methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$forwardRef","withRef","forwardRef","_ref2$context","connectOptions","WrappedComponent","wrappedComponentName","selectorFactoryOptions","pure","usePureOnlyMemo","ConnectFunction","_useMemo","reactReduxForwardedRef","propsContext","ContextToUse","Consumer","useContext","didStoreComeFromProps","dispatch","createChildSelector","_useMemo2","bind","overriddenContextValue","_useReducer","useReducer","previousStateUpdateResult","useRef","renderedWrappedComponent","ref","Connect","forwarded","is","shallowEqual","objA","objB","keysA","keysB","wrapMapToPropsConstant","getConstant","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","ownProps","mapDispatchToProps","actionCreators","boundActionCreators","_loop","actionCreator","bindActionCreators","mapStateToProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","nextState","nextOwnProps","nextStateProps","statePropsChanged","propsChanged","stateChanged","handleSubsequentCalls","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","arg","factories","strictEqual","createConnect","_temp","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","_ref$selectorFactory","_ref3","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","newBatch","Q","constructor","Z","L","s","nn","forEach","has","set","delete","add","X","Map","Set","rn","writable","configurable","freeze","isFrozen","tn","_","U","O","S","P","M","H","I","R","D","F","E","N","T","C","en","on","Proxy","revocable","revoke","J","K","from","G","W","B","Reflect","iterator","ownKeys","getOwnPropertyDescriptors","deleteProperty","setPrototypeOf","un","produce","Promise","then","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","op","$","an","fn","_defineProperty","enumerableOnly","symbols","sym","_objectSpread2","defineProperties","formatProdErrorMessage","code","$$observable","observable","randomString","Math","random","substring","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","proto","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","splice","replaceReducer","nextReducer","outerSubscribe","observer","observeState","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","_i","_key","previousStateForKey","nextStateForKey","compose","_len","funcs","applyMiddleware","middlewares","_dispatch","middlewareAPI","chain","middleware","createThunkMiddleware","extraArgument","thunk","withExtraArgument","extendStatics","__extends","__proto__","String","__","__spreadArray","to","il","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","propertyIsEnumerable","__defNormalProp","__spreadValues","_c","__spreadProps","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","__REDUX_DEVTOOLS_EXTENSION__","MiddlewareArray","_super","args","_this","species","prepend","createAction","prepareAction","prepared","meta","executeReducerBuilderCallback","builderCallback","defaultCaseReducer","actionsMap","actionMatchers","builder","addCase","typeOrActionCreator","addMatcher","matcher","addDefaultCase","createSlice","_reducer","initialState","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","buildReducer","extraReducers","_d","_e","_f","finalCaseReducers","mapOrBuilderCallback","getInitialState","finalActionMatchers","finalDefaultCaseReducer","isStateFunction","frozenInitialState_1","caseReducers","cr","caseReducer","draft","createReducer","reducerName","prepareCallback","maybeReducerWithPrepare","prepare","actions","commonProperties","RejectWithValue","FulfillWithMeta","miniSerializeError","simpleError","commonProperties_1","property","message","createAsyncThunk","typePrefix","payloadCreator","fulfilled","requestId","requestStatus","pending","rejected","serializeError","rejectedWithValue","aborted","condition","AC","AbortController","class_1","signal","addEventListener","dispatchEvent","onabort","removeEventListener","abort","extra","abortReason","idGenerator","size","id","nanoid","abortController","abortedPromise","reject","started","promise","__this","generator","_a","_b","finalAction","conditionResult","err_1","thisArg","body","label","sent","trys","ops","verb","done","pop","step","__generator","getPendingMeta","race","resolve","rejectWithValue","fulfillWithValue","dispatchConditionRejection","throw","reason","unwrap","unwrapResult","min","parseDate","splitted","Date","UTC","parseInt","getRegistrationContext","async","contextName","userRegistrationApiUri","response","fetch","ok","json","getNominees","method","credentials","text","setUserCreation","nominees","serializedPayloads","nominee","genderEnum","gender","user","firstName","firstNames","lastName","dateOfBirth","privateEmail","emailAddress","preferredLanguage","nationality","organizationUnit","title","onProgress","serializedPayload","headers","nominationSlice","excelError","uploading","fuzzies","created","errors","setNominees","newState","fuzzyMatched","fuzzyMatchedUsers","keepNominee","find","fm","alreadyAddedIndex","findIndex","auid","skipNominee","skip","acceptFuzzyMatch","fuzzy","overrideMail","setUserCreationAndRoleAssignment","auId","sendMail","setCreated","startOver","addToErrors","errorAsNominee","errorAsFuzzy","setInvalidContext","userSignupByLdap","userSignupByCpr","userSignupByForm","selfserviceSlice","userSignupByLdapResult","userSignupByCprResult","userSignupByFormResult","uiBusy","detail","status","stack","getCountryCodes","lang","adminSignupByCpr","request","adminSignupByForm","administrativeSlice","adminSignupByCprResult","adminSignupByFormResult","adminSignupByCprRequest","adminSignupByFormRequest","countryCodes","adminResetSignup","resetAdminSignupByFormResponse","rootReducer","curriedGetDefaultMiddleware","middlewareArray","immutableCheck","serializableCheck","isBoolean","getDefaultMiddleware","devTools","_g","_h","enhancers","baseProto","finalMiddleware","middlewareEnhancer","finalCompose","trace","storeEnhancers","configureStore","nomination","selfservice","administrative","_setPrototypeOf","_inheritsLoose","subClass","superClass","isAbsolute","pathname","charAt","spliceOne","list","addLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","search","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","unshift","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","isActive","notifyListeners","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","ua","globalHistory","canUseHistory","navigator","userAgent","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","setState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","href","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","MAX_SIGNED_31_BIT_INT","commonjsGlobal","createEventEmitter","handlers","handler","off","changedBits","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","_Component","emitter","_proto","getChildContext","componentWillReceiveProps","nextProps","oldValue","objectIs","Component","_Component2","_this2","getValue","onUpdate","observedBits","_proto2","componentDidMount","componentWillUnmount","createNamedContext","historyContext","Router","_React$Component","_isMounted","_pendingLocation","staticContext","computeRootMatch","params","isExact","cache$1","cacheCount$1","matchPath","_options","_options$exact","_options$strict","_options$sensitive","matched","_compilePath","cacheKey","pathCache","regexp","compilePath$1","values","memo","Route","context$1","computedMatch","_this$props","isEmptyChildren","Switch","child","BrowserRouter","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","innerRef","navigate","_onClick","onClick","rest","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","Link","_ref2$component","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","_ref$ariaCurrent","ariaCurrent","_ref$activeClassName","activeClassName","activeStyle","classNameProp","className","isActiveProp","locationProp","styleProp","style","escapedPath","classnames","joinClassnames","serviceScopeProfile","AUSpinnerComponent","React","super","loading","visible","lazyLoad","componentDidUpdate","prevState","loadingCondition","loaded","domID","onLoad","getElementById","rect","getBoundingClientRect","bottom","innerWidth","documentElement","clientWidth","top","innerHeight","clientHeight","isElementInViewport","content","height","init","minHeight","ErrorComponent","header","dangerouslySetInnerHTML","__html","FileUploadComponent","file","setFile","useState","console","log","noValidate","onSubmit","FormData","append","htmlFor","successAccessGrantHeadingDa","accept","onChange","files","tabIndex","disabled","connect","getNomineesConnect","ProgressBarComponent","items","onAllDone","onError","renderStatus","progressed","setProgressed","originalItems","catch","percentage","floor","flexBasis","getContextFromQuery","qsParse","getContextBasedHeadline","startUserCreationHeadingDa","startUserCreationHeadingEn","genderInDanish","toLower","toLocaleLowerCase","mod11","cpr","weights","sum","FuzzyMatchComponent","foundWithFuzzies","renderWithFuzzy","renderFuzzies","output","renderInfo","keepNomineeConnect","skipNomineeConnect","acceptFuzzyMatchConnect","ReceiptComponent","renderNominees","fuzzyErrors","nomineeErrors","createdNominees","successUserCreatedHeadingDa","successUserCreatedTextDa","StepComponent","InvalidContextComponent","allowed","adminContext","selfServiceContext","bulkContext","isContextAllowed","ManageComponent","canMoveOnToUserCreation","progressable","errorText","setNomineesConnect","setCreatedConnect","addToErrorsConnect","startOverConnect","setUserCreationAndRoleAssignmentConnect","getRegistrationContextConnect","setInvalidContextConnect","BulkWrapperComponent","da","loginHeaderExisting","loginHeaderNew","loginHeaderNew2","loginCPRYes","loginCPRNo","loginUsingAu","loginUsingCpr","loginUsingForm","createUsingLdapHeading","username","usernameIsRequired","password","passwordIsRequired","invalidUsernameOrPassword","usernameMustBeValidAuid","forgotLink","createAccess","createUsingCprHeading","cprNumber","cprMandatory","invalidCpr","invalidCprText","disclaimerDefaultText","mustAcceptDisclaimer","createWithTempCprHeading","birthDate","day","dayIsRequired","dayMustBeANumber","dayMustBeInRange","month","monthIsRequired","monthMustBeANumber","monthMustBeInRange","year","yearIsRequired","yearMustBeANumber","yearMustBeInRange","privateEmailIsRequired","firstNameIsRequired","lastNameIsRequired","genderUnknown","genderFemale","genderMale","userUnderAge","invalidEmail","firstNameTooLong","lastNameTooLong","invalidDate","createUser","looksLikeYouAlreadyExist","didYouForget","ifYouStillCantGetAccess","contactSupport","serviceDeskCreated","serviceDeskCreatedText","serviceDeskCreatedNoEmailText","serviceDeskQuestions","setYourPassword","invalidPassword","setPasswordFailHeading","setPasswordFailText","setPasswordValidationErrorHeading","setPasswordValidationErrorText","tryAgain","sendActivationMail","cprNumberNotFound","userIsWithoutCpr","returnToOrigin","cancel","personAlreadyExists","createUserAndCreateCpr","userExistsYouCanReturn","grantUserRightsToThisUser","createThisUser","changeCprAndGrant","userRights","grant","granted","userCreated","userGranted","noUsersFoundForCpr","possibleDuplicatesFound","existingUsersOnCprHeading","existingUsersOnSearchHeading","noMatchCreate","errorHeader","errorBody","back","SelfServiceFrontComponent","appLang","assignRoles","Lang","isCheckBoxInput","isDateObject","isNullOrUndefined","isObjectType","isObject","compact","isUndefined","VALIDATION_MODE","INPUT_VALIDATION_RULES","isEmptyObject","convertToArrayPayload","isString","isFunction","objectHasFunction","appendErrors","validateAllFieldCriteria","types","isKey","stringToPath","tempPath","lastIndex","objValue","focusFieldBy","fields","fieldsNames","field","currentField","focus","refs","isWatched","_names","isBlurEvent","watchAll","watch","some","watchName","startsWith","isWeb","HTMLElement","cloneObject","copy","Blob","FileList","unset","updatePath","childObject","baseGet","previousObjRef","objectRef","currentPaths","currentPathsLength","createSubject","_observers","observers","isPrimitive","deepEqual","object1","object2","getTime","keys1","keys2","val1","val2","getValidationModes","mode","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isFileInput","isHTMLElement","isMultipleSelect","isRadioInput","live","isConnected","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","formValues","dirtyFieldsFromValues","getDirtyFields","defaultValues","defaultResult","isValid","validResult","getCheckboxValue","option","checked","attributes","getFieldValueAs","valueAsNumber","valueAsDate","setValueAs","NaN","defaultReturn","getRadioValue","previous","getFieldValue","every","selectedOptions","isRegex","getRuleValue","rule","schemaErrorLookup","_fields","names","fieldName","foundError","isMessage","getValidateError","getValueAndMessage","validationData","validateField","inputValue","shouldUseNativeValidation","required","maxLength","minLength","max","validate","mount","inputRef","setCustomValidity","reportValidity","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueNumber","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","defaultOptions","reValidateMode","shouldFocusError","createFormControl","delayErrorCallback","_formState","isDirty","isValidating","dirtyFields","isSubmitted","submitCount","touchedFields","isSubmitting","isSubmitSuccessful","_defaultValues","_formValues","shouldUnregister","_stateFlags","unMount","timer","validateFields","_proxyFormState","_subjects","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","criteriaMode","_updateValid","shouldSkipRender","resolver","_executeSchema","executeBuildInValidation","updateErrors","updateValidAndValue","shouldSkipSetValueAs","defaultChecked","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","isFieldDirty","isPreviousFieldTouched","isPreviousFormDirty","_getDirty","isPreviousFieldDirty","getResolverOptions","shouldOnlyCheckValid","valid","fieldReference","fieldError","getValues","_getWatch","isGlobal","fieldValues","generateWatchOutput","selectRef","selected","checkboxRef","radioRef","shouldTouch","shouldValidate","trigger","setValues","fieldKey","setValue","isFieldArray","cloneValue","getEventValue","shouldSkipValidation","deps","isTouched","skipValidation","watched","onBlur","fieldState","previousErrorLookupResult","errorLookupResult","previousFieldError","shouldUpdateValid","wait","delayError","clearTimeout","setTimeout","updatedFormState","shouldRenderByError","fieldNames","executeSchemaAndUpdateState","all","shouldFocus","getFieldState","formState","invalid","unregister","keepValue","keepError","keepDirty","keepTouched","keepDefaultValue","keepIsValid","register","disabledIsDefined","fieldRef","querySelectorAll","radioOrCheckbox","getNodeParentName","isNameInFieldArray","control","_removeUnmounted","_updateFieldArray","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","unsetEmptyArray","_getFieldArray","handleSubmit","onValid","onInvalid","persist","hasNoPromiseError","info","reset","keepStateOptions","updatedValues","cloneUpdatedValues","keepDefaultValues","keepValues","keepDirtyValues","closest","keepSubmitCount","keepIsSubmitted","keepErrors","resetField","clearErrors","inputName","setError","setFocus","shouldSelect","select","useForm","_formControl","updateFormState","formStateData","isRoot","shouldRenderFormState","subject","tearDown","useSubscribe","localProxyFormState","getProxyFormState","passwordLabels","currentPassword","changePassword","changePasswordInfo","newPassword","newPasswordInfo","repeatPassword","receipt","goto","requirementsHeader","requirement1","requirement2","requirement3","requirement4","rules","lowerupper","loweruppernumbers","lowerupperspecial","loweruppernumbersspecial","lowernumbers","lowernumbersspecial","lowerspecial","uppernumbers","uppernumbersspecial","upperspecial","numbersspecial","spaces","specialchars","allRequirements","passwordsEqual","passwordsNotEqual","typeNew","repeatNew","privateMail","privateMailHint","privateMailHint2","mailReceiptHeader","mailReceiptParagraph","mailReceiptHeader2","mailReceiptHelp","mailReceiptHelp2","mailReceiptHelp3","mailReceiptLink","forgotPassword","forgotPasswordParagraph","forgotUsername","forgotUsernameParagraph","allGood","validInput","sendBtnPassword","sendBtnUsername","expiredHeader","expiredText","expiredLink","supportHeader","supportStudentLink","supportStudentText","supportStaffLink","supportStaffText","confirmDetails","onContactSupport","successAccessGrantHeadingEn","successAccessGrantTextDa","successAccessGrantTextEn","activationReturnUrlDa","activationReturnUrlEn","activationReturnTextDa","activationReturnTextEn","successUserCreatedHeadingEn","successUserCreatedTextEn","CreateAUIDComponent","buttonClass","userSignupByLdapConnect","emailRegex","CreateCPRComponent","setCpr","disclaimer","disclaimerDa","disclaimerEn","disclaimerCheck","createServiceDeskIssueIfNeeded","userSignupByCprConnect","CreateFormComponent","dateOfBirth_day","date","dateOfBirth_year","dateOfBirth_month","getDate","fontWeight","userSignupByFormConnect","SelfServiceWrapperComponent","ConfirmAdminComponent","isDryRun","isForceCreateNewUser","onCancel","onConfirm","onReturn","returnText","assignedRoles","ExistingUsersAdminComponent","existingUsers","newUser","onSelectExistingUser","onSelectNone","onGoBack","personSelect","cprNr","colSpan","setIsFormSignup","signupByForm","dryRun","forceCreateNewUser","matchingExistingUser","sendAccountActivationEmail","onExistingUserAction","getFullYear","getMonth","returnTo","returnUrl","returnTextDa","returnTextEn","adminSignupByFormConnect","adminResetSignupConnect","resetAdminSignupByFormResponseConnect","CreateCprComponent","signupByCpr","adminSignupByCprConnect","AdministrativeFrontComponent","isFormSignup","getCountryCodesConnect","AdministrativeWrapperComponent","rootElement","querySelector","ReactDOM"],"sourceRoot":""}