{"version":3,"file":"main.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACuD;AAEP;AAEa;AAEuC;AACN;AACR;AAC6B;AACM;AAE1C;AACuB;AACX;AACiB;AACR;AACG;AAC7B;AACe;AACiD;AACA;AACrD;AACkB;AACc;AAC5C;AACoD;AACrC;AAEqC;AACsB;AAC1D;AACxB;;;AAEjE,MAAM4B,MAAM,GAAW,CACrB;EACEC,IAAI,EAAC,EAAE;EACPC,SAAS,EAAEhB,oFAAgBA;CAC5B,EACD;EACEe,IAAI,EAAE3B,sEAAc,CAAC6B,kBAAkB,CAACC,IAAI;EAC5CF,SAAS,EAAEN,uIAA+BA;CAC3C,EACD;EACEK,IAAI,EAAE3B,sEAAc,CAAC6B,kBAAkB,CAACE,UAAU;EAClDH,SAAS,EAAEL,6JAAqCA;CACjD,EACD;EACEI,IAAI,EAAE3B,sEAAc,CAACgC,MAAM;EAC3BJ,SAAS,EAAE7B,2DAAmBA;CAC/B;AAED;AACA;EACE4B,IAAI,EAAE3B,sEAAc,CAAC8B,IAAI,CAACG,MAAM;EAChCL,SAAS,EAAEd,oJAAoC;EAC/CoB,aAAa,EAAE,CAACV,mGAA4B;CAC7C,EACD;EACEG,IAAI,EAAE3B,sEAAc,CAAC8B,IAAI,CAACK,QAAQ;EAClCP,SAAS,EAAEb,oJAAoC;EAC/CmB,aAAa,EAAE,CAACV,mGAA4B;CAC7C,EACD;EACEG,IAAI,EAAE3B,sEAAc,CAAC8B,IAAI,CAACM,MAAM;EAChCR,SAAS,EAAET,mFAAe;EAC1Be,aAAa,EAAE,CAACV,mGAA4B;CAC7C,EACD;EACEG,IAAI,EAAE3B,sEAAc,CAAC8B,IAAI,CAACO,IAAI;EAC9BT,SAAS,EAAEtB,wFAAiBA;CAC7B,EACD;EACEqB,IAAI,EAAE3B,sEAAc,CAAC8B,IAAI,CAACQ,MAAM;EAChCV,SAAS,EAAE3B,6GAAwB;EACnCiC,aAAa,EAAE,CAACV,mGAA4B;CAC7C,EACD;EACEG,IAAI,EAAE3B,sEAAc,CAAC8B,IAAI,CAACS,IAAI;EAC9BX,SAAS,EAAE3B,6GAAwB;EACnCiC,aAAa,EAAE,CAACV,mGAA4B;CAC7C;AAED;AACA;EACEG,IAAI,EAAE3B,sEAAc,CAACwC,sBAAsB,CAACD,IAAI;EAChDX,SAAS,EAAER,uIAA+B;EAC1Cc,aAAa,EAAE,CAACV,mGAA4B;CAC7C,EACD;EACEG,IAAI,EAAE3B,sEAAc,CAACwC,sBAAsB,CAACC,SAAS;EACrDb,SAAS,EAAER,uIAA+B;EAC1Cc,aAAa,EAAE,CAACV,mGAA4B;CAC7C;AAED;AACA;EACEG,IAAI,EAAE3B,sEAAc,CAAC0C,WAAW,CAACL,IAAI;EACrCT,SAAS,EAAErB,+GAAwBA;CACpC;AAED;AACA;EACEoB,IAAI,EAAE3B,sEAAc,CAAC2C,QAAQ,CAACN,IAAI;EAClCT,SAAS,EAAEpB,oGAAqBA;CACjC;AAED;AACA;EACEmB,IAAI,EAAE3B,sEAAc,CAAC4C,MAAM,CAACP,IAAI;EAChCT,SAAS,EAAEZ,+FAAmBA;CAC/B;AAED;AACA;EACEW,IAAI,EAAE3B,sEAAc,CAAC6C,aAAa,CAACR,IAAI;EACvCT,SAAS,EAAEnB,qHAA0BA;CACtC,EACD;EACEkB,IAAI,EAAE3B,sEAAc,CAAC6C,aAAa,CAACP,MAAM;EACzCV,SAAS,EAAE1B,uGAAsB;EACjCgC,aAAa,EAAE,CAACV,mGAA4B;CAC7C,EACD;EACEG,IAAI,EAAE3B,sEAAc,CAAC6C,aAAa,CAACN,IAAI;EACvCX,SAAS,EAAE1B,uGAAsB;EACjCgC,aAAa,EAAE,CAACV,mGAA4B;CAC7C;AAED;AACA;EACEG,IAAI,EAAE3B,sEAAc,CAAC8C,YAAY,CAACT,IAAI;EACtCT,SAAS,EAAEjB,iHAAyBA;CACrC,EACD;EACEgB,IAAI,EAAE3B,sEAAc,CAAC8C,YAAY,CAACR,MAAM;EACxCV,SAAS,EAAEf,mGAAqB;EAChCqB,aAAa,EAAE,CAACV,mGAA4B;CAC7C,EACD;EACEG,IAAI,EAAE3B,sEAAc,CAAC8C,YAAY,CAACP,IAAI;EACtCX,SAAS,EAAEf,mGAAqB;EAChCqB,aAAa,EAAE,CAACV,mGAA4B;CAC7C;AAED;AACA;EACEG,IAAI,EAAE3B,sEAAc,CAAC+C,WAAW,CAACV,IAAI;EACrCT,SAAS,EAAElB,8GAAwBA;CACpC,EACD;EACEiB,IAAI,EAAE3B,sEAAc,CAAC+C,WAAW,CAACT,MAAM;EACvCV,SAAS,EAAEzB,+FAAoB;EAC/B+B,aAAa,EAAE,CAACV,mGAA4B;CAC7C,EACD;EACEG,IAAI,EAAE3B,sEAAc,CAAC+C,WAAW,CAACR,IAAI;EACrCX,SAAS,EAAEzB,+FAAoB;EAC/B+B,aAAa,EAAE,CAACV,mGAA4B;CAC7C,EACD;EACEG,IAAI,EAAE3B,sEAAc,CAACgD,oBAAoB,CAACT,IAAI;EAC9CX,SAAS,EAAExB,4HAA6BA;CACzC,EACD;EACEuB,IAAI,EAAE3B,sEAAc,CAAC+C,WAAW,CAACC,oBAAoB;EACrDpB,SAAS,EAAExB,4HAA6BA;CACzC,EACD;EACEuB,IAAI,EAAE3B,sEAAc,CAACiD,sBAAsB,CAACV,IAAI;EAChDX,SAAS,EAAEvB,kIAA+B;EAC1C6B,aAAa,EAAE,CAACV,mGAA4B;CAC7C,EACD;EACEG,IAAI,EAAE3B,sEAAc,CAAC+C,WAAW,CAACE,sBAAsB;EACvDrB,SAAS,EAAEvB,kIAA+B;EAC1C6B,aAAa,EAAE,CAACV,mGAA4B;CAC7C;AAED;AACA;EACEG,IAAI,EAAE3B,sEAAc,CAACkD,gBAAgB,CAACb,IAAI;EAC1CT,SAAS,EAAEV,+HAA6BA;CACzC,EACD;EACES,IAAI,EAAE3B,sEAAc,CAACkD,gBAAgB,CAACZ,MAAM;EAC5CV,SAAS,EAAEX,iHAAyB;EACpCiB,aAAa,EAAE,CAACV,mGAA4B;CAC7C,EACD;EACEG,IAAI,EAAE3B,sEAAc,CAACkD,gBAAgB,CAACX,IAAI;EAC1CX,SAAS,EAAEX,iHAAyB;EACpCiB,aAAa,EAAE,CAACV,mGAA4B;CAC7C,EACD;EACEG,IAAI,EAAE3B,sEAAc,CAACkD,gBAAgB,CAACC,oBAAoB;EAC1DvB,SAAS,EAAEZ,+FAAmBA;CAC/B;AAED;AACA;EACEW,IAAI,EAAE3B,sEAAc,CAACoD,WAAW,CAACb,IAAI;EACrCX,SAAS,EAAEP,kGAAoB;EAC/Ba,aAAa,EAAE,CAACV,mGAA4B;CAC7C;AAED;AACA;EACEG,IAAI,EAAE3B,sEAAc,CAACqD,IAAI;EACzBzB,SAAS,EAAEH,2EAAaA;CACzB,CACF;AAMK,MAAO6B,gBAAgB;EAAA,QAAAC,CAAA;qBAAhBD,gBAAgB;EAAA;EAAA,QAAAE,EAAA;UAAhBF;EAAgB;EAAA,QAAAG,EAAA;cAHjB3D,0DAAY,CAAC4D,OAAO,CAAChC,MAAM,CAAC,EAC5B5B,0DAAY;EAAA;;;uHAEXwD,gBAAgB;IAAAK,OAAA,GAAAC,0DAAA;IAAAC,OAAA,GAFjB/D,0DAAY;EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACxNI;AAiBuC;AACO;;;;;;;;;;;;;;;;;;;;;;;;AAcpE,MAAOmE,YAAY;EAUvBC,YACUC,cAA8B,EAC9BC,0BAAsD,EACtDC,0BAAsD,EACtDC,WAAwB,EACxBC,cAA8B,EAC9BC,WAAwB,EACxBC,wBAAkD,EACnDC,iBAAoC,EACnCC,WAAwB,EACxBC,aAA4B;IAT5B,KAAAT,cAAc,GAAdA,cAAc;IACd,KAAAC,0BAA0B,GAA1BA,0BAA0B;IAC1B,KAAAC,0BAA0B,GAA1BA,0BAA0B;IAC1B,KAAAC,WAAW,GAAXA,WAAW;IACX,KAAAC,cAAc,GAAdA,cAAc;IACd,KAAAC,WAAW,GAAXA,WAAW;IACX,KAAAC,wBAAwB,GAAxBA,wBAAwB;IACzB,KAAAC,iBAAiB,GAAjBA,iBAAiB;IAChB,KAAAC,WAAW,GAAXA,WAAW;IACX,KAAAC,aAAa,GAAbA,aAAa;EACvB;EAEAC,QAAQA,CAAA;IAEN,IAAI,CAACF,WAAW,CAACG,WAAW,CAACC,SAAS,CACpCC,MAAM,IAAG;MACP,IAAIA,MAAM,EAAC;QACT,IAAI,CAACC,UAAU,GAAGD,MAAM;;IAE5B,CAAC,CACF;IAED,IAAI,CAACJ,aAAa,CAACM,cAAc,CAACH,SAAS,CACzCC,MAAM,IAAG;MACP,IAAIA,MAAM,EAAC;QACT,IAAI,CAACG,YAAY,GAAGH,MAAM;;IAE9B,CAAC,CACF;IAED,IAAI,CAACN,iBAAiB,CAACU,kBAAkB,CAACC,UAAU,GAAG,QAAQ,CAAC,CAAC,eAAe,kBAAkB;IAClG,IAAI,CAACX,iBAAiB,CAACU,kBAAkB,CAACE,WAAW,GAAG,WAAY,OAAO;IAC3E,IAAI,CAACZ,iBAAiB,CAACU,kBAAkB,CAACG,QAAQ,GAAG,SAAU,KAAK;IACpE,IAAI,CAACb,iBAAiB,CAACU,kBAAkB,CAACI,MAAM,GAAG,IAAI,CAAC,CAAC;IACzD,IAAI,CAACd,iBAAiB,CAACU,kBAAkB,CAACK,UAAU,GAAG,QAAQ,CAAC,CAAC;IAEjE,IAAI,CAACf,iBAAiB,CAACgB,aAAa,CAACF,MAAM,GAAG,IAAI,CAACd,iBAAiB,CAACU,kBAAkB,CAACI,MAAM;IAE9F;IACA,IAAI,CAACf,wBAAwB,CAACkB,SAAS,GAAG,IAAI,CAAClB,wBAAwB,CAACkB,SAAS,IAAI;MACnFC,aAAa,EAAE7B,4EAAY,CAAC8B,aAAa,CAACC,OAAO;MACjDC,iCAAiC,EAAEhC,4EAAY,CAAClB,aAAa,CAACmD,oBAAoB;MAClFC,gCAAgC,EAAElC,4EAAY,CAACjB,YAAY,CAACkD,oBAAoB;MAChFE,+BAA+B,EAAEnC,4EAAY,CAAChB,WAAW,CAACiD,oBAAoB;MAC9EG,wCAAwC,EAAEpC,4EAAY,CAACf,oBAAoB,CAACgD,oBAAoB;MAChGI,yCAAyC,EAAErC,4EAAY,CAACd,sBAAsB,CAAC+C,oBAAoB;MACnGK,oCAAoC,EAAEtC,4EAAY,CAACb,gBAAgB,CAAC8C,oBAAoB;MACxFM,4CAA4C,EAAEvC,4EAAY,CAACwC,cAAc,CAACC,6BAA6B;MACvGC,+BAA+B,EAAE1C,4EAAY,CAACX,WAAW,CAAC4C,oBAAoB;MAC9EU,wCAAwC,EAAE3C,4EAAY,CAAC4C,eAAe,CAACC,yBAAyB;MAChGC,mCAAmC,EAAE9C,4EAAY,CAAC4C,eAAe,CAACX,oBAAoB;MACtFc,0BAA0B,EAAE/C,4EAAY,CAAC4C,eAAe,CAACG,0BAA0B;MACnFC,oCAAoC,EAAEhD,4EAAY,CAAC4C,eAAe,CAACK,gCAAgC;MACnGC,wCAAwC,EAAElD,4EAAY,CAAC4C,eAAe,CAACO,yBAAyB;MAChGC,+BAA+B,EAAEpD,4EAAY,CAAC4C,eAAe,CAACQ,+BAA+B;MAC7FC,yCAAyC,EAAErD,4EAAY,CAAC4C,eAAe,CAACU,qCAAqC;MAC7GC,0CAA0C,EAAEvD,4EAAY,CAACvB,sBAAsB,CAACwD,oBAAoB;MACpGuB,+CAA+C,EAAExD,4EAAY,CAACvB,sBAAsB,CAACgF;KACtF;IACD,IAAI,CAACjD,cAAc,CAACoB,SAAS,GAAG;MAC9B;MACA8B,wBAAwB,EAAE1D,4EAAY,CAAC2D,OAAO,CAACC,MAAM;MACrDC,qBAAqB,EAAE7D,4EAAY,CAAC2D,OAAO,CAACG;KAC7C;IACD,IAAI,CAACvD,WAAW,CAACwD,oBAAoB,GAAG,EACvC;IACD,IAAI,CAACxD,WAAW,CAACyD,kBAAkB,GAAG,EACrC;IACD,IAAI,CAACzD,WAAW,CAAC0D,aAAa,GAAG,EAChC;IACD,IAAI,CAAC1D,WAAW,CAAC2D,sBAAsB,GAAG,EACzC;IACD,IAAI,CAAC3D,WAAW,CAAC4D,yBAAyB,GAAG,EAC5C;IAED;IACA,MAAMC,2BAA2B,GAAGA,CAACC,0BAAkC,EAAEC,iBAAiB,GAAG,OAAO,KAClG,IAAI,CAAClE,cAAc,CAACmE,UAAU,CAC5BF,0BAA0B,EAC1B,IAAI,CAACjE,cAAc,CAACoE,2BAA2B,CAACH,0BAA0B,EAAEC,iBAAiB,CAAC,CAAC;IACnGF,2BAA2B,CAACnE,sEAAW,CAACwE,gBAAgB,CAAC;IACzDL,2BAA2B,CAACnE,sEAAW,CAACyE,cAAc,CAAC;IACvDN,2BAA2B,CAACnE,sEAAW,CAAC0E,eAAe,CAAC;IACxDP,2BAA2B,CAACnE,sEAAW,CAAC2E,wBAAwB,CAAC;IACjER,2BAA2B,CAACnE,sEAAW,CAAC4E,sBAAsB,CAAC;IAC/DT,2BAA2B,CAACnE,sEAAW,CAAC6E,eAAe,CAAC;IACxDV,2BAA2B,CAACnE,sEAAW,CAAC8E,yBAAyB,CAAC;IAClEX,2BAA2B,CAACnE,sEAAW,CAAC+E,sBAAsB,EAAE,KAAK,CAAC;IACtEZ,2BAA2B,CAACnE,sEAAW,CAACgF,sBAAsB,CAAC;IAC/Db,2BAA2B,CAACnE,sEAAW,CAACiF,4BAA4B,CAAC;IACrEd,2BAA2B,CAACnE,sEAAW,CAACkF,gCAAgC,CAAC;IACzEf,2BAA2B,CAACnE,sEAAW,CAACmF,+BAA+B,CAAC;IACxEhB,2BAA2B,CAACnE,sEAAW,CAACoF,kCAAkC,CAAC;IAC3EjB,2BAA2B,CAACnE,sEAAW,CAACqF,+BAA+B,CAAC;IACxElB,2BAA2B,CAACnE,sEAAW,CAACsF,8BAA8B,CAAC;IACvEnB,2BAA2B,CAACnE,sEAAW,CAACuF,qBAAqB,CAAC;IAE9D;IACA,MAAMb,eAAe,GAAG,IAAI,CAACvE,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAAC0E,eAAe,CAAC;IACnF,IAAIA,eAAe,EAAE;MACnB,IAAI,CAACe,wBAAwB,GAAG,qBAAqBf,eAAe,cAAc;;IAEpF,MAAMC,wBAAwB,GAAG,IAAI,CAACxE,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAAC2E,wBAAwB,CAAC;IACrG,IAAIA,wBAAwB,EAAE;MAC5B,IAAI,CAACA,wBAAwB,GAAGA,wBAAwB;;IAE1D,MAAMC,sBAAsB,GAAG,IAAI,CAACzE,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAAC4E,sBAAsB,CAAC;IACjG,IAAIA,sBAAsB,EAAE;MAC1B,IAAI,CAACA,sBAAsB,GAAGA,sBAAsB;;IAGtD;IACA,IAAI,CAACpE,WAAW,CAACmB,SAAS,GAAG;MAAE+D,eAAe,EAAE3F,4EAAY,CAAC4F,KAAK,CAACD;IAAe,CAAE;IACpF,IAAI,CAAClF,WAAW,CAACxC,MAAM,GAAG,MAAK;MAC7B;MACA4H,MAAM,CAACC,IAAI,CAAC,mCAAmC,EAAE,OAAO,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC1E,YAAY,GAAG,IAAI,CAACf,0BAA0B,CAAC0F,sBAAsB,EAAE;IAE5E;IACA,IAAI,CAACC,YAAY,GAAG,IAAI,CAAC1F,0BAA0B,CAAC2F,sBAAsB,EAAE;IAE5E,IAAI,CAAC7F,cAAc,CAAC8F,IAAI,CAAClG,4EAAY,CAACX,WAAW,CAAC8G,iBAAiB,EAAE,IAAI,CAAC,CACvEC,IAAI,CAACrG,0CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAEqF,QAAmC,IAAI;MACjD,IAAI,CAACC,uBAAuB,GAAGD,QAAQ,CAACC,uBAAuB;MAC/D,IAAI,CAAClG,cAAc,CAACmE,UAAU,CAACtE,sEAAW,CAACsG,cAAc,EAAEF,QAAQ,CAAC;IACtE,CAAC,CAAC;EACN;EAEAG,eAAeA,CAAA;IACb,IAAI,CAACnG,0BAA0B,CAACoG,WAAW,EAAE;EAC/C;EAAC,QAAAjH,CAAA;qBA/IUU,YAAY,EAAAwG,+DAAA,CAAA7G,sEAAA,GAAA6G,+DAAA,CAAAG,8FAAA,GAAAH,+DAAA,CAAAK,8FAAA,GAAAL,+DAAA,CAAAO,kDAAA,GAAAP,+DAAA,CAAAO,qDAAA,GAAAP,+DAAA,CAAAO,kDAAA,GAAAP,+DAAA,CAAAO,+DAAA,GAAAP,+DAAA,CAAAO,wDAAA,GAAAP,+DAAA,CAAAO,kDAAA,GAAAP,+DAAA,CAAAO,oDAAA;EAAA;EAAA,QAAAxH,EAAA;UAAZS,YAAY;IAAAuH,SAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAC,sBAAAC,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QChCzBrB,uDAAA,mBAA6B;QAC7BA,4DAAA,aAYS;QAXJA,wDAAA,mBAAA0B,2CAAA;UAAA,OAASJ,GAAA,CAAArH,iBAAA,CAAA0H,aAAA,EAAiC;QAAA,EAAC;QAc9C3B,uDADA,8BAAqE,4BACN;QAE/DA,4DAAA,aAAyB;QAUvBA,uDATA,iCAK0B,iCAGA,oBACK;QACjCA,0DAAA,EAAM;QAINA,uDAFA,aAA+B,8BAEsC;QACvEA,0DAAA,EAAM;;;QA/BDA,uDAAA,EAUG;QAVHA,wDAAA,YAAAA,6DAAA,KAAAgC,GAAA,GAAAV,GAAA,CAAArH,iBAAA,CAAAU,kBAAA,CAAAC,UAAA,gBAAA0G,GAAA,CAAArH,iBAAA,CAAAU,kBAAA,CAAAC,UAAA,gBAAA0G,GAAA,CAAArH,iBAAA,CAAAgI,iBAAA,EAAAX,GAAA,CAAArH,iBAAA,CAAAU,kBAAA,CAAAC,UAAA,aAAA0G,GAAA,CAAArH,iBAAA,CAAAU,kBAAA,CAAAC,UAAA,mBAAA0G,GAAA,CAAArH,iBAAA,CAAAiI,yBAAA,EAAAZ,GAAA,CAAArH,iBAAA,CAAAkI,sBAAA,EAAAb,GAAA,CAAArH,iBAAA,CAAAU,kBAAA,CAAAK,UAAA,gBAAAsG,GAAA,CAAArH,iBAAA,CAAAU,kBAAA,CAAAI,MAAA,GAUG;QAEgBiF,uDAAA,EAAuB;QAAvBA,wDAAA,WAAAsB,GAAA,CAAA5G,YAAA,CAAuB;QACzBsF,uDAAA,EAAqB;QAArBA,wDAAA,WAAAsB,GAAA,CAAA9G,UAAA,CAAqB;QAGdwF,uDAAA,GAAoC;QAIpCA,wDAJA,YAAAsB,GAAA,CAAAtC,wBAAA,CAAoC,YAAAsC,GAAA,CAAApD,wBAAA,CACA,UAAAoD,GAAA,CAAAnD,sBAAA,CACJ,8BACH,gCACE;QAE/B6B,uDAAA,EAAkC;QAClCA,wDADA,WAAAsB,GAAA,CAAA1B,uBAAA,CAAkC,kBAAAI,6DAAA,KAAAqC,GAAA,EACgB;QAOvDrC,uDAAA,GAAuB;QAAvBA,wDAAA,WAAAsB,GAAA,CAAAhC,YAAA,CAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjC/C;AAE0D;AACqB;AAEb;AACnB;AACS,CAAC;AAEzD;AAEgD;AACU;AAE1D;AAEgD;AACN;AACI;AACI;AACQ;AACN;AACM;AAE1D;AAwDmB;AAEnB;AAEwD;AACT;AAEqD;AACN;AACR;AAC6B;AACM;AAE1C;AACuB;AACX;AACiB;AACR;AACG;AACd;AACiD;AACA;AACb;AACxC;AACkB;AACc;AAC7B;AACf;AAEC;AACT;AACyC;AACmB;AACsB;AAC9C;;;AAmI/F,MAAOsH,SAAS;EAAA,QAAA9N,CAAA;qBAAT8N,SAAS;EAAA;EAAA,QAAA7N,EAAA;UAAT6N,SAAS;IAAAC,SAAA,GAFRrN,wDAAY;EAAA;EAAA,QAAAR,EAAA;cA9FtBsJ,qEAAa,EACbC,0FAAuB,EACvBG,0DAAY,EACZF,wDAAW,EACXa,sDAAc,EACdP,2DAAa,EACbC,qDAAU,EACVC,yDAAY,EACZC,6DAAc,EACdC,qEAAkB,EAClBrK,iEAAgB,EAChB4J,gEAAmB,EACnBI,qEAAmB,EACnBF,mEAAgB,EAChBQ,+DAAe,EACfC,qEAAkB,EAClBR,2DAAY,CAAC3J,OAAO,CAClB;MACE6N,QAAQ,EAAE,CACR;QAAEC,IAAI,EAAE,iBAAiB;QAAE5P,SAAS,EAAE0O,4DAAoBA;MAAA,CAAE,EAC5D;QAAEkB,IAAI,EAAE,gBAAgB;QAAE5P,SAAS,EAAE2O,4DAAoBA;MAAA,CAAE,EAC3D;QAAKiB,IAAI,EAAE,oBAAoB;QAAE5P,SAAS,EAAC4O,iEAAyBA;MAAA,CAAE,EACtE;QAAEgB,IAAI,EAAE,qBAAqB;QAAE5P,SAAS,EAAE+O,yDAAiBA;MAAA,CAAC,CAC7D;MACDc,KAAK,EAAE,CACL;QAAED,IAAI,EAAE,OAAO;QAAED,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EAChD;QAAEC,IAAI,EAAE,UAAU;QAAE5P,SAAS,EAAEwO,+DAAuB;QAAEmB,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EACvF;QAAEC,IAAI,EAAE,OAAO;QAAE5P,SAAS,EAAEyO,sDAAc;QAAEkB,QAAQ,EAAE,CAAC,oBAAoB;MAAC,CAAE,EAC9E;QAAEC,IAAI,EAAE,QAAQ;QAAED,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EACjD;QAAEC,IAAI,EAAE,eAAe;QAAE5P,SAAS,EAAEmM,yDAAiB;QAAEwD,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EACtF;QAAEC,IAAI,EAAE,QAAQ;QAAE5P,SAAS,EAAEoM,uDAAe;QAAEuD,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EAC7E;QAAEC,IAAI,EAAE,QAAQ;QAAE5P,SAAS,EAAEqM,uDAAeA;MAAA,CAAE,EAC9C;QAAEuD,IAAI,EAAE,MAAM;QAAE5P,SAAS,EAAEsM,qDAAa;QAAEqD,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EACzE;QAAEC,IAAI,EAAE,UAAU;QAAE5P,SAAS,EAAEuM,yDAAiB;QAAEoD,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EACjF;QAAEC,IAAI,EAAE,MAAM;QAAE5P,SAAS,EAAEwM,2DAAmB;QAAEmD,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE;MAE/E;MACA;QAAEC,IAAI,EAAE,cAAc;QAAE5P,SAAS,EAAEwP,+GAA2B;QAAEG,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EAE/F;QAAEC,IAAI,EAAE,SAAS;QAAE5P,SAAS,EAAEyM,wDAAgB;QAAEkD,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EAC/E;QAAEC,IAAI,EAAE,WAAW;QAAE5P,SAAS,EAAE0M,4DAAoB;QAAEiD,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EACrF;QAAEC,IAAI,EAAE,UAAU;QAAE5P,SAAS,EAAE4M,yDAAiB;QAAE+C,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EACjF;QAAEC,IAAI,EAAE,aAAa;QAAE5P,SAAS,EAAE6M,4DAAoB;QAAE8C,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EACvF;QAAEC,IAAI,EAAE,cAAc;QAAE5P,SAAS,EAAE2M,6DAAqB;QAAEgD,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EACzF;QAAEC,IAAI,EAAE,WAAW;QAAE5P,SAAS,EAAE8M,0DAAkBA;MAAA,CAAE,EACpD;QAAE8C,IAAI,EAAE,UAAU;QAAE5P,SAAS,EAAE+M,yDAAiB;QAAE4C,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EACjF;QAAEC,IAAI,EAAE,OAAO;QAAE5P,SAAS,EAAEgN,sDAAcA;MAAA,CAAE,EAC5C;QAAE4C,IAAI,EAAE,MAAM;QAAE5P,SAAS,EAAEiN,qDAAaA;MAAA,CAAE,EAC1C;QAAE2C,IAAI,EAAE,MAAM;QAAE5P,SAAS,EAAEkN,qDAAaA;MAAA,CAAE,EAC1C;QAAE0C,IAAI,EAAE,gBAAgB;QAAE5P,SAAS,EAAEmN,8DAAsBA;MAAA,CAAE,EAC7D;QAAEyC,IAAI,EAAE,SAAS;QAAE5P,SAAS,EAAEoN,wDAAgBA;MAAA,CAAE,EAChD;QAAEwC,IAAI,EAAE,mBAAmB;QAAE5P,SAAS,EAAEqN,iEAAyBA;MAAA,CAAE,EACnE;QAAEuC,IAAI,EAAE,gBAAgB;QAAE5P,SAAS,EAAEuN,+DAAuBA;MAAA,CAAE,EAC9D;QAAEqC,IAAI,EAAE,WAAW;QAAE5P,SAAS,EAAEsN,sDAAcA;MAAA,CAAE,EAChD;QAAEsC,IAAI,EAAE,QAAQ;QAAE5P,SAAS,EAAEqO,0DAAkB;QAAEsB,QAAQ,EAAE,CAAC,gBAAgB;MAAC,CAAC,EAC9E;QAAEC,IAAI,EAAE,SAAS;QAAE5P,SAAS,EAAEsO,4DAAoBA;MAAA,CAAE,EACpD;QAAEsB,IAAI,EAAE,MAAM;QAAE5P,SAAS,EAAEuO,qDAAa;QAAEoB,QAAQ,EAAE,CAAC,iBAAiB;MAAC,CAAE,EACzE;QAAEC,IAAI,EAAE,SAAS;QAAE5P,SAAS,EAAE6O,4DAAoB;QAAEc,QAAQ,EAAE,CAAC,gBAAgB;MAAC,CAAE,EAClF;QAAEC,IAAI,EAAE,SAAS;QAAE5P,SAAS,EAAE8O,4DAAoBA;MAAA,CAAE,EACpD;QAAEc,IAAI,EAAE,QAAQ;QAAE5P,SAAS,EAAEgP,uDAAeA;MAAA,CAAE;MAE9C;MACA;QAAEY,IAAI,EAAE,eAAe;QAAE5P,SAAS,EAAEqP,4DAAoBA;MAAA,CAAE,EAC1D;QAAEO,IAAI,EAAE,oBAAoB;QAAE5P,SAAS,EAAEsP,gEAAwBA;MAAA,CAAE,EACnE;QAAEM,IAAI,EAAE,eAAe;QAAE5P,SAAS,EAAEmP,4DAAoBA;MAAA,CAAE,EAC1D;QAAES,IAAI,EAAE,yBAAyB;QAAE5P,SAAS,EAAEoP,qEAA6BA;MAAA,CAAE,EAC7E;QAAEQ,IAAI,EAAE,cAAc;QAAE5P,SAAS,EAAEiP,4DAAoBA;MAAA,CAAE,EACzD;QAAEW,IAAI,EAAE,wBAAwB;QAAE5P,SAAS,EAAEkP,qEAA6BA;MAAA,CAAE,CAC7E;MACDY,UAAU,EAAE,CACV;QAAEF,IAAI,EAAE,cAAc;QAAEG,UAAU,EAAEvC,6DAAqBA;MAAA,CAAE,EAC3D;QAAEoC,IAAI,EAAE,YAAY;QAAEG,UAAU,EAAEtC,2DAAmBA;MAAA,CAAE,EACvD;QAAEmC,IAAI,EAAE,QAAQ;QAAEG,UAAU,EAAErC,uDAAeA;MAAA,CAAE,EAC/C;QAAEkC,IAAI,EAAE,aAAa;QAAEG,UAAU,EAAEpC,4DAAoBA;MAAA,CAAE,EACzD;QAAEiC,IAAI,EAAE,iBAAiB;QAAEG,UAAU,EAAEnC,gEAAwBA;MAAA,CAAE,EACjE;QAAEgC,IAAI,EAAE,iBAAiB;QAAEG,UAAU,EAAEnC,gEAAwBA;MAAA,CAAE,EACjE;QAAEgC,IAAI,EAAE,sBAAsB;QAAEG,UAAU,EAAEnC,gEAAwBA;MAAA,CAAE,EACtE;QAAEgC,IAAI,EAAE,cAAc;QAAEG,UAAU,EAAElC,6DAAqBA;MAAA,CAAE,EAC3D;QAAE+B,IAAI,EAAE,uBAAuB;QAAEG,UAAU,EAAEjC,sEAA8BA;MAAA,CAAE,EAC7E;QAAE8B,IAAI,EAAE,iBAAiB;QAAEG,UAAU,EAAEhC,gEAAwBA;MAAA,CAAE,EACjE;QAAE6B,IAAI,EAAE,0BAA0B;QAAEG,UAAU,EAAE/B,yEAAiCA;MAAA,CAAE,EACnF;QAAE4B,IAAI,EAAE,mBAAmB;QAAEG,UAAU,EAAE9B,kEAA0BA;MAAA,CAAE,EACrE;QAAE2B,IAAI,EAAE,gBAAgB;QAAEG,UAAU,EAAE7B,+DAAuBA;MAAA,CAAE,EAC/D;QAAE0B,IAAI,EAAE,sBAAsB;QAAEG,UAAU,EAAE5B,qEAA6BA;MAAA,CAAE,EAC3E;QAAEyB,IAAI,EAAE,KAAK;QAAEG,UAAU,EAAE3B,oDAAYA;MAAA,CAAE,CAC1C;MACD4B,MAAM,EAAE;QACNC,gBAAgB,EAAE,IAAI;QACtBC,iBAAiB,EAAE,aAAa;QAChCC,UAAU,EAAE;;KAEf,CAAC;EAAA;;;uHAKKV,SAAS;IAAAW,YAAA,GA/HlB/N,wDAAY,EAEZhE,6GAAwB,EACxBC,uGAAsB,EACtBC,+FAAoB,EACpBC,4HAA6B,EAC7BE,wFAAiB,EACjBC,+GAAwB,EACxBC,oGAAqB,EACrBC,sHAA0B,EAC1BC,8GAAwB,EACxBC,iHAAyB,EACzBN,kIAA+B,EAC/BQ,mGAAqB,EACrBC,oJAAoC,EACpCC,oJAAoC,EACpCK,uIAA+B,EAC/BJ,+FAAmB,EACnBC,iHAAyB,EACzBC,+HAA6B,EAC7BG,kGAAoB,EACpBF,mFAAe,EACfP,oFAAgB,EAChBa,2EAAa,EACb0P,oHAA0B,EAC1B7P,uIAA+B,EAC/BC,6JAAqC,EAErC6P,+GAA2B;IAAAzN,OAAA,GAG3BoJ,qEAAa,EACbC,0FAAuB,EACvBG,0DAAY,EACZF,wDAAW,EACXa,sDAAc,EACdP,2DAAa,EACbC,qDAAU,EACVC,yDAAY,EACZC,6DAAc,EACdC,qEAAkB,EAClBrK,iEAAgB,EAChB4J,gEAAmB,EACnBI,qEAAmB,EACnBF,mEAAgB,EAChBQ,+DAAe,EACfC,qEAAkB,EAAAjK,2DAAA;EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjKM;AAE0E;AAE2D;AACzE;AACvB;AACD;AASe;;;;;;;;;;AAMzE,MAAOxD,6BAA8B,SAAQqS,uFAAiB;EASlEvO,YACYwO,KAAqB,EACrBC,MAAc,EACdC,cAA8B,EAC9BC,aAA4B,EAC5BC,qBAA4C,EAC5CC,iBAAoC,EACpC5O,cAA8B,EAChCG,WAAwB,EACxB0O,kBAAsC,EACtCC,kBAAsC,EACtCC,kBAAsC;IAE9C,KAAK,CACHR,KAAK,EACLC,MAAM,EACNC,cAAc,EACdC,aAAa,EACbC,qBAAqB,EACrBC,iBAAiB,EACjB5O,cAAc,CAAC;IAnBP,KAAAuO,KAAK,GAALA,KAAK;IACL,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAC,cAAc,GAAdA,cAAc;IACd,KAAAC,aAAa,GAAbA,aAAa;IACb,KAAAC,qBAAqB,GAArBA,qBAAqB;IACrB,KAAAC,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAA5O,cAAc,GAAdA,cAAc;IAChB,KAAAG,WAAW,GAAXA,WAAW;IACX,KAAA0O,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAC,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAC,kBAAkB,GAAlBA,kBAAkB;IAlB5B,KAAAC,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAG7F,KAAAC,UAAU,GAAWb,qEAAS,CAACxP,oBAAoB;IAE3C,KAAAsQ,iCAAiC,GAAY,KAAK;IAwBxD,IAAI,CAACC,UAAU,CACb,CAACpB,wEAAa,CAACqB,wBAAwB,CAACC,YAAY,EAAErB,sEAAW,CAACoB,wBAAwB,CAACC,YAAY,CAAC,EACxG,MAAM,GAAG1P,4EAAY,CAAC2P,SAAS,CAACC,0BAA0B,IAAI,IAAI,CAACC,EAAE,EAAE,CAAC;EAC5E;EAEA/O,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACnB,KAAK,CAACoB,QAAQ,CAAC/O,SAAS,CAAE+O,QAAkB,IAAI;MACnD,IAAI,CAACF,EAAE,GAAGE,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAC;MAC5B,IAAI,CAAC,IAAI,CAACH,EAAE,EAAE;QACZ,IAAI,CAACA,EAAE,GAAGE,QAAQ,CAACC,GAAG,CAAC,eAAe,CAAC;QACvC,IAAI,IAAI,CAACH,EAAE,EAAE;UACX,IAAI,CAACN,iCAAiC,GAAG,IAAI;;;MAGjD,IAAI,IAAI,CAACM,EAAE,EAAE;QACX,IAAI,CAACI,mBAAmB,GAAGzB,+EAAe,CAACpM,wCAAwC;;IAEvF,CAAC,CAAC;IAEF,IAAI,CAAC7B,WAAW,CAACwD,oBAAoB,CAAC,aAAa,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC;IACpE,IAAI,CAACxD,WAAW,CAACwD,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAACmM,MAAM,EAAE;EACvE;EAEAC,QAAQA,CAACC,KAAU;IACjB,IAAI,CAACC,2CAA2C,CAAC9B,0FAA+B,CAACkB,wBAAwB,CAAC;IAE1G,IAAI,CAACa,sBAAsB,EAAE;EAC/B;EAEAC,mBAAmBA,CAACH,KAAU;IAC5B,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAACmB,wBAAwB,CAACiB,sBAAsB;QAChE,QAAQN,KAAK,CAACA,KAAK,CAACO,IAAI;UACtB,KAAKxC,sEAAW,CAACsB,wBAAwB,CAACmB,IAAI;UAC9C,KAAKzC,sEAAW,CAACsB,wBAAwB,CAACoB,IAAI;YAAE;cAC5C,IAAI,CAACC,sCAAsC,CAACV,KAAK,CAACA,KAAK,CAACW,IAAI,CAAClB,EAAE,CAAC;cAChE;;UAEJ,KAAK1B,sEAAW,CAACsB,wBAAwB,CAACuB,MAAM;YAAE;cAChD,IAAI,CAAC/B,kBAAkB,CAACgC,kCAAkC,CAAC;gBAAEC,SAAS,EAAE,CAACd,KAAK,CAACA,KAAK,CAACW,IAAI,CAAClB,EAAE;cAAC,CAAE,CAAC;cAChG;;UAEF,KAAK1B,sEAAW,CAACsB,wBAAwB,CAAC0B,MAAM;YAAE;cAChD,MAAMC,UAAU,GAAGhB,KAAK,CAACA,KAAK,CAACW,IAAI;cACnC,IAAI,CAACM,oCAAoC,CAACD,UAAU,CAACvB,EAAE,CAAC;cACxD;;;QAGJ;;EAEN;EAEAwB,oCAAoCA,CAACC,QAAgB;IACnD,IAAI,CAACpC,kBAAkB,CAACmC,oCAAoC,CAACC,QAAQ,CAAC,CACnElL,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAACuQ,iBAAiB,IAAG;MAC7B,IAAI,CAACA,iBAAiB,CAACC,WAAW,EAAE;QAClC,IAAI,CAACC,YAAY,EAAE;;IAEvB,CAAC,CAAC;EACN;EAEAvB,MAAMA,CAAA;IACJ,IAAI,IAAI,CAACX,iCAAiC,EAAE;MAC1C,IAAI,CAACmC,+BAA+B,EAAE;KACvC,MACI;MACH,IAAI,CAACC,6BAA6B,EAAE;;EAExC;EAEQA,6BAA6BA,CAAA;IACnC,IAAI,CAAC/C,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC+C,WAAW,CAACV,IAAI,CAAC,CAAC;EAC9D;EAEQoT,+BAA+BA,CAAA;IACrC,IAAI,CAAC9C,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC+C,WAAW,CAACT,MAAM,EAAE,IAAI,CAACsR,EAAE,CAAC,CAAC;EACzE;EAEQiB,sCAAsCA,CAACjB,EAAU;IACvD,IAAI,IAAI,CAACN,iCAAiC,EAAE;MAC1C,IAAI,CAACX,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC+C,WAAW,CAACT,MAAM,EAAE,IAAI,CAACsR,EAAE,EAAE5T,sEAAc,CAAC+C,WAAW,CAAC6S,8BAA8B,EAAEhC,EAAE,CAAC,CAAC;KACvI,MACI;MACH,IAAI,CAACjB,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAACiD,sBAAsB,CAACX,MAAM,EAAEsR,EAAE,CAAC,CAAC;;EAEjF;EAAC,QAAArQ,CAAA;qBAvHUnD,6BAA6B,EAAAqK,gEAAA,CAAA7G,4DAAA,GAAA6G,gEAAA,CAAA7G,oDAAA,GAAA6G,gEAAA,CAAAG,sDAAA,GAAAH,gEAAA,CAAAG,qDAAA,GAAAH,gEAAA,CAAAK,oFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,sEAAA,GAAA1L,gEAAA,CAAAG,mDAAA,GAAAH,gEAAA,CAAA2L,8EAAA,GAAA3L,gEAAA,CAAA6L,8EAAA,GAAA7L,gEAAA,CAAA+L,+EAAA;EAAA;EAAA,QAAAhT,EAAA;UAA7BpD,6BAA6B;IAAAoL,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAgL,uCAAA9K,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCzB1CrB,6DAAA,iCAO+C;QAAtBA,yDAFA,wBAAAoM,qFAAAC,MAAA;UAAA,OAAc/K,GAAA,CAAAmI,QAAA,CAAA4C,MAAA,CAAgB;QAAA,EAAC,iCAAAC,8FAAAD,MAAA;UAAA,OACR/K,GAAA,CAAAuI,mBAAA,CAAAwC,MAAA,CAA2B;QAAA,EAAC,sBAAAE,mFAAA;UAAA,OACvCjL,GAAA,CAAAkI,MAAA,EAAQ;QAAA,EAAC;QAC9CxJ,2DAAA,EAA0B;;;QAJDA,yDAJA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF,aAAAlL,GAAA,CAAA6H,EAAA,CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDZ;AAEsF;AAEmF;AAC7G;AACvB;AACS;AAcW;;;;;;;;;;;;AAM/E,MAAOvT,+BAAgC,SAAQiX,6FAAmB;EAgBtEpT,YACY2O,aAA4B,EAC5B1O,cAA8B,EAC9BoT,mBAAwC,EACxCxE,iBAAoC,EACpCyE,4BAA0D,EAC1D7E,MAAc,EAChBD,KAAqB,EACrB+E,YAA0B,EAC1BnT,WAAwB,EACxBoT,WAAwB,EACxB9E,cAA8B,EAC9B+E,eAAgC,EAChCzE,kBAAsC,EACtCJ,qBAA4C;IACpD,KAAK,CAACD,aAAa,EAAE1O,cAAc,EAAEoT,mBAAmB,EAAExE,iBAAiB,EAAEyE,4BAA4B,EAAE7E,MAAM,CAAC;IAdxG,KAAAE,aAAa,GAAbA,aAAa;IACb,KAAA1O,cAAc,GAAdA,cAAc;IACd,KAAAoT,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAAxE,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAyE,4BAA4B,GAA5BA,4BAA4B;IAC5B,KAAA7E,MAAM,GAANA,MAAM;IACR,KAAAD,KAAK,GAALA,KAAK;IACL,KAAA+E,YAAY,GAAZA,YAAY;IACZ,KAAAnT,WAAW,GAAXA,WAAW;IACX,KAAAoT,WAAW,GAAXA,WAAW;IACX,KAAA9E,cAAc,GAAdA,cAAc;IACd,KAAA+E,eAAe,GAAfA,eAAe;IACf,KAAAzE,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAJ,qBAAqB,GAArBA,qBAAqB;IA5B/B,KAAAK,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAQ,EAAE,GAAG,EAAE;IACP,KAAAI,mBAAmB,GAAWzB,+EAAe,CAAC3M,aAAa;IAC3D,KAAAyN,UAAU,GAAWb,qEAAS,CAACvP,sBAAsB;IACrD,KAAAgU,SAAS,GAAWI,oEAAQ,CAACO,MAAM;IAEnC,KAAAC,aAAa,GAAG,EAAE;IAClB,KAAAC,OAAO,GAAG,KAAK;IAEP,KAAAC,wBAAwB,GAAG,IAAI;IAE/B,KAAAzE,iCAAiC,GAAY,KAAK;EAkB1D;EAEAzO,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACnB,KAAK,CAACoB,QAAQ,CAAC/O,SAAS,CAAE+O,QAAkB,IAAI;MACnD,IAAI,CAACF,EAAE,GAAGE,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAC;MAC5B,IAAI,CAAC,IAAI,CAACH,EAAE,EAAE;QACZ,IAAI,CAACA,EAAE,GAAGE,QAAQ,CAACC,GAAG,CAAC,eAAe,CAAC;QACvC,IAAI,IAAI,CAACH,EAAE,EAAE;UACX,IAAI,CAACN,iCAAiC,GAAG,IAAI;;;MAGjD,IAAI,IAAI,CAACM,EAAE,EAAE;QACX,IAAI,CAACI,mBAAmB,GAAGzB,+EAAe,CAACnM,yCAAyC;QACpF,IAAI,CAAC0R,OAAO,GAAG,IAAI;;IAEvB,CAAC,CAAC;IAEF,IAAI,CAACxT,WAAW,CAACyD,kBAAkB,CAAC,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC+P,OAAO;IACrE,IAAI,CAACxT,WAAW,CAACyD,kBAAkB,CAAC,qCAAqC,CAAC,GAAG,CAACiQ,SAAiB,EAAEC,YAAoB,KACnH,IAAI,CAACN,eAAe,CAACO,kDAAkD,CAAC,IAAI,CAACC,QAAQ,CAACC,KAAK,EAAEJ,SAAS,EAAEC,YAAY,CAAC;IACvH,IAAI,CAAC3T,WAAW,CAACyD,kBAAkB,CAAC,gDAAgD,CAAC,GAAG,CAACiQ,SAAiB,EAAEC,YAAoB,KAC9H,IAAI,CAACN,eAAe,CAACU,6DAA6D,CAAC,IAAI,CAACF,QAAQ,CAACC,KAAK,EAAEH,YAAY,CAAC;IAEvH,IAAI,CAAC3T,WAAW,CAACyD,kBAAkB,CAAC,2BAA2B,CAAC,GAAG,MAAM,IAAI;IAC7E,IAAI,CAACzD,WAAW,CAACyD,kBAAkB,CAAC,2BAA2B,CAAC,GAAG,MAAM,IAAI;IAE7E,IAAI,CAACzD,WAAW,CAACwD,oBAAoB,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,CAACwQ,cAAc;IAC5E,IAAI,CAAChU,WAAW,CAACwD,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAACmM,MAAM,CAAC,IAAI,CAAC;IAEzE,IAAI,CAAC0D,eAAe,CAACY,gCAAgC,CACnD,MAAM,IAAI,CAACJ,QAAQ,CAACK,MAAM,EAC1B,MAAM,IAAI,CAACF,cAAc,EACzB,MAAM,IAAI,CAACR,OAAO,EACjBW,OAAgB,IAAK,IAAI,CAACV,wBAAwB,GAAGU,OAAO,EAC7D,MAAM,IAAI,CAACV,wBAAwB,CAAC;IAEtC,IAAI,CAACJ,eAAe,CAACe,qCAAqC,CACxD,MAAM,IAAI,CAACJ,cAAc,EACzB,MAAM,IAAI,CAACK,gBAAgB,EAAE,CAAC;EAClC;EAEAC,UAAUA,CAACzE,KAAU;IACnB,IAAI,CAACmE,cAAc,GAAG,CAAC,CAACnE,KAAK,EAAEmE,cAAc;IAC7C,IAAI,CAAC,IAAI,CAACA,cAAc,EAAE;MACxB;MACA,IAAI,CAACP,wBAAwB,GAAG,KAAK;;IAGvC,IAAI,CAAC3D,2CAA2C,CAAC9B,0FAA+B,CAACuG,0BAA0B,CAAC;IAE5G,IAAI1E,KAAK,EAAE;MACT,IAAI,CAAC0D,aAAa,GAAG1D,KAAK,CAAC0D,aAAa;;IAG1C,IAAI,CAACiB,yBAAyB,CAAC3E,KAAK,CAAC;EACvC;EAEA4E,YAAYA,CAAC5E,KAAU;IACrB,IAAI,CAAC6E,2BAA2B,EAAE;EACpC;EAEAC,IAAIA,CAAC9E,KAAU;IACb,MAAM+E,eAAe,GAAgB;MACnCtN,QAAQ,EAAE,IAAI,CAACyH,UAAU;MACzB8F,aAAa,EAAE,IAAI,CAAClC,SAAS;MAC7BrD,EAAE,EAAE,IAAI,CAACA,EAAE;MACXxJ,QAAQ,EAAE+J,KAAK,CAACiE,KAAK;MACrBgB,sBAAsB,EAAEjF,KAAK,CAACkF,eAAe;MAC7CC,QAAQ,EAAE;KACX;IACD,IAAI,CAACnF,KAAK,CAACoF,WAAW,EAAE;MACtB,IAAI,CAACpB,QAAQ,CAACqB,sBAAsB,EAAE;MACtC,IAAI,CAAC,IAAI,CAACrB,QAAQ,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEiB,WAAW,CAACC,KAAK,EAAE;QAC/C,IAAI,CAACvB,QAAQ,CAACwB,qBAAqB,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC9G,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC2C,MAAM,CAACC,eAAe,CAAC;OACjE,MACI;QACH,IAAI,CAACC,QAAQ,CAACb,eAAe,CAAC;;KAEjC,MACI;MACH,IAAI,CAACa,QAAQ,CAACb,eAAe,CAAC;;EAElC;EAEQa,QAAQA,CAACC,OAAoB;IACnC,IAAI,CAACpH,cAAc,CAACqH,WAAW,EAAE;IACjC,IAAI,CAACvC,WAAW,CAACqC,QAAQ,CAAChW,4EAAY,CAACd,sBAAsB,CAACgW,IAAI,EAAEe,OAAO,CAAC,CACzE7P,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAE+P,IAAgB,IAAI;MAC9B,IAAI,CAAClC,cAAc,CAACuH,WAAW,EAAE;MACjC,IAAI,IAAI,CAACC,cAAc,CAACJ,OAAO,EAAElF,IAAI,EAAEuF,CAAC,IAAI,IAAI,CAACN,QAAQ,CAACM,CAAC,CAAC,CAAC,EAAE;QAC7D;;MAEF,IAAIjD,gFAAqB,CAACkD,0BAA0B,CAACC,QAAQ,CAACzF,IAAI,CAAC0F,OAAO,CAAC,EAAE;QAC3E,IAAI,CAACC,YAAY,GAAG3F,IAAI,CAAC0F,OAAO;OACjC,MACI;QACH,IAAI,CAAC5G,EAAE,GAAGkB,IAAI,CAAClB,EAAE;QACjB,IAAI,CAAC6G,YAAY,GAAGvD,qEAAU,CAAC2B,0BAA0B,CAAC6B,cAAc;;MAE1E,IAAI,CAACnD,mBAAmB,CAACqC,UAAU,CAAC,IAAI,CAACa,YAAY,EAAE,IAAI,EAAE3F,IAAI,CAAC6F,OAAO,CAAC;IAC5E,CAAC,CAAC;EACN;EAEA1G,MAAMA,CAACE,KAAU;IACf,IAAI,CAACyG,kCAAkC,EAAE;EAC3C;EAEAC,eAAeA,CAAC1G,KAAU;IACxB,IAAI,IAAI,CAACsG,YAAY,KAAKvD,qEAAU,CAAC2B,0BAA0B,CAAC6B,cAAc,EAAE;MAC9E,IAAI,CAACE,kCAAkC,CAAC,IAAI,CAAC;;EAEjD;EAEQ5B,2BAA2BA,CAAA;IACjC,MAAM8B,+CAA+C,GAAiB,CACpE3I,wEAAa,CAAC0G,0BAA0B,CAACkC,qCAAqC,EAC9E3I,sEAAW,CAACyG,0BAA0B,CAACkC,qCAAqC,EAC5E5D,uEAAY,CAAC0B,0BAA0B,CAACkC,qCAAqC,EAC7E1I,wEAAa,CAACwG,0BAA0B,CAACmC,mCAAmC,CAC7E;IACD,MAAMC,oCAAoC,GAAiB,CACzD9I,wEAAa,CAAC0G,0BAA0B,CAACqC,IAAI,EAC7C9I,sEAAW,CAACyG,0BAA0B,CAACqC,IAAI,EAC3C/D,uEAAY,CAAC0B,0BAA0B,CAACsC,0BAA0B,EAClE9I,wEAAa,CAACwG,0BAA0B,CAACuC,wBAAwB,CAClE;IACD,IAAI,CAACtI,qBAAqB,CAACuI,mCAAmC,CAC5D,MAAM,IAAI,CAAClD,QAAQ,CAACC,KAAK,EACzBA,KAAK,IAAI,IAAI,CAACD,QAAQ,CAACC,KAAK,GAAGA,KAAK,EACpC,CACE0C,+CAA+C,EAC/CG,oCAAoC,CACrC,CAAC;EACN;EAEQL,kCAAkCA,CAACU,oBAAoB,GAAG,KAAK;IACrE,IAAI,IAAI,CAAChI,iCAAiC,EAAE;MAC1C,IAAI,CAACqC,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC+C,WAAW,CAACT,MAAM,EAAE,IAAI,CAACuV,aAAa,EAAE7X,sEAAc,CAAC+C,WAAW,CAACwY,4BAA4B,CAAC,EAAED,oBAAoB,CAAC;KAC3J,MACI;MACH,IAAI,CAAC3F,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAACgD,oBAAoB,CAACV,MAAM,EAAE,IAAI,CAACuV,aAAa,CAAC,EAAEyD,oBAAoB,CAAC;;EAE9G;EAAC,QAAA/X,CAAA;qBAlLUlD,+BAA+B,EAAAoK,gEAAA,CAAA7G,qDAAA,GAAA6G,gEAAA,CAAAG,sEAAA,GAAAH,gEAAA,CAAAK,gFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,kGAAA,GAAA1L,gEAAA,CAAA2L,oDAAA,GAAA3L,gEAAA,CAAA2L,4DAAA,GAAA3L,gEAAA,CAAA6L,iEAAA,GAAA7L,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA7G,sDAAA,GAAA6G,gEAAA,CAAA+L,yEAAA,GAAA/L,gEAAA,CAAAmR,+EAAA,GAAAnR,gEAAA,CAAAoR,qFAAA;EAAA;EAAA,QAAArY,EAAA;UAA/BnD,+BAA+B;IAAAmL,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAkQ,yCAAAhQ,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QC9B5CrB,6DAAA,iCASqD;QAA5BA,yDAJA,wBAAAsR,uFAAAjF,MAAA;UAAA,OAAc/K,GAAA,CAAA6M,UAAA,CAAA9B,MAAA,CAAkB;QAAA,EAAC,2BAAAkF,0FAAAlF,MAAA;UAAA,OAChB/K,GAAA,CAAAgN,YAAA,CAAAjC,MAAA,CAAoB;QAAA,EAAC,4BAAAmF,2FAAAnF,MAAA;UAAA,OACpB/K,GAAA,CAAA8O,eAAA,CAAA/D,MAAA,CAAuB;QAAA,EAAC,oBAAAoF,mFAAApF,MAAA;UAAA,OAChC/K,GAAA,CAAAkN,IAAA,CAAAnC,MAAA,CAAY;QAAA,EAAC,sBAAAqF,qFAAArF,MAAA;UAAA,OACX/K,GAAA,CAAAkI,MAAA,CAAA6C,MAAA,CAAc;QAAA,EAAC;QACpDrM,2DAAA,EAA0B;;;QANDA,yDAJA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF,aAAAlL,GAAA,CAAA6H,EAAA,CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDF;AAEkD;AAEyK;AAC1L;AACP;AACC;AAYc;;;;;;;;;;AAMzE,MAAOlT,wBAAyB,SAAQ+R,uFAA+C;EAM3FvO,YACYwO,KAAqB,EACrBC,MAAc,EACdC,cAA8B,EAC9BC,aAA4B,EAC5BC,qBAA4C,EAC5CC,iBAAoC,EACpC5O,cAA8B,EAChC6O,kBAAsC,EACtCC,kBAAsC,EACtCC,kBAAsC;IAE9C,KAAK,CACHR,KAAK,EACLC,MAAM,EACNC,cAAc,EACdC,aAAa,EACbC,qBAAqB,EACrBC,iBAAiB,EACjB5O,cAAc,CAAC;IAlBP,KAAAuO,KAAK,GAALA,KAAK;IACL,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAC,cAAc,GAAdA,cAAc;IACd,KAAAC,aAAa,GAAbA,aAAa;IACb,KAAAC,qBAAqB,GAArBA,qBAAqB;IACrB,KAAAC,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAA5O,cAAc,GAAdA,cAAc;IAChB,KAAA6O,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAC,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAC,kBAAkB,GAAlBA,kBAAkB;IAd5B,KAAAC,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAC,UAAU,GAAWb,qEAAS,CAACmK,eAAe;IAuB5C,IAAI,CAACpJ,UAAU,CACb,CAACpB,wEAAa,CAACyK,mBAAmB,CAACC,YAAY,EAAEzK,sEAAW,CAACwK,mBAAmB,CAACC,YAAY,CAAC,EAC9F,MAAM9Y,4EAAY,CAAC2P,SAAS,CAACoJ,eAAe,EAC5C;MACEC,aAAa,EAAEA,CAAA,KAAMP,yEAAc,CAACQ,eAAe;MACnDC,WAAW,EAAE,CAAC9K,wEAAa,CAACyK,mBAAmB,CAACC,YAAY,EAAEzK,sEAAW,CAACwK,mBAAmB,CAACC,YAAY,EAAE1F,uEAAY,CAACyF,mBAAmB,CAAC7Z,WAAW,CAAC;MACzJma,kBAAkB,EAAE7K,wEAAa,CAACuK,mBAAmB,CAACO,iBAAiB;MACvEC,kBAAkB,EAAE/K,wEAAa,CAACuK,mBAAmB,CAACS,iBAAiB;MACvEC,sBAAsB,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,qBAAqB,CAAC;MACxEC,0BAA0B,EAAEA,CAACC,WAAgB,EAAEC,WAAgB,MAAM;QACnEC,UAAU,EAAEF,WAAW;QACvBG,MAAM,EAAEF,WAAW,GAAGnB,8EAAmB,CAACM,mBAAmB,CAACgB,uBAAuB,CAAC;QACtFC,WAAW,EAAEJ,WAAW,GAAGnB,8EAAmB,CAACM,mBAAmB,CAACkB,4BAA4B,CAAC;QAChGC,mBAAmB,EAAEN,WAAW,GAAGnB,8EAAmB,CAACM,mBAAmB,CAACoB,mCAAmC;OAC/G,CAAC;MACFC,uBAAuB,EAAEA,CAAA,MAAO;QAC9BN,MAAM,EAAEtB,iFAAsB,CAACO,mBAAmB,CAACgB;OACpD;KACF,CAAC;EACN;EAEA/Y,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACqK,aAAa,CAACC,uBAAuB,EAAE;EAC9C;EAEAjK,QAAQA,CAACC,KAAU;IACjB,IAAI,CAACE,sBAAsB,CAAC,IAAI,CAAC6J,aAAa,CAACE,uBAAuB,EAAE,CAAC;IACzE,IAAI,IAAI,CAACF,aAAa,CAACG,2BAA2B,CAAC,IAAI,CAACH,aAAa,CAACE,uBAAuB,EAAE,CAAC,EAAE;MAChG,IAAI,CAACrL,iBAAiB,CAACuL,kBAAkB,CAAC7B,sEAAW,EAAEF,6EAAkB,CAACK,mBAAmB,CAACI,eAAe,EAAEN,+EAAoB,CAACE,mBAAmB,CAAC;;EAE5J;EAEA2B,UAAUA,CAACpK,KAAU;IACnB,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAACuK,mBAAmB,CAACO,iBAAiB;MACxD,KAAK9K,wEAAa,CAACuK,mBAAmB,CAACS,iBAAiB;QAAE;UACxD,IAAI,CAAC7H,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACM,iBAAiB,CAACrK,KAAK,CAACsK,MAAM,CAAC,CAAC;UACrE;;;EAGN;EAEAC,mBAAmBA,CAACvK,KAAU;IAC5B;EAAA;EAGFG,mBAAmBA,CAACH,KAAU;IAC5B,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAACuK,mBAAmB,CAAC+B,sBAAsB;QAAE;UAC7D,QAAQxK,KAAK,CAACA,KAAK,CAACO,IAAI;YACtB,KAAKxC,sEAAW,CAAC0K,mBAAmB,CAACjI,IAAI;YACzC,KAAKzC,sEAAW,CAAC0K,mBAAmB,CAAChI,IAAI;cAAE;gBACzC,IAAI,CAACjC,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC+C,WAAW,CAACT,MAAM,EAAE6R,KAAK,CAACA,KAAK,CAACW,IAAI,CAAClB,EAAE,CAAC,CAAC;gBACnF;;YAEF,KAAK1B,sEAAW,CAAC0K,mBAAmB,CAACgC,kBAAkB;cAAE;gBACvD,IAAI,CAACjM,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAACgD,oBAAoB,CAACV,MAAM,EAAE6R,KAAK,CAACA,KAAK,CAACW,IAAI,CAAClB,EAAE,CAAC,CAAC;gBAC5F;;YAEF,KAAK1B,sEAAW,CAAC0K,mBAAmB,CAACiC,MAAM;cAAE;gBAC3C,QAAQ1K,KAAK,CAACA,KAAK,CAACW,IAAI,CAACgK,UAAU;kBACjC,KAAK1C,4EAAiB,CAACQ,mBAAmB,CAACmC,GAAG;oBAAE;sBAC9C,IAAI,CAACpM,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC+C,WAAW,CAACT,MAAM,CAAC,CAAC;sBAC9D;;kBAEF,KAAK8Z,4EAAiB,CAACQ,mBAAmB,CAACoC,UAAU;oBAAE;sBACrD,MAAMC,oCAAoC,GAAG,IAAI,CAACC,uCAAuC,EAAE;sBAC3F,IAAI,CAAClM,kBAAkB,CAACmM,wBAAwB,CAACF,oCAAoC,CAAC;sBACtF;;kBAEF,KAAK7C,4EAAiB,CAACQ,mBAAmB,CAACwC,UAAU;oBAAE;sBACrD,IAAI,CAACC,0BAA0B,EAAE;sBACjC;;;gBAGJ;;;UAGJ;;;EAGN;EAEAA,0BAA0BA,CAAA;IACxB,IAAI,CAACpM,kBAAkB,CAACoM,0BAA0B,EAAE,CACjDlV,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAACuQ,iBAAiB,IAAG;MAC7B,IAAI,CAACA,iBAAiB,CAACC,WAAW,EAAE;QAClC,IAAI,CAACC,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACoB,gBAAgB,EAAE,CAAC;;IAE5D,CAAC,CAAC;EACN;EAEQJ,uCAAuCA,CAAA;IAC7C,MAAMK,QAAQ,GAAG,IAAI,CAACC,gBAAgB,CACpC,IAAI,CAACrH,QAAQ,CAACC,KAAK,EACnBjG,wEAAa,CAACyK,mBAAmB,CAACC,YAAY,EAC9CzK,sEAAW,CAACwK,mBAAmB,CAACC,YAAY,EAC5C1F,uEAAY,CAACyF,mBAAmB,CAAC7Z,WAAW,EAC5CsP,wEAAa,CAACuK,mBAAmB,CAAC+B,sBAAsB,CAAC;IAC3D,MAAM1J,SAAS,GAAGsK,QAAQ,CAACE,GAAG,CAACC,MAAM,IAAIA,MAAM,CAAC9L,EAAE,CAAC;IACnD,MAAMqL,oCAAoC,GAA8B;MAAEhK;IAAS,CAAE;IACrF,OAAOgK,oCAAoC;EAC7C;EAAC,QAAA1b,CAAA;qBApIU7C,wBAAwB,EAAA+J,gEAAA,CAAA7G,4DAAA,GAAA6G,gEAAA,CAAA7G,oDAAA,GAAA6G,gEAAA,CAAAG,sDAAA,GAAAH,gEAAA,CAAAG,qDAAA,GAAAH,gEAAA,CAAAK,oFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,sEAAA,GAAA1L,gEAAA,CAAA2L,8EAAA,GAAA3L,gEAAA,CAAA6L,8EAAA,GAAA7L,gEAAA,CAAA+L,+EAAA;EAAA;EAAA,QAAAhT,EAAA;UAAxB9C,wBAAwB;IAAA8K,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAA+T,kCAAA7T,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QC5BrCrB,6DAAA,iCAOyD;QAAhCA,yDAHA,wBAAAmV,gFAAA9I,MAAA;UAAA,OAAc/K,GAAA,CAAAmI,QAAA,CAAA4C,MAAA,CAAgB;QAAA,EAAC,4BAAA+I,oFAAA/I,MAAA;UAAA,OACb/K,GAAA,CAAA2S,mBAAA,CAAA5H,MAAA,CAA2B;QAAA,EAAC,iCAAAgJ,yFAAAhJ,MAAA;UAAA,OACvB/K,GAAA,CAAAuI,mBAAA,CAAAwC,MAAA,CAA2B;QAAA,EAAC,sBAAAiJ,8EAAAjJ,MAAA;UAAA,OACvC/K,GAAA,CAAAwS,UAAA,CAAAzH,MAAA,CAAkB;QAAA,EAAC;QACxDrM,2DAAA,EAA0B;;;QALDA,yDAHA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIoC;AACV;AAYwC;;;;;;;;;;;;;;AAM5G,MAAOlW,oCAAqC,SAAQif,0HAA4B;EAEpF9b,YACYsT,4BAA0D,EAC1D7E,MAAc,EACdD,KAAqB,EACrBuN,gBAAqC,EACrCxI,YAA0B,EAC1BnT,WAAwB,EACxBoT,WAAwB,EACxB7E,aAA4B,EAC5BD,cAA8B,EAC9BzO,cAA8B,EAC9BwT,eAAgC,EAChCJ,mBAAwC,EACxCxE,iBAAoC,EACpCmN,sBAA8C,EAC9CC,wBAAkD,EAClDjN,kBAAsC;IAEhD,KAAK,CACHsE,4BAA4B,EAC5B7E,MAAM,EACND,KAAK,EACLuN,gBAAgB,EAChBxI,YAAY,EACZnT,WAAW,EACXoT,WAAW,EACX7E,aAAa,EACbD,cAAc,EACdzO,cAAc,EACdwT,eAAe,EACfJ,mBAAmB,EACnBxE,iBAAiB,EACjBmN,sBAAsB,EACtBC,wBAAwB,EACxBjN,kBAAkB,CAAC;IAjCX,KAAAsE,4BAA4B,GAA5BA,4BAA4B;IAC5B,KAAA7E,MAAM,GAANA,MAAM;IACN,KAAAD,KAAK,GAALA,KAAK;IACL,KAAAuN,gBAAgB,GAAhBA,gBAAgB;IAChB,KAAAxI,YAAY,GAAZA,YAAY;IACZ,KAAAnT,WAAW,GAAXA,WAAW;IACX,KAAAoT,WAAW,GAAXA,WAAW;IACX,KAAA7E,aAAa,GAAbA,aAAa;IACb,KAAAD,cAAc,GAAdA,cAAc;IACd,KAAAzO,cAAc,GAAdA,cAAc;IACd,KAAAwT,eAAe,GAAfA,eAAe;IACf,KAAAJ,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAAxE,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAmN,sBAAsB,GAAtBA,sBAAsB;IACtB,KAAAC,wBAAwB,GAAxBA,wBAAwB;IACxB,KAAAjN,kBAAkB,GAAlBA,kBAAkB;IAoB5B,IAAI,CAACkN,QAAQ,GAAG;MACdC,QAAQ,EAAE,KAAK;MACfC,kBAAkB,EAAE,IAAI;MAExBC,oBAAoB,EAAEhO,+EAAe,CAACnL,yCAAyC;MAC/EoZ,mBAAmB,EAAE,EAAE;MACvBC,qBAAqB,EAAElO,+EAAe,CAACxL,oCAAoC;MAE3E2Z,iBAAiB,EAAEA,CAAC5M,QAAQ,EAAE6M,eAAe,KAAKA,eAAe,EAAEC,OAAO;MAC1EC,gBAAgB,EAAEA,CAAC/M,QAAQ,EAAE6M,eAAe,KAAK,EAAE;MACnDG,kBAAkB,EAAEA,CAAChN,QAAQ,EAAE6M,eAAe,KAAK7M,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAC;MAErEgN,cAAc,EAAEA,CAACjN,QAAQ,EAAE6M,eAAe,KAAK,CAAC,CAACA,eAAe,EAAEC,OAAO;MACzEI,aAAa,EAAEA,CAAClN,QAAQ,EAAE6M,eAAe,KAAK,KAAK;MAEnDM,kBAAkB,EAAEA,CAACC,WAAW,EAAEC,UAAU,KAAK,IAAI;MAErDC,oBAAoB,EAAEA,CAACjN,KAAK,EAAEwM,eAAe,EAAEO,WAAW,EAAEC,UAAU,KAAK,EAAE;MAC7EE,gCAAgC,EAAEA,CAAClN,KAAK,EAAEwM,eAAe,EAAEO,WAAW,EAAEC,UAAU,KAAKD,WAAW,GAAGP,eAAe,EAAEW,6BAA6B,GAAGnN,KAAK,CAACP,EAAE;MAE9J2N,gBAAgB,EAAEA,CAAA,KAAM,IAAI,CAAC5L,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;MAC5C6L,iBAAiB,EAAEA,CAAA,KAAM,IAAI,CAAC7L,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;MAEnD8L,mBAAmB,EAAEvK,qEAAU,CAACwK,QAAQ,CAACC,0BAA0B;MACnEC,iBAAiB,EAAE,IAAI;MAEvBC,8BAA8B,EAAE,EAAE;MAClCC,2BAA2B,EAAE,EAAE;MAE/BC,iBAAiB,EAAExF,6EAAkB,CAACmF,QAAQ,CAACM;KAChD;EACH;EAAC,QAAAze,CAAA;qBArEUxC,oCAAoC,EAAA0J,gEAAA,CAAA7G,kGAAA,GAAA6G,gEAAA,CAAAG,oDAAA,GAAAH,gEAAA,CAAAG,4DAAA,GAAAH,gEAAA,CAAAK,+DAAA,GAAAL,gEAAA,CAAAO,iEAAA,GAAAP,gEAAA,CAAA0L,mDAAA,GAAA1L,gEAAA,CAAA0L,mDAAA,GAAA1L,gEAAA,CAAA0L,qDAAA,GAAA1L,gEAAA,CAAA0L,sDAAA,GAAA1L,gEAAA,CAAA2L,sEAAA,GAAA3L,gEAAA,CAAA6L,wEAAA,GAAA7L,gEAAA,CAAA+L,gFAAA,GAAA/L,gEAAA,CAAAmR,4EAAA,GAAAnR,gEAAA,CAAAoR,sFAAA,GAAApR,gEAAA,CAAA0X,4FAAA,GAAA1X,gEAAA,CAAA4X,+EAAA;EAAA;EAAA,QAAA7e,EAAA;UAApCzC,oCAAoC;IAAAyK,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAA0W,8CAAAxW,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QC1BjDrB,6DAAA,iCAUqD;QAA5BA,yDALA,wBAAA8X,4FAAAzL,MAAA;UAAA,OAAc/K,GAAA,CAAA6M,UAAA,CAAA9B,MAAA,CAAkB;QAAA,EAAC,2BAAA0L,+FAAA1L,MAAA;UAAA,OAChB/K,GAAA,CAAAgN,YAAA,CAAAjC,MAAA,CAAoB;QAAA,EAAC,4BAAA2L,gGAAA3L,MAAA;UAAA,OACpB/K,GAAA,CAAA8O,eAAA,CAAA/D,MAAA,CAAuB;QAAA,EAAC,iCAAA4L,qGAAA5L,MAAA;UAAA,OACnB/K,GAAA,CAAAuI,mBAAA,CAAAwC,MAAA,CAA2B;QAAA,EAAC,oBAAA6L,wFAAA7L,MAAA;UAAA,OACzC/K,GAAA,CAAAkN,IAAA,CAAAnC,MAAA,CAAY;QAAA,EAAC,sBAAA8L,0FAAA9L,MAAA;UAAA,OACX/K,GAAA,CAAAkI,MAAA,CAAA6C,MAAA,CAAc;QAAA,EAAC;QACpDrM,2DAAA,EAA0B;;;QAPDA,yDAJA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF,aAAAlL,GAAA,CAAA6H,EAAA,CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDZ;AAIsF;AAEgB;AAC1C;AACd;AAWW;;;;;;;;;;AAM/E,MAAO9S,oCAAqC,SAAQwW,6FAAmB;EAU3EpT,YACY2O,aAA4B,EAC5B1O,cAA8B,EAC9BoT,mBAAwC,EACxCxE,iBAAoC,EACpCyE,4BAA0D,EAC1D7E,MAAc,EAChBrO,WAAwB,EACxBmT,YAA0B,EAC1BC,WAAwB,EACxB9E,cAA8B,EAC9BqN,gBAAqC;IAC7C,KAAK,CAACpN,aAAa,EAAE1O,cAAc,EAAEoT,mBAAmB,EAAExE,iBAAiB,EAAEyE,4BAA4B,EAAE7E,MAAM,CAAC;IAXxG,KAAAE,aAAa,GAAbA,aAAa;IACb,KAAA1O,cAAc,GAAdA,cAAc;IACd,KAAAoT,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAAxE,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAyE,4BAA4B,GAA5BA,4BAA4B;IAC5B,KAAA7E,MAAM,GAANA,MAAM;IACR,KAAArO,WAAW,GAAXA,WAAW;IACX,KAAAmT,YAAY,GAAZA,YAAY;IACZ,KAAAC,WAAW,GAAXA,WAAW;IACX,KAAA9E,cAAc,GAAdA,cAAc;IACd,KAAAqN,gBAAgB,GAAhBA,gBAAgB;IAnB1B,KAAA9M,qBAAqB,GAAGlB,mEAA4B,CAACmB,wCAAwC;IAE7F,KAAAQ,EAAE,GAAG,EAAE;IACP,KAAAI,mBAAmB,GAAWzB,+EAAe,CAAC3M,aAAa;IAC3D,KAAAyN,UAAU,GAAWb,qEAAS,CAACqQ,gBAAgB;IAC/C,KAAA5L,SAAS,GAAWI,oEAAQ,CAACO,MAAM;EAgBnC;EAEA/S,QAAQA,CAAA;IACN,IAAI,CAACP,WAAW,CAACwD,oBAAoB,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,CAACwQ,cAAc;IAC5E,IAAI,CAAChU,WAAW,CAACwD,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAACmM,MAAM,CAAC,IAAI,CAAC;EAC3E;EAEA2E,UAAUA,CAACzE,KAAU;IACnB,MAAM2O,gBAAgB,GAAG,IAAI,CAAC3e,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAAC+E,sBAAsB,CAAC;IAC3F,IAAI,CAACkX,gBAAgB,CAAC8C,IAAI,CAACD,gBAAgB,CAAC,CAACE,IAAI,CAACC,MAAM,IAAG;MACzDC,OAAO,CAACC,GAAG,CAAC,0BAA0B,GAAGF,MAAM,CAAC;IAClD,CAAC,CAAC;IAEF,IAAI,CAAC3K,cAAc,GAAG,CAAC,CAACnE,KAAK,EAAEmE,cAAc;IAE7C,IAAI,CAAClE,2CAA2C,CAAC9B,0FAA+B,CAAC8Q,oBAAoB,CAAC;EACxG;EAEAnK,IAAIA,CAAC9E,KAAU;IACb,IAAI,CAAC8L,gBAAgB,CAACoD,QAAQ,EAAE,CAACL,IAAI,CACnCM,KAAK,IAAG;MACN,MAAMpK,eAAe,GAAgC;QACnDtN,QAAQ,EAAE,IAAI,CAACyH,UAAU;QACzB8F,aAAa,EAAE,IAAI,CAAClC,SAAS;QAC7BrD,EAAE,EAAE,IAAI,CAACA,EAAE;QACXxJ,QAAQ,EAAE+J,KAAK,CAACiE,KAAK;QACrBgB,sBAAsB,EAAEjF,KAAK,CAACkF,eAAe;QAC7CC,QAAQ,EAAE,KAAK;QACfiK,cAAc,EAAED;OACjB;MACD,IAAI,CAACnP,KAAK,CAACoF,WAAW,EAAE;QACtB,IAAI,CAACpB,QAAQ,CAACqB,sBAAsB,EAAE;QACtC,IAAI,CAAC,IAAI,CAACrB,QAAQ,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEiB,WAAW,CAACC,KAAK,EAAE;UAC/C,IAAI,CAACvB,QAAQ,CAACwB,qBAAqB,CAAC,IAAI,CAAC;UACzC,IAAI,CAAC9G,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC2C,MAAM,CAACC,eAAe,CAAC;SACjE,MACI;UACH,IAAI,CAACC,QAAQ,CAACb,eAAe,CAAC;;OAEjC,MACI;QACH,IAAI,CAACa,QAAQ,CAACb,eAAe,CAAC;;IAElC,CAAC,EACDsK,KAAK,IAAG;MACNN,OAAO,CAACC,GAAG,CAAC,oCAAoC,GAAGK,KAAK,CAAC;IAC3D,CAAC,CAAC;EACN;EAEAzJ,QAAQA,CAACC,OAAoC;IAC3C,IAAI,CAACpH,cAAc,CAACqH,WAAW,EAAE;IACjC,IAAI,CAACvC,WAAW,CAACqC,QAAQ,CAAChW,4EAAY,CAAC4C,eAAe,CAAC8c,sBAAsB,EAAEzJ,OAAO,CAAC,CACpF7P,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAE+P,IAAgC,IAAI;MAC9C,IAAI,CAAClC,cAAc,CAACuH,WAAW,EAAE;MACjC,IAAI,CAACM,YAAY,GAAGvD,qEAAU,CAACkM,oBAAoB,CAACM,qBAAqB;MACzE,IAAI,CAAC7Q,aAAa,CAAC+G,UAAU,CAAC,IAAI,CAACa,YAAY,CAAC;IAClD,CAAC,CAAC;EACN;EAEAxG,MAAMA,CAACE,KAAU;IACf,IAAI,CAACwP,yBAAyB,EAAE;EAClC;EAEA9I,eAAeA,CAAC1G,KAAU;IACxB,IAAI,IAAI,CAACsG,YAAY,KAAKvD,qEAAU,CAACkM,oBAAoB,CAACM,qBAAqB,EAAE;MAC/E,IAAI,CAACC,yBAAyB,CAAC,IAAI,CAAC;;EAExC;EAEQA,yBAAyBA,CAACrI,oBAAoB,GAAG,KAAK;IAC5D,IAAI,CAAC3F,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE2F,oBAAoB,CAAC;EAC5C;EAAC,QAAA/X,CAAA;qBA/FUzC,oCAAoC,EAAA2J,gEAAA,CAAA7G,oDAAA,GAAA6G,gEAAA,CAAAG,sEAAA,GAAAH,gEAAA,CAAAK,gFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,kGAAA,GAAA1L,gEAAA,CAAA2L,oDAAA,GAAA3L,gEAAA,CAAA7G,kDAAA,GAAA6G,gEAAA,CAAA6L,iEAAA,GAAA7L,gEAAA,CAAA7G,kDAAA,GAAA6G,gEAAA,CAAA7G,qDAAA,GAAA6G,gEAAA,CAAA+L,+DAAA;EAAA;EAAA,QAAAhT,EAAA;UAApC1C,oCAAoC;IAAA0K,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAgY,8CAAA9X,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QC5BjDrB,6DAAA,iCAQqD;QAA5BA,yDAHA,wBAAAoZ,4FAAA/M,MAAA;UAAA,OAAc/K,GAAA,CAAA6M,UAAA,CAAA9B,MAAA,CAAkB;QAAA,EAAC,4BAAAgN,gGAAAhN,MAAA;UAAA,OACf/K,GAAA,CAAA8O,eAAA,CAAA/D,MAAA,CAAuB;QAAA,EAAC,oBAAAiN,wFAAAjN,MAAA;UAAA,OAChC/K,GAAA,CAAAkN,IAAA,CAAAnC,MAAA,CAAY;QAAA,EAAC,sBAAAkN,0FAAAlN,MAAA;UAAA,OACX/K,GAAA,CAAAkI,MAAA,CAAA6C,MAAA,CAAc;QAAA,EAAC;QACpDrM,2DAAA,EAA0B;;;QALDA,yDAJA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF,aAAAlL,GAAA,CAAA6H,EAAA,CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGyB;AACmB;AACI;AAY0B;;;;;;;;;;;;;;AAM5G,MAAO3T,wBAAyB,SAAQ+f,0HAA4B;EAExE9b,YACYsT,4BAA0D,EAC1D7E,MAAc,EACdD,KAAqB,EACrBuN,gBAAqC,EACrCxI,YAA0B,EAC1BnT,WAAwB,EACxBoT,WAAwB,EACxB7E,aAA4B,EAC5BD,cAA8B,EAC9BzO,cAA8B,EAC9BwT,eAAgC,EAChCJ,mBAAwC,EACxCxE,iBAAoC,EACpCmN,sBAA8C,EAC9CC,wBAAkD,EAClDjN,kBAAsC;IAEhD,KAAK,CACHsE,4BAA4B,EAC5B7E,MAAM,EACND,KAAK,EACLuN,gBAAgB,EAChBxI,YAAY,EACZnT,WAAW,EACXoT,WAAW,EACX7E,aAAa,EACbD,cAAc,EACdzO,cAAc,EACdwT,eAAe,EACfJ,mBAAmB,EACnBxE,iBAAiB,EACjBmN,sBAAsB,EACtBC,wBAAwB,EACxBjN,kBAAkB,CAAC;IAjCX,KAAAsE,4BAA4B,GAA5BA,4BAA4B;IAC5B,KAAA7E,MAAM,GAANA,MAAM;IACN,KAAAD,KAAK,GAALA,KAAK;IACL,KAAAuN,gBAAgB,GAAhBA,gBAAgB;IAChB,KAAAxI,YAAY,GAAZA,YAAY;IACZ,KAAAnT,WAAW,GAAXA,WAAW;IACX,KAAAoT,WAAW,GAAXA,WAAW;IACX,KAAA7E,aAAa,GAAbA,aAAa;IACb,KAAAD,cAAc,GAAdA,cAAc;IACd,KAAAzO,cAAc,GAAdA,cAAc;IACd,KAAAwT,eAAe,GAAfA,eAAe;IACf,KAAAJ,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAAxE,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAmN,sBAAsB,GAAtBA,sBAAsB;IACtB,KAAAC,wBAAwB,GAAxBA,wBAAwB;IACxB,KAAAjN,kBAAkB,GAAlBA,kBAAkB;IAoB5B,IAAI,CAACkN,QAAQ,GAAG;MACdC,QAAQ,EAAE,KAAK;MACfC,kBAAkB,EAAE,KAAK;MAEzBC,oBAAoB,EAAEhO,+EAAe,CAACtL,wCAAwC;MAC9EuZ,mBAAmB,EAAEjO,+EAAe,CAAC1L,mCAAmC;MACxE4Z,qBAAqB,EAAElO,+EAAe,CAAC7L,wCAAwC;MAE/Ega,iBAAiB,EAAEA,CAAC5M,QAAQ,EAAE6M,eAAe,KAAKA,eAAe,EAAEC,OAAO;MAC1EC,gBAAgB,EAAEA,CAAC/M,QAAQ,EAAE6M,eAAe,KAAK7M,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAC;MACnE+M,kBAAkB,EAAEA,CAAChN,QAAQ,EAAE6M,eAAe,KAAK,EAAE;MAErDI,cAAc,EAAEA,CAACjN,QAAQ,EAAE6M,eAAe,KAAK,CAAC,CAACA,eAAe,EAAEC,OAAO;MACzEI,aAAa,EAAEA,CAAClN,QAAQ,EAAE6M,eAAe,KAAK,CAAC,CAAC7M,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAC;MAElEkN,kBAAkB,EAAEA,CAACC,WAAW,EAAEC,UAAU,KAAKA,UAAU;MAE3DC,oBAAoB,EAAEA,CAACjN,KAAK,EAAEwM,eAAe,EAAEO,WAAW,EAAEC,UAAU,KAAKD,WAAW,GAAGP,eAAe,EAAEsD,iBAAiB,GAAI9C,UAAU,GAAGhN,KAAK,CAACP,EAAE,GAAG,EAAG;MAC1JyN,gCAAgC,EAAEA,CAAClN,KAAK,EAAEwM,eAAe,EAAEO,WAAW,EAAEC,UAAU,KAAK,EAAE;MAEzFI,gBAAgB,EAAEA,CAAA,KAAM,IAAI,CAAC5L,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC8B,IAAI,CAACO,IAAI,CAAC,CAAC;MACtEmf,iBAAiB,EAAEA,CAAA,KAAM,IAAI,CAAC7L,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC8B,IAAI,CAACO,IAAI,CAAC,EAAE,IAAI,CAAC;MAE7Eof,mBAAmB,EAAEvK,qEAAU,CAACwK,QAAQ,CAAChH,cAAc;MACvDkH,iBAAiB,EAAE,IAAI;MAEvBC,8BAA8B,EAAE9d,4EAAY,CAACrB,WAAW,CAACwhB,UAAU;MACnEpC,2BAA2B,EAAE/d,4EAAY,CAACrB,WAAW,CAACyhB,QAAQ;MAE9DpC,iBAAiB,EAAExF,6EAAkB,CAACmF,QAAQ,CAAC0C;KAChD;EACH;EAAC,QAAA7gB,CAAA;qBArEUtD,wBAAwB,EAAAwK,gEAAA,CAAA7G,kGAAA,GAAA6G,gEAAA,CAAAG,oDAAA,GAAAH,gEAAA,CAAAG,4DAAA,GAAAH,gEAAA,CAAAK,+DAAA,GAAAL,gEAAA,CAAAO,iEAAA,GAAAP,gEAAA,CAAA0L,mDAAA,GAAA1L,gEAAA,CAAA0L,mDAAA,GAAA1L,gEAAA,CAAA0L,qDAAA,GAAA1L,gEAAA,CAAA0L,sDAAA,GAAA1L,gEAAA,CAAA2L,sEAAA,GAAA3L,gEAAA,CAAA6L,wEAAA,GAAA7L,gEAAA,CAAA+L,gFAAA,GAAA/L,gEAAA,CAAAmR,4EAAA,GAAAnR,gEAAA,CAAAoR,uFAAA,GAAApR,gEAAA,CAAA0X,4FAAA,GAAA1X,gEAAA,CAAA4X,+EAAA;EAAA;EAAA,QAAA7e,EAAA;UAAxBvD,wBAAwB;IAAAuL,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAyY,kCAAAvY,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QC3BrCrB,6DAAA,iCAUqD;QAA5BA,yDALA,wBAAA6Z,gFAAAxN,MAAA;UAAA,OAAc/K,GAAA,CAAA6M,UAAA,CAAA9B,MAAA,CAAkB;QAAA,EAAC,2BAAAyN,mFAAAzN,MAAA;UAAA,OAChB/K,GAAA,CAAAgN,YAAA,CAAAjC,MAAA,CAAoB;QAAA,EAAC,4BAAA0N,oFAAA1N,MAAA;UAAA,OACpB/K,GAAA,CAAA8O,eAAA,CAAA/D,MAAA,CAAuB;QAAA,EAAC,iCAAA2N,yFAAA3N,MAAA;UAAA,OACnB/K,GAAA,CAAAuI,mBAAA,CAAAwC,MAAA,CAA2B;QAAA,EAAC,oBAAA4N,4EAAA5N,MAAA;UAAA,OACzC/K,GAAA,CAAAkN,IAAA,CAAAnC,MAAA,CAAY;QAAA,EAAC,sBAAA6N,8EAAA7N,MAAA;UAAA,OACX/K,GAAA,CAAAkI,MAAA,CAAA6C,MAAA,CAAc;QAAA,EAAC;QACpDrM,2DAAA,EAA0B;;;QAPDA,yDAJA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF,aAAAlL,GAAA,CAAA6H,EAAA,CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDZ;AAEsF;AAE0B;AACpD;AACvB;AACS;AAaW;;;;;;;;;;;AAM/E,MAAOzT,oBAAqB,SAAQmX,6FAAmB;EAa3DpT,YACY2O,aAA4B,EAC5B1O,cAA8B,EAC9BoT,mBAAwC,EACxCxE,iBAAoC,EACpCyE,4BAA0D,EAC1D7E,MAAc,EAChBD,KAAqB,EACrB+E,YAA0B,EAC1BnT,WAAwB,EACxBoT,WAAwB,EACxB9E,cAA8B,EAC9B+E,eAAgC,EAChCzE,kBAAsC;IAC9C,KAAK,CAACL,aAAa,EAAE1O,cAAc,EAAEoT,mBAAmB,EAAExE,iBAAiB,EAAEyE,4BAA4B,EAAE7E,MAAM,CAAC;IAbxG,KAAAE,aAAa,GAAbA,aAAa;IACb,KAAA1O,cAAc,GAAdA,cAAc;IACd,KAAAoT,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAAxE,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAyE,4BAA4B,GAA5BA,4BAA4B;IAC5B,KAAA7E,MAAM,GAANA,MAAM;IACR,KAAAD,KAAK,GAALA,KAAK;IACL,KAAA+E,YAAY,GAAZA,YAAY;IACZ,KAAAnT,WAAW,GAAXA,WAAW;IACX,KAAAoT,WAAW,GAAXA,WAAW;IACX,KAAA9E,cAAc,GAAdA,cAAc;IACd,KAAA+E,eAAe,GAAfA,eAAe;IACf,KAAAzE,kBAAkB,GAAlBA,kBAAkB;IAxB5B,KAAAC,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAQ,EAAE,GAAG,EAAE;IACP,KAAAI,mBAAmB,GAAWzB,+EAAe,CAAC3M,aAAa;IAC3D,KAAAyN,UAAU,GAAWb,qEAAS,CAACzP,WAAW;IAC1C,KAAAkU,SAAS,GAAWI,oEAAQ,CAACO,MAAM;IAEnC,KAAAE,OAAO,GAAG,KAAK;IAEP,KAAA8M,oBAAoB,GAAG,IAAI;EAiBnC;EAEA/f,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACnB,KAAK,CAACoB,QAAQ,CAAC/O,SAAS,CAAE+O,QAAkB,IAAI;MACnD,MAAMF,EAAE,GAAGE,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAC;MAC7B,IAAIH,EAAE,EAAE;QACN,IAAI,CAACA,EAAE,GAAGA,EAAE;QACZ,IAAI,CAACI,mBAAmB,GAAGzB,+EAAe,CAACrM,+BAA+B;QAC1E,IAAI,CAAC4R,OAAO,GAAG,IAAI;;IAEvB,CAAC,CAAC;IAEF,MAAM+M,uBAAuB,GAAI5M,YAAoB,IAAK,IAAI,CAACN,eAAe,CAACmN,sCAAsC,CAAC,IAAI,CAAC3M,QAAQ,CAACC,KAAK,EAAEH,YAAY,CAAC;IACxJ,MAAM8M,yBAAyB,GAAI9M,YAAoB,IAAK,IAAI,CAACN,eAAe,CAACqN,wCAAwC,CAAC,IAAI,CAAC7M,QAAQ,CAACC,KAAK,EAAEH,YAAY,CAAC;IAE5J,IAAI,CAAC3T,WAAW,CAACyD,kBAAkB,CAAC,WAAW,CAAC,GAAG,MACjD,IAAI,CAAC+P,OAAO;IACd,IAAI,CAACxT,WAAW,CAACyD,kBAAkB,CAAC,8BAA8B,CAAC,GAAG,CAACiQ,SAAiB,EAAEC,YAAoB,KAC5G4M,uBAAuB,CAAC5M,YAAY,CAAC;IACvC,IAAI,CAAC3T,WAAW,CAACyD,kBAAkB,CAAC,gCAAgC,CAAC,GAAG,CAACiQ,SAAiB,EAAEC,YAAoB,KAC9G8M,yBAAyB,CAAC9M,YAAY,CAAC;IACzC,IAAI,CAAC3T,WAAW,CAACyD,kBAAkB,CAAC,uCAAuC,CAAC,GAAG,CAACiQ,SAAiB,EAAEC,YAAoB,KACrH8M,yBAAyB,CAAC9M,YAAY,CAAC;IAEzC,IAAI,CAAC3T,WAAW,CAACwD,oBAAoB,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,CAACwQ,cAAc;IAC5E,IAAI,CAAChU,WAAW,CAACwD,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAACmM,MAAM,CAAC,IAAI,CAAC;IACzE,IAAI,CAAC3P,WAAW,CAACwD,oBAAoB,CAAC,oBAAoB,CAAC,GAAG,MAAM,IAAI,CAACmd,kBAAkB,CAAC,IAAI,CAAC;IAEjG,IAAI,CAACtN,eAAe,CAACuN,gCAAgC,CACnD,MAAM,IAAI,CAAC/M,QAAQ,CAACK,MAAM,EAC1B,MAAM,IAAI,CAACF,cAAc,EACzB,MAAM,IAAI,CAACR,OAAO,EACjBW,OAAgB,IAAK,IAAI,CAACmM,oBAAoB,GAAGnM,OAAO,EACzD,MAAM,IAAI,CAACmM,oBAAoB,CAAC;IAElC,IAAI,CAACjN,eAAe,CAACwN,wCAAwC,CAC3D,MAAM,IAAI,CAAC7M,cAAc,CAAC;EAC9B;EAEAM,UAAUA,CAACzE,KAAU;IACnB,IAAI,CAACmE,cAAc,GAAG,CAAC,CAACnE,KAAK,EAAEmE,cAAc;IAC7C,IAAI,CAAC,IAAI,CAACA,cAAc,EAAE;MACxB;MACA,IAAI,CAACsM,oBAAoB,GAAG,KAAK;;IAGnC,IAAI,CAACxQ,2CAA2C,CAAC9B,0FAA+B,CAAC8S,eAAe,CAAC;IAEjG,IAAI,CAACtM,yBAAyB,CAAC3E,KAAK,CAAC;EACzC;EAEE8E,IAAIA,CAAC9E,KAAU;IACb,MAAM+E,eAAe,GAAgB;MACnCtN,QAAQ,EAAE,IAAI,CAACyH,UAAU;MACzB8F,aAAa,EAAE,IAAI,CAAClC,SAAS;MAC7BrD,EAAE,EAAE,IAAI,CAACA,EAAE;MACXxJ,QAAQ,EAAE+J,KAAK,CAACiE,KAAK;MACrBgB,sBAAsB,EAAEjF,KAAK,CAACkF,eAAe;MAC7CC,QAAQ,EAAE;KACX;IACD,IAAI,CAACnF,KAAK,CAACoF,WAAW,EAAE;MACtB,IAAI,CAACpB,QAAQ,CAACqB,sBAAsB,EAAE;MACtC,IAAI,CAAC,IAAI,CAACrB,QAAQ,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEiB,WAAW,CAACC,KAAK,EAAE;QAC/C,IAAI,CAACvB,QAAQ,CAACwB,qBAAqB,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC9G,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC2C,MAAM,CAACC,eAAe,CAAC;OACjE,MACI;QACH,IAAI,CAACC,QAAQ,CAACb,eAAe,CAAC;;KAEjC,MACI;MACH,IAAI,CAACa,QAAQ,CAACb,eAAe,CAAC;;EAElC;EAEQa,QAAQA,CAACC,OAAoB;IACnC,IAAI,CAACpH,cAAc,CAACqH,WAAW,EAAE;IACjC,IAAI,CAACvC,WAAW,CAACqC,QAAQ,CAAChW,4EAAY,CAAChB,WAAW,CAACkW,IAAI,EAAEe,OAAO,CAAC,CAC9D7P,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAE+P,IAAgB,IAAI;MAC9B,IAAI,CAAClC,cAAc,CAACuH,WAAW,EAAE;MACjC,IAAI,IAAI,CAACC,cAAc,CAACJ,OAAO,EAAElF,IAAI,EAAEuF,CAAC,IAAI,IAAI,CAACN,QAAQ,CAACM,CAAC,CAAC,CAAC,EAAE;QAC7D;;MAEF,IAAIjD,gFAAqB,CAACiO,eAAe,CAAC9K,QAAQ,CAACzF,IAAI,CAAC0F,OAAO,CAAC,EAAE;QAChE,IAAI,CAACC,YAAY,GAAG3F,IAAI,CAAC0F,OAAO;OACjC,MACI;QACH,IAAI,CAAC5G,EAAE,GAAGkB,IAAI,CAAClB,EAAE;QACjB,IAAI,CAAC6G,YAAY,GAAGvD,qEAAU,CAACkO,eAAe,CAAC1K,cAAc;;MAE/D,IAAI,CAACnD,mBAAmB,CAACqC,UAAU,CAAC,IAAI,CAACa,YAAY,EAAE,IAAI,EAAE3F,IAAI,CAAC6F,OAAO,CAAC;IAC5E,CAAC,CAAC;EACN;EAEA1G,MAAMA,CAACE,KAAU;IACf,IAAI,CAACuB,6BAA6B,EAAE;EACtC;EAEAuP,kBAAkBA,CAAC9Q,KAAU;IAC3B,IAAI,CAACmR,8BAA8B,EAAE;EACvC;EAEAzK,eAAeA,CAAC1G,KAAU;IACxB,IAAI,IAAI,CAACsG,YAAY,KAAKvD,qEAAU,CAACkO,eAAe,CAAC1K,cAAc,EAAE;MACnE,IAAI,CAAChF,6BAA6B,CAAC,IAAI,CAAC;;EAE5C;EAEQA,6BAA6BA,CAAC4F,oBAAoB,GAAG,KAAK;IAChE,IAAI,CAAC3F,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC+C,WAAW,CAACV,IAAI,CAAC,EAAEiZ,oBAAoB,CAAC;EAC7E;EAEQgK,8BAA8BA,CAAChK,oBAAoB,GAAG,KAAK;IACjE,IAAI,CAAC3F,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC+C,WAAW,CAACT,MAAM,EAAE,IAAI,CAACsR,EAAE,EAAE5T,sEAAc,CAAC+C,WAAW,CAACwY,4BAA4B,CAAC,EAAED,oBAAoB,CAAC;EACjJ;EAAC,QAAA/X,CAAA;qBAjJUpD,oBAAoB,EAAAsK,gEAAA,CAAA7G,qDAAA,GAAA6G,gEAAA,CAAAG,sEAAA,GAAAH,gEAAA,CAAAK,gFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,kGAAA,GAAA1L,gEAAA,CAAA2L,oDAAA,GAAA3L,gEAAA,CAAA2L,4DAAA,GAAA3L,gEAAA,CAAA6L,iEAAA,GAAA7L,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA7G,sDAAA,GAAA6G,gEAAA,CAAA+L,yEAAA,GAAA/L,gEAAA,CAAAmR,+EAAA;EAAA;EAAA,QAAApY,EAAA;UAApBrD,oBAAoB;IAAAqL,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAA2Z,8BAAAzZ,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QC7BjCrB,6DAAA,iCAQqD;QAA5BA,yDAHA,wBAAA+a,4EAAA1O,MAAA;UAAA,OAAc/K,GAAA,CAAA6M,UAAA,CAAA9B,MAAA,CAAkB;QAAA,EAAC,4BAAA2O,gFAAA3O,MAAA;UAAA,OACf/K,GAAA,CAAA8O,eAAA,CAAA/D,MAAA,CAAuB;QAAA,EAAC,oBAAA4O,wEAAA5O,MAAA;UAAA,OAChC/K,GAAA,CAAAkN,IAAA,CAAAnC,MAAA,CAAY;QAAA,EAAC,sBAAA6O,0EAAA7O,MAAA;UAAA,OACX/K,GAAA,CAAAkI,MAAA,CAAA6C,MAAA,CAAc;QAAA,EAAC;QACpDrM,2DAAA,EAA0B;;;QALDA,yDAJA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF,aAAAlL,GAAA,CAAA6H,EAAA,CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDZ;AAEiF;AAEqJ;AAC3L;AACP;AACQ;AAeO;;;;;;;;;;;AAYzE,MAAOpT,qBAAsB,SAAQiS,uFAA4C;EAQrFvO,YACYwO,KAAqB,EACrBC,MAAc,EACdC,cAA8B,EAC9BC,aAA4B,EAC5BC,qBAA4C,EAC5CC,iBAAoC,EACpC5O,cAA8B,EAChCsT,YAA0B,EAC1BzE,kBAAsC,EACtCmN,wBAAkD,EAClDjN,kBAAsC;IAE9C,KAAK,CACHR,KAAK,EACLC,MAAM,EACNC,cAAc,EACdC,aAAa,EACbC,qBAAqB,EACrBC,iBAAiB,EACjB5O,cAAc,CAAC;IAnBP,KAAAuO,KAAK,GAALA,KAAK;IACL,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAC,cAAc,GAAdA,cAAc;IACd,KAAAC,aAAa,GAAbA,aAAa;IACb,KAAAC,qBAAqB,GAArBA,qBAAqB;IACrB,KAAAC,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAA5O,cAAc,GAAdA,cAAc;IAChB,KAAAsT,YAAY,GAAZA,YAAY;IACZ,KAAAzE,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAmN,wBAAwB,GAAxBA,wBAAwB;IACxB,KAAAjN,kBAAkB,GAAlBA,kBAAkB;IAjB5B,KAAAC,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAC,UAAU,GAAWb,qEAAS,CAACqT,YAAY;IA0BzC,IAAI,CAACtS,UAAU,CACb,CAACpB,wEAAa,CAAC2T,gBAAgB,CAACC,SAAS,EAAE3T,sEAAW,CAAC0T,gBAAgB,CAACC,SAAS,CAAC,EAClF,MAAMhiB,4EAAY,CAAC2P,SAAS,CAACsS,gCAAgC,EAC7D;MACEjJ,aAAa,EAAEA,CAAA,KAAMP,yEAAc,CAACyJ,YAAY;MAChDhJ,WAAW,EAAE,CAAC9K,wEAAa,CAAC2T,gBAAgB,CAACC,SAAS,EAAE3T,sEAAW,CAAC0T,gBAAgB,CAACC,SAAS,EAAE5O,uEAAY,CAAC2O,gBAAgB,CAACC,SAAS,CAAC;MACxI7I,kBAAkB,EAAE7K,wEAAa,CAACyT,gBAAgB,CAACI,cAAc;MACjE9I,kBAAkB,EAAE/K,wEAAa,CAACyT,gBAAgB,CAACK,cAAc;MACjE7I,sBAAsB,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,kBAAkB,CAAC;MAC1GC,0BAA0B,EAAEA,CAACC,WAAgB,EAAEC,WAAgB,MAAM;QACnEC,UAAU,EAAEF,WAAW;QACvB9I,IAAI,EAAE+I,WAAW,GAAGnB,8EAAmB,CAACwJ,gBAAgB,CAACM,yBAAyB,CAAC;QACnFrjB,WAAW,EAAE0a,WAAW,GAAGnB,8EAAmB,CAACwJ,gBAAgB,CAACO,yBAAyB,CAAC;QAC1FxI,WAAW,EAAEJ,WAAW,GAAGnB,8EAAmB,CAACwJ,gBAAgB,CAACQ,yBAAyB,CAAC;QAC1FC,KAAK,EAAE9I,WAAW,GAAGnB,8EAAmB,CAACwJ,gBAAgB,CAACU,4BAA4B,CAAC;QACvF1jB,YAAY,EAAE2a,WAAW,GAAGnB,8EAAmB,CAACwJ,gBAAgB,CAACW,0BAA0B,CAAC;QAC5FC,gBAAgB,EAAEjJ,WAAW,GAAGnB,8EAAmB,CAACwJ,gBAAgB,CAACa,6BAA6B;OACnG,CAAC;MACF1I,uBAAuB,EAAEA,CAAA,KAAM,IAAI;MACnC2I,sBAAsB,EAAE;QACtBC,kBAAkB,EAAE,CAAC1U,wEAAa,CAAC2T,gBAAgB,CAACC,SAAS,EAAE3T,sEAAW,CAAC0T,gBAAgB,CAACC,SAAS,EAAE5O,uEAAY,CAAC2O,gBAAgB,CAACC,SAAS,EAAE1T,wEAAa,CAACyT,gBAAgB,CAACK,cAAc,CAAC;QAC9LW,kCAAkC,EAAE,CAACxK,8EAAmB,CAACwJ,gBAAgB,CAACO,yBAAyB,CAAC;QACpGU,qCAAqC,EAAE,CAAC,CAACzK,8EAAmB,CAACwJ,gBAAgB,CAACQ,yBAAyB,CAAC,EAAE,CAAChK,8EAAmB,CAACwJ,gBAAgB,CAACU,4BAA4B,CAAC;;KAEhL,CAAC;EACN;EAEA3hB,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACqK,aAAa,CAACC,uBAAuB,EAAE;EAC9C;EAEAjK,QAAQA,CAACC,KAAU;IACjB,IAAI,CAACE,sBAAsB,CAAC,IAAI,CAAC6J,aAAa,CAACE,uBAAuB,EAAE,CAAC;IACzE,IAAI,IAAI,CAACF,aAAa,CAACG,2BAA2B,CAAC,IAAI,CAACH,aAAa,CAACE,uBAAuB,EAAE,CAAC,EAAE;MAChG,IAAI,CAACrL,iBAAiB,CAACuL,kBAAkB,CAAC7B,sEAAW,EAAEF,6EAAkB,CAACuJ,gBAAgB,CAACG,YAAY,EAAEvJ,+EAAoB,CAACoJ,gBAAgB,CAAC;;EAEnJ;EAEAvH,UAAUA,CAACpK,KAAU;IACnB,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAACyT,gBAAgB,CAACI,cAAc;MAClD,KAAK7T,wEAAa,CAACyT,gBAAgB,CAACK,cAAc;QAAE;UAClD,IAAI,CAAC3Q,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACM,iBAAiB,CAACrK,KAAK,CAACsK,MAAM,CAAC,CAAC;UACrE;;;EAGN;EAEAC,mBAAmBA,CAACvK,KAAU;IAE5B,MAAMsG,YAAY,GAAG,IAAI,CAACA,YAAY;IACtC,OAAO,IAAI,CAACA,YAAY;IAExB,QAAQA,YAAY;MAClB,KAAKvD,qEAAU,CAAC4O,gBAAgB,CAACkB,6BAA6B;QAAE;UAC9D,IAAI,CAACC,qBAAqB,CAAC9S,KAAK,EAAE+S,cAAc,CAAC;UACjD;;MAEF,KAAKhQ,qEAAU,CAAC4O,gBAAgB,CAACqB,8BAA8B;QAAE;UAC/D,IAAI,CAACC,oBAAoB,CAACjT,KAAK,EAAE+S,cAAc,EAAE/S,KAAK,EAAEkT,kBAAkB,CAAC;UAC3E;;;EAGN;EAEA/S,mBAAmBA,CAACH,KAAU;IAC5B,IAAI,CAACmT,qBAAqB,CAACnT,KAAK,CAAC;IACjC,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAACyT,gBAAgB,CAACyB,mBAAmB;QAAE;UACvD,QAAQpT,KAAK,CAACA,KAAK,CAACO,IAAI;YACtB,KAAKxC,sEAAW,CAAC4T,gBAAgB,CAAC0B,OAAO;cAAE;gBACzC,MAAMxN,OAAO,GAAG7F,KAAK,CAACA,KAAK,CAACW,IAAI;gBAChC,MAAM2S,gBAAgB,GAAG;kBAAEC,iBAAiB,EAAE9B,6EAAiB,CAAC+B,MAAM;kBAAE/T,EAAE,EAAEoG,OAAO,CAACpG;gBAAE,CAAE;gBACxF,IAAI,CAACgU,sBAAsB,CAACH,gBAAgB,CAAC;gBAC7C;;YAEF,KAAKvV,sEAAW,CAAC4T,gBAAgB,CAACjH,MAAM;cAAE;gBACxC,QAAQ1K,KAAK,CAACA,KAAK,CAACW,IAAI,CAACgK,UAAU;kBACjC,KAAK1C,4EAAiB,CAAC0J,gBAAgB,CAAC+B,OAAO;oBAAE;sBAC/C,MAAMC,aAAa,GAAG,IAAI,CAACC,gBAAgB,CAAC5T,KAAK,CAAC;sBAClD,IAAI,CAAC6T,4BAA4B,CAACF,aAAa,CAAC;sBAChD;;kBAEF,KAAK1L,4EAAiB,CAAC0J,gBAAgB,CAACmC,MAAM;oBAAE;sBAC9C,MAAMH,aAAa,GAAG,IAAI,CAACC,gBAAgB,CAAC5T,KAAK,CAAC;sBAClD,IAAI,CAAC+T,2BAA2B,CAACJ,aAAa,CAAC;sBAC/C;;kBAEF,KAAK1L,4EAAiB,CAAC0J,gBAAgB,CAAC9G,UAAU;oBAAE;sBAClD,MAAMmJ,iCAAiC,GAAG,IAAI,CAACC,oCAAoC,EAAE;sBACrF,IAAI,CAACpV,kBAAkB,CAACqV,qBAAqB,CAACF,iCAAiC,CAAC;sBAChF;;;gBAGJ;;;UAGJ;;;EAGN;EAEQP,sBAAsBA,CAACH,gBAAsC;IACnE,IAAI,CAACtjB,cAAc,CAAC8F,IAAI,CAAClG,4EAAY,CAACrB,WAAW,CAACwhB,UAAU,EAAEuD,gBAAgB,CAAC,CAC5Etd,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAEqF,QAAuC,IAAI;MACrD,IAAI,CAACyI,aAAa,CAACyV,eAAe,CAAC,IAAI,CAACnI,wBAAwB,CAACoI,4BAA4B,CAACne,QAAQ,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC;IACtI,CAAC,CAAC;EACN;EAEQ4d,4BAA4BA,CAACd,cAAqB;IACxD,IAAI,CAACsB,oBAAoB,CAACtR,qEAAU,CAAC4O,gBAAgB,CAACkB,6BAA6B,EAAEE,cAAc,CAAC;EACtG;EAEQgB,2BAA2BA,CAAChB,cAAqB;IACvD,IAAI,CAACsB,oBAAoB,CAACtR,qEAAU,CAAC4O,gBAAgB,CAACqB,8BAA8B,EAAED,cAAc,CAAC;EACvG;EAEQsB,oBAAoBA,CAACC,SAAiB,EAAEvB,cAAqB;IAEnE,IAAIA,cAAc,CAACwB,MAAM,KAAK,CAAC,EAAE;MAC/B,IAAI,CAAC7V,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC4O,gBAAgB,CAAC6C,qBAAqB,CAAC;MAChF;;IAGF,MAAM7f,yBAAyB,GAAG,IAAI,CAAC3E,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAAC8E,yBAAyB,CAAC;IACvG,IAAIoe,cAAc,CAACwB,MAAM,GAAGE,QAAQ,CAAC9f,yBAAyB,EAAE,EAAE,CAAC,EAAE;MACnE,IAAI,CAAC+J,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC4O,gBAAgB,CAAC+C,qBAAqB,EAAE,IAAI,EAAE;QAAE/f;MAAyB,CAAE,CAAC;MACrH;;IAGF,MAAMggB,UAAU,GAAG;MAAE5B;IAAc,CAAE;IACrC,MAAM6B,wBAAwB,GAAG;MAAEC,SAAS,EAAE9B,cAAc,CAACwB,MAAM,CAACO,QAAQ;IAAE,CAAE;IAChF,IAAI,CAACC,UAAU,CAACT,SAAS,EAAEK,UAAU,EAAEC,wBAAwB,CAAC;EAClE;EAEQG,UAAUA,CAACT,SAAiB,EAAEK,UAAgB,EAAEC,wBAA8C;IACpG,IAAI,CAACtO,YAAY,GAAGgO,SAAS;IAC7B,IAAI,CAAC5V,aAAa,CAAC+G,UAAU,CAAC6O,SAAS,EAAEK,UAAU,EAAEC,wBAAwB,CAAC;EAChF;EAEQ9B,qBAAqBA,CAACC,cAAqB;IACjD,MAAM9G,QAAQ,GAA0B;MACtC+I,WAAW,EAAEplB,4EAAY,CAACpB,QAAQ,CAACymB,OAAO;MAC1CC,mBAAmB,EAAEnS,qEAAU,CAAC4O,gBAAgB,CAACwD;KAClD;IACD,IAAI,CAACC,oBAAoB,CAACrC,cAAc,EAAE9G,QAAQ,CAAC;EACrD;EAEQgH,oBAAoBA,CAACF,cAAqB,EAAEG,kBAA0B;IAC5E,MAAMjH,QAAQ,GAA0B;MACtCoJ,gBAAgB,EAAE;QAAEnC;MAAkB,CAAE;MACxC8B,WAAW,EAAEplB,4EAAY,CAACpB,QAAQ,CAAC8mB,MAAM;MACzCJ,mBAAmB,EAAEnS,qEAAU,CAAC4O,gBAAgB,CAAC4D;KAClD;IACD,IAAI,CAACH,oBAAoB,CAACrC,cAAc,EAAE9G,QAAQ,CAAC;EACrD;EAEQmJ,oBAAoBA,CAC1BrC,cAAqB,EACrB9G,QAA+B;IAE/B,MAAMuJ,gBAAgB,GAAGzC,cAAc,CAACzH,GAAG,CAACmK,aAAa,IAAIA,aAAa,CAAChW,EAAE,CAAC;IAC9E,IAAI,CAACzP,cAAc,CAAC8F,IAAI,CAACmW,QAAQ,CAAC+I,WAAW,EAAE;MAAEQ,gBAAgB;MAAE,GAAGvJ,QAAQ,CAACoJ;IAAgB,CAAE,CAAC,CAC/Frf,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAC,MAAK;MACd,MAAM8kB,UAAU,GAAGA,CAAA,KAAM,IAAI,CAAChX,aAAa,CAAC+G,UAAU,CAACwG,QAAQ,CAACiJ,mBAAmB,CAAC;MACpF,IAAI,CAACS,qBAAqB,CAAC,IAAI,CAAC5L,aAAa,CAACoB,gBAAgB,EAAE,EAAEuK,UAAU,CAAC;IAC/E,CAAC,CAAC;EACN;EAEQzB,oCAAoCA,CAAA;IAC1C,MAAM7I,QAAQ,GAAG,IAAI,CAACC,gBAAgB,CACpC,IAAI,CAACrH,QAAQ,CAACC,KAAK,EACnBjG,wEAAa,CAAC2T,gBAAgB,CAACC,SAAS,EACxC3T,sEAAW,CAAC0T,gBAAgB,CAACC,SAAS,EACtC5O,uEAAY,CAAC2O,gBAAgB,CAACC,SAAS,EACvC1T,wEAAa,CAACyT,gBAAgB,CAACyB,mBAAmB,CAAC;IACrD,MAAMtS,SAAS,GAAGsK,QAAQ,CAACE,GAAG,CAACC,MAAM,IAAIA,MAAM,CAAC9L,EAAE,CAAC;IACnD,MAAMuU,iCAAiC,GAA8B;MAAElT;IAAS,CAAE;IAClF,OAAOkT,iCAAiC;EAC1C;EAAC,QAAA5kB,CAAA;qBArNU/C,qBAAqB,EAAAiK,gEAAA,CAAA7G,4DAAA,GAAA6G,gEAAA,CAAA7G,oDAAA,GAAA6G,gEAAA,CAAAG,sDAAA,GAAAH,gEAAA,CAAAG,qDAAA,GAAAH,gEAAA,CAAAK,oFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,sEAAA,GAAA1L,gEAAA,CAAA2L,iEAAA,GAAA3L,gEAAA,CAAA6L,8EAAA,GAAA7L,gEAAA,CAAA+L,4FAAA,GAAA/L,gEAAA,CAAAmR,+EAAA;EAAA;EAAA,QAAApY,EAAA;UAArBhD,qBAAqB;IAAAgL,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAme,+BAAAje,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCrClCrB,6DAAA,iCAOyD;QAAhCA,yDAHA,wBAAAuf,6EAAAlT,MAAA;UAAA,OAAc/K,GAAA,CAAAmI,QAAA,CAAA4C,MAAA,CAAgB;QAAA,EAAC,4BAAAmT,iFAAAnT,MAAA;UAAA,OACb/K,GAAA,CAAA2S,mBAAA,CAAA5H,MAAA,CAA2B;QAAA,EAAC,iCAAAoT,sFAAApT,MAAA;UAAA,OACvB/K,GAAA,CAAAuI,mBAAA,CAAAwC,MAAA,CAA2B;QAAA,EAAC,sBAAAqT,2EAAArT,MAAA;UAAA,OACvC/K,GAAA,CAAAwS,UAAA,CAAAzH,MAAA,CAAkB;QAAA,EAAC;QACxDrM,2DAAA,EAA0B;;;QALDA,yDAHA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACApB;AAIyH;AAezG;AAC2B;AACG;AACT;AA2BkC;;;;;;;;;;;;;;AA2C7F,MAAO+I,4BAA6B,SAAQ1I,6FAAmB;EAsDnEpT,YACYsT,4BAA0D,EAC1D7E,MAAc,EACdD,KAAqB,EACrBuN,gBAAqC,EACrCxI,YAA0B,EAC1BnT,WAAwB,EACxBoT,WAAwB,EACxB7E,aAA4B,EAC5BD,cAA8B,EAC9BzO,cAA8B,EAC9BwT,eAAgC,EAChCJ,mBAAwC,EACxCxE,iBAAoC,EACpCmN,sBAA8C,EAC9CC,wBAAkD,EAClDjN,kBAAsC;IAEhD,KAAK,CAACL,aAAa,EAAE1O,cAAc,EAAEoT,mBAAmB,EAAExE,iBAAiB,EAAEyE,4BAA4B,EAAE7E,MAAM,CAAC;IAjBxG,KAAA6E,4BAA4B,GAA5BA,4BAA4B;IAC5B,KAAA7E,MAAM,GAANA,MAAM;IACN,KAAAD,KAAK,GAALA,KAAK;IACL,KAAAuN,gBAAgB,GAAhBA,gBAAgB;IAChB,KAAAxI,YAAY,GAAZA,YAAY;IACZ,KAAAnT,WAAW,GAAXA,WAAW;IACX,KAAAoT,WAAW,GAAXA,WAAW;IACX,KAAA7E,aAAa,GAAbA,aAAa;IACb,KAAAD,cAAc,GAAdA,cAAc;IACd,KAAAzO,cAAc,GAAdA,cAAc;IACd,KAAAwT,eAAe,GAAfA,eAAe;IACf,KAAAJ,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAAxE,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAmN,sBAAsB,GAAtBA,sBAAsB;IACtB,KAAAC,wBAAwB,GAAxBA,wBAAwB;IACxB,KAAAjN,kBAAkB,GAAlBA,kBAAkB;IAjE9B,KAAAG,UAAU,GAAWb,qEAAS,CAAC1Q,IAAI;IACnC,KAAAmV,SAAS,GAAWI,oEAAQ,CAACO,MAAM;IACnC,KAAAzE,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAWrF,KAAAqX,eAAe,GAAgB,IAAIC,GAAG,EAAU;IAKhD,KAAAC,uCAAuC,GAAgD;MAC7FC,yBAAyB,EAAE,IAAIF,GAAG,EAAU;MAC5CG,iCAAiC,EAAE,IAAIH,GAAG;KAC3C;IACO,KAAAI,oCAAoC,GAAgD,IAAIC,GAAG,EAA0C;IAIrI,KAAAjoB,YAAY,GAAqB;MAAEkoB,eAAe,EAAE,IAAI;MAAEC,oBAAoB,EAAE,IAAI;MAAEC,cAAc,EAAE;IAAI,CAAE;IAe5G,KAAAC,6BAA6B,GAAG;MACtCC,YAAY,EAAE,uBAAuB;MACrCC,qBAAqB,EAAE,gCAAgC;MACvDC,2BAA2B,EAAE,sCAAsC;MACnEC,uBAAuB,EAAE,kCAAkC;MAC3DC,qBAAqB,EAAE;KACxB;IAsBC,IAAI,CAAC7K,eAAe,GAAG,IAAI,CAAChO,MAAM,CAAC8Y,oBAAoB,EAAE,EAAE7Z,MAAM,EAAE8Z,KAAK;IAExE,IAAI,CAACC,oBAAoB,GAAG;MAC1B,CAAC,IAAI,CAACR,6BAA6B,CAACC,YAAY,GAAG,IAAIZ,sFAAY,EAAE;MACrE,CAAC,IAAI,CAACW,6BAA6B,CAACE,qBAAqB,GAAG,IAAIb,sFAAY,EAAE;MAC9E,CAAC,IAAI,CAACW,6BAA6B,CAACG,2BAA2B,GAAG,IAAId,sFAAY,EAAE;MACpF,CAAC,IAAI,CAACW,6BAA6B,CAACI,uBAAuB,GAAG,IAAIf,sFAAY,EAAE;MAChF,CAAC,IAAI,CAACW,6BAA6B,CAACK,qBAAqB,GAAG,IAAIhB,sFAAY;KAC7E;EACH;EAEA3lB,QAAQA,CAAA;IAEN,IAAI,CAAC+mB,8BAA8B,GAAG,IAAI,CAACxL,QAAQ,CAACE,kBAAkB,GAClEvc,4EAAY,CAAC4C,eAAe,CAACklB,+BAA+B,GAC5D9nB,4EAAY,CAAC4C,eAAe,CAACmlB,sBAAsB;IAEvD,IAAI,CAACC,YAAY,GAAG,IAAI,CAAC3L,QAAQ,CAACE,kBAAkB,GAChDvc,4EAAY,CAAC4C,eAAe,CAACqlB,aAAa,GAC1CjoB,4EAAY,CAAC4C,eAAe,CAACsS,IAAI;IAErC,IAAI,CAAC,IAAI,CAACmH,QAAQ,CAACE,kBAAkB,EAAE;MACrC,IAAI,CAACpN,kBAAkB,CAACW,+BAA+B,EAAE;;IAG3D,IAAI,CAACnB,KAAK,CAACoB,QAAQ,CAAC/O,SAAS,CAAE+O,QAAkB,IAAI;MACnD,MAAMmY,cAAc,GAAG,IAAI,CAAC7L,QAAQ,CAACM,iBAAiB,CAAC5M,QAAQ,EAAE,IAAI,CAAC6M,eAAe,CAAC;MACtF,MAAMuL,aAAa,GAAG,IAAI,CAAC9L,QAAQ,CAACS,gBAAgB,CAAC/M,QAAQ,EAAE,IAAI,CAAC6M,eAAe,CAAC;MACpF,MAAMwL,eAAe,GAAG,IAAI,CAAC/L,QAAQ,CAACU,kBAAkB,CAAChN,QAAQ,EAAE,IAAI,CAAC6M,eAAe,CAAC;MAExF,MAAMO,WAAW,GAAG,IAAI,CAACd,QAAQ,CAACW,cAAc,CAACjN,QAAQ,EAAE,IAAI,CAAC6M,eAAe,CAAC;MAChF,MAAMQ,UAAU,GAAG,IAAI,CAACf,QAAQ,CAACY,aAAa,CAAClN,QAAQ,EAAE,IAAI,CAAC6M,eAAe,CAAC;MAE9E,IAAI,CAACC,OAAO,GAAGqL,cAAc;MAC7B,IAAI,CAAC/K,WAAW,GAAGA,WAAW;MAC9B,IAAI,CAACC,UAAU,GAAGA,UAAU;MAE5B,IAAID,WAAW,EAAE;QACf;QACA,IAAI,CAACkL,wBAAwB,EAAE;QAC/B,IAAI,CAACpY,mBAAmB,GAAG,IAAI,CAACoM,QAAQ,CAACG,oBAAoB;QAC7D,IAAI,CAAC3M,EAAE,GAAGqY,cAAc;OACzB,MACI,IAAI9K,UAAU,EAAE;QACnB;QACA,IAAI,CAACkL,0BAA0B,EAAE;QACjC,IAAI,CAACrY,mBAAmB,GAAG,IAAI,CAACoM,QAAQ,CAACI,mBAAmB;QAC5D,IAAI,CAAC5M,EAAE,GAAGsY,aAAa;OACxB,MACI;QACH;QACA,IAAI,CAACG,0BAA0B,EAAE;QACjC,IAAI,CAACrY,mBAAmB,GAAG,IAAI,CAACoM,QAAQ,CAACK,qBAAqB;QAC9D,IAAI,CAAC7M,EAAE,GAAGuY,eAAe;;IAE7B,CAAC,CAAC;IAEF,MAAMG,yBAAyB,GAAIrU,YAAoB,IACrD,IAAI,CAACN,eAAe,CAAC4U,iCAAiC,CAAC,IAAI,CAACpU,QAAQ,CAACC,KAAK,EAAEH,YAAY,CAAC;IAE3F,MAAMuU,oBAAoB,GAAIvU,YAAoB,IAChD,IAAI,CAAC0S,uCAAuC,CAACC,yBAAyB,CAAC6B,GAAG,CAAC,IAAI,CAACC,uBAAuB,CAACzU,YAAY,CAAC,CAAC;IACxH,MAAM0U,4BAA4B,GAAI1U,YAAoB,IACxD,IAAI,CAAC0S,uCAAuC,CAACE,iCAAiC,CAAC4B,GAAG,CAAC,IAAI,CAACC,uBAAuB,CAACzU,YAAY,CAAC,CAAC;IAEhI,IAAI,CAAC3T,WAAW,CAACyD,kBAAkB,CAAC,wBAAwB,CAAC,GAAG,MAAM,IAAI,CAAC6kB,8BAA8B;IACzG,IAAI,CAACtoB,WAAW,CAACyD,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,MAAM,IAAI,CAACqY,QAAQ,CAACa,kBAAkB,CAAC,IAAI,CAACC,WAAW,EAAE,IAAI,CAACC,UAAU,CAAC;IAClI,IAAI,CAAC7c,WAAW,CAACyD,kBAAkB,CAAC,uBAAuB,CAAC,GAAG,MAAM,IAAI;IACzE,IAAI,CAACzD,WAAW,CAACyD,kBAAkB,CAAC,uBAAuB,CAAC,GAAG,MAAM,IAAI,CAAC8kB,cAAc;IACxF,IAAI,CAACvoB,WAAW,CAACyD,kBAAkB,CAAC,0BAA0B,CAAC,GAAG,MAAM,IAAI;IAC5E,IAAI,CAACzD,WAAW,CAACyD,kBAAkB,CAAC,wBAAwB,CAAC,GAAG,MAAM,IAAI;IAC1E,IAAI,CAACzD,WAAW,CAACyD,kBAAkB,CAAC,WAAW,CAAC,GAAG,MAAM,IAAI,CAACoZ,UAAU;IACxE,IAAI,CAAC7c,WAAW,CAACyD,kBAAkB,CAAC,2BAA2B,CAAC,GAAG,CAACiQ,SAAiB,EAAEC,YAAoB,KAAKqU,yBAAyB,CAACrU,YAAY,CAAC;IACvJ,IAAI,CAAC3T,WAAW,CAACyD,kBAAkB,CAAC,sBAAsB,CAAC,GAAI+kB,IAAc,IAAKN,oBAAoB,CAAC5D,QAAQ,CAACkE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzH,IAAI,CAACxoB,WAAW,CAACyD,kBAAkB,CAAC,8BAA8B,CAAC,GAAI+kB,IAAc,IAAKH,4BAA4B,CAAC/D,QAAQ,CAACkE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzI,IAAI,CAACxoB,WAAW,CAACyD,kBAAkB,CAAC,uBAAuB,CAAC,GAAI+kB,IAAc,IAAK,IAAI,CAACC,sBAAsB,CAACD,IAAI,CAAC,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhI,IAAI,CAACxoB,WAAW,CAACwD,oBAAoB,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,CAACwQ,cAAc;IAC5E,IAAI,CAAChU,WAAW,CAACwD,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAACmM,MAAM,CAAC,IAAI,CAAC;IAEzE,IAAI,CAAC0D,eAAe,CAACqV,yBAAyB,CAC5C,MAAM,IAAI,CAAC7U,QAAQ,CAACK,MAAM,EAC1B,MAAM,IAAI,CAACF,cAAc,EACzB,MAAM,IAAI,CAAC6I,UAAU,EACpB1I,OAAgB,IAAK,IAAI,CAACwU,wBAAwB,GAAGxU,OAAO,EAC7D,MAAM,IAAI,CAACwU,wBAAwB,EACnC,MAAM,IAAI,CAACC,4BAA4B,EACvC,MAAM,IAAI,CAACC,kBAAkB,EAAE,EAC/B,MAAM,IAAI,CAACC,kBAAkB,EAAE,CAAC;IAElC,IAAI,CAACzV,eAAe,CAAC0V,qCAAqC,CACxD,MAAM,IAAI,CAACC,4BAA4B,CAAC,IAAI,CAACnC,6BAA6B,CAACC,YAAY,CAAC,EACxF,MAAM,IAAI,CAACkC,4BAA4B,CAAC,IAAI,CAACnC,6BAA6B,CAACG,2BAA2B,CAAC,EACvG,MAAM,IAAI,CAACgC,4BAA4B,CAAC,IAAI,CAACnC,6BAA6B,CAACE,qBAAqB,CAAC,EACjG,MAAM,IAAI,CAACiC,4BAA4B,CAAC,IAAI,CAACnC,6BAA6B,CAACI,uBAAuB,CAAC,EACnG,MAAM,IAAI,CAAC+B,4BAA4B,CAAC,IAAI,CAACnC,6BAA6B,CAACK,qBAAqB,CAAC,CAAC;IAEpG,MAAM+B,iBAAiB,GAAItV,YAAqB,IAC9C,CAACqU,yBAAyB,CAACrU,YAAY,CAAC;IAC1C,MAAMuV,0BAA0B,GAAIvV,YAAqB,IACvD,IAAI,CAACmI,QAAQ,CAACC,QAAQ,IAAIiM,yBAAyB,CAACrU,YAAY,CAAC;IAEnE,IAAI,CAACN,eAAe,CAAC8V,iCAAiC,CACpD,MAAM,IAAI,CAACnV,cAAc,EACxBL,YAAoB,IAAKsV,iBAAiB,CAACtV,YAAY,CAAC,EACxDA,YAAoB,IAAKuV,0BAA0B,CAACvV,YAAY,CAAC,EACjEA,YAAoB,IAAK,IAAI,CAACyV,iBAAiB,CAACzV,YAAY,CAAC,EAC9D,CAACA,YAAoB,EAAE4R,UAAqC,KAAK,IAAI,CAAC8D,uBAAuB,CAAC1V,YAAY,EAAE4R,UAAU,CAAC,CAAC;IAE1H,IAAI,CAAC3gB,gCAAgC,GAAG,IAAI,CAAC/E,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACkF,gCAAgC,CAAC;EACtH;EAEA0P,UAAUA,CAACzE,KAAU;IAEnB,IAAI,IAAI,CAACiM,QAAQ,CAACE,kBAAkB,EAAE;MACpC,MAAMwC,gBAAgB,GAAG,IAAI,CAAC3e,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAAC+E,sBAAsB,CAAC;MAC3F,IAAI,CAACkX,gBAAgB,CAAC8C,IAAI,CAACD,gBAAgB,CAAC,CAACE,IAAI,CAACC,MAAM,IAAG;QACzDC,OAAO,CAACC,GAAG,CAAC,0BAA0B,GAAGF,MAAM,CAAC;MAClD,CAAC,CAAC;;IAGJ,IAAI,CAAC3K,cAAc,GAAG,CAAC,CAACnE,KAAK,EAAEmE,cAAc;IAC7C,IAAI,CAAC,IAAI,CAACA,cAAc,EAAE;MACxB;MACA,IAAI,CAAC2U,wBAAwB,GAAG,KAAK;MAErC;MACA,IAAI,CAACK,4BAA4B,CAAC,IAAI,CAACnC,6BAA6B,CAACC,YAAY,CAAC;MAClF,IAAI,CAACkC,4BAA4B,CAAC,IAAI,CAACnC,6BAA6B,CAACG,2BAA2B,CAAC;MACjG,IAAI,CAACgC,4BAA4B,CAAC,IAAI,CAACnC,6BAA6B,CAACE,qBAAqB,CAAC;MAC3F,IAAI,CAACiC,4BAA4B,CAAC,IAAI,CAACnC,6BAA6B,CAACI,uBAAuB,CAAC;MAC7F,IAAI,CAAC+B,4BAA4B,CAAC,IAAI,CAACnC,6BAA6B,CAACK,qBAAqB,CAAC;KAC5F,MACI,IAAI,IAAI,CAACtK,WAAW,EAAE;MACzB;MACA,IAAI,CAAC+L,wBAAwB,GAAG,KAAK;KACtC,MACI;MACH,IAAI,CAACA,wBAAwB,GAAG,IAAI;;IAGtC,IAAI,CAAC7Y,2CAA2C,CAAC9B,0FAA+B,CAACoP,QAAQ,CAAC;IAE1F,IAAI,CAAC+I,eAAe,GAAG,IAAIC,GAAG,CAASvW,KAAK,CAACsW,eAAe,IAAI,EAAE,CAAC;IACnE,IAAI,CAACmD,KAAK,GAAG,IAAI,CAACC,iBAAiB,EAAE;IACrC,IAAI,CAAChB,cAAc,GAAG,IAAI,CAACiB,eAAe,CAAC,IAAI,CAACF,KAAK,CAAC;IAEtD,IAAI,CAACjD,uCAAuC,GAAG;MAC7CC,yBAAyB,EAAE,IAAIF,GAAG,CAASvW,KAAK,CAACwW,uCAAuC,EAAEC,yBAAyB,IAAI,EAAE,CAAC;MAC1HC,iCAAiC,EAAE,IAAIH,GAAG,CAASvW,KAAK,CAACwW,uCAAuC,EAAEE,iCAAiC,IAAI,EAAE;KAC1I;IACD,IAAI,CAACC,oCAAoC,GAAG,IAAIC,GAAG,CAAyCgD,MAAM,CAACC,OAAO,CAAC7Z,KAAK,CAAC2W,oCAAoC,IAAI,EAAE,CAAC,CAAC;IAC7J,IAAI,CAACoC,4BAA4B,GAAG/Y,KAAK,CAAC+Y,4BAA4B;IAEtE,IAAI,CAACN,8BAA8B,GAAGzY,KAAK,CAACyY,8BAA8B;IAC1E,IAAI,CAAC9pB,YAAY,GAAG,IAAI,CAACod,sBAAsB,CAAC+N,mBAAmB,CAAC,IAAI,CAAC9V,QAAQ,CAACC,KAAK,CAAC;IAExF,IAAI,CAAC6L,iBAAiB,GAAG,IAAI,CAAC7D,QAAQ,CAACgB,oBAAoB,CAACjN,KAAK,EAAE,IAAI,CAACwM,eAAe,EAAE,IAAI,CAACO,WAAW,EAAE,IAAI,CAACC,UAAU,CAAC;IAC3H,IAAI,CAACG,6BAA6B,GAAG,IAAI,CAAClB,QAAQ,CAACiB,gCAAgC,CAAClN,KAAK,EAAE,IAAI,CAACwM,eAAe,EAAE,IAAI,CAACO,WAAW,EAAE,IAAI,CAACC,UAAU,CAAC;IAEnJhN,KAAK,CAACsU,SAAS,GAAGtU,KAAK,CAACsU,SAAS,GAAGtU,KAAK,CAACsU,SAAS,GAAG,IAAI,CAAC9H,eAAe,EAAE8H,SAAS;IACrF,MAAMyF,aAAa,GAAGA,CAACzF,SAAiB,EAAE0F,YAA0B,KAAI;MACtE,QAAQ1F,SAAS;QACf,KAAKvR,qEAAU,CAACwK,QAAQ,CAAC0M,wBAAwB;UAAE;YACjD,IAAI,CAACC,+BAA+B,EAAE;YACtC;;;IAGN,CAAC;IACD,IAAI,CAACvV,yBAAyB,CAAC3E,KAAK,EAAE+Z,aAAa,CAAC;IAEpD,IAAI,CAACvV,gBAAgB,EAAE;EACzB;EAEAI,YAAYA,CAAC5E,KAAU;IACrB,IAAI,CAAC6E,2BAA2B,EAAE;IAClC,IAAI,CAACsV,wBAAwB,EAAE;IAC/B,IAAI,CAACC,6BAA6B,EAAE;IACpC,IAAI,CAACC,gDAAgD,EAAE;EACzD;EAEAvV,IAAIA,CAAC9E,KAAU;IACb,IAAI,IAAI,CAACsa,oBAAoB,EAAE,EAAE;MAC/B,IAAI,CAACC,mCAAmC,EAAE;MAC1C;;IAEF,MAAMxV,eAAe,GAAoB;MACvCtN,QAAQ,EAAE,IAAI,CAACyH,UAAU;MACzB8F,aAAa,EAAE,IAAI,CAAClC,SAAS;MAC7BrD,EAAE,EAAE,IAAI,CAACqQ,iBAAiB;MAC1B7Z,QAAQ,EAAE+J,KAAK,CAACiE,KAAK;MACrBgB,sBAAsB,EAAEjF,KAAK,CAACkF,eAAe;MAC7CC,QAAQ,EAAE,KAAK;MACf4R,cAAc,EAAE,IAAI,CAACpoB,YAAY,CAACooB,cAAc;MAChD7K,QAAQ,EAAE,IAAI,CAACD,QAAQ,CAACC,QAAQ;MAChCkD,cAAc,EAAE,IAAI;MACpBjC,6BAA6B,EAAE,IAAI,CAACA;KACrC;IACD,IAAI,CAACnN,KAAK,CAACoF,WAAW,EAAE;MACtB,IAAI,CAACpB,QAAQ,CAACqB,sBAAsB,EAAE;MACtC,IAAI,CAAC,IAAI,CAACrB,QAAQ,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEiB,WAAW,CAACC,KAAK,EAAE;QAC/C,IAAI,CAACvB,QAAQ,CAACwB,qBAAqB,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC9G,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC2C,MAAM,CAACC,eAAe,CAAC;OACjE,MACI;QACH,IAAI,CAACC,QAAQ,CAACb,eAAe,CAAC;;KAEjC,MACI;MACH,IAAI,CAACa,QAAQ,CAACb,eAAe,CAAC;;EAElC;EAEAjF,MAAMA,CAACE,KAAU;IACf,IAAI,CAACiM,QAAQ,CAACmB,gBAAgB,EAAE;EAClC;EAEA1G,eAAeA,CAAC1G,KAAU;IAExB,MAAMsG,YAAY,GAAG,IAAI,CAACA,YAAY;IACtC,OAAO,IAAI,CAACA,YAAY;IAExB,QAAQA,YAAY;MAClB,KAAKvD,qEAAU,CAACwK,QAAQ,CAACiN,uBAAuB;MAChD,KAAKzX,qEAAU,CAACwK,QAAQ,CAACkN,6BAA6B;QAAE;UACtD,IAAI,CAACP,+BAA+B,EAAE;UACtC;;MAEF,KAAK,IAAI,CAACjO,QAAQ,CAACqB,mBAAmB;QAAE;UACtC,IAAI,CAACrB,QAAQ,CAACoB,iBAAiB,EAAE;UACjC;;MAEF,KAAKtK,qEAAU,CAACwK,QAAQ,CAACmN,6BAA6B;QAAE;UACtD,IAAI,CAACC,iBAAiB,CAAC3a,KAAK,EAAE8D,YAAY,EAAE9D,KAAK,EAAE0V,UAAU,EAAE1V,KAAK,EAAE4a,sBAAsB,CAAC;UAC7F;;;EAGN;EAEAza,mBAAmBA,CAACH,KAAU;IAC5B,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAACqP,QAAQ,CAACsN,eAAe;QAAE;UAC3C,QAAQ7a,KAAK,CAACA,KAAK,CAACO,IAAI;YACtB,KAAKxC,sEAAW,CAACwP,QAAQ,CAAC8F,OAAO;cAAE;gBACjC,MAAMxN,OAAO,GAAG7F,KAAK,CAACA,KAAK,CAACW,IAAI;gBAChC,MAAM2S,gBAAgB,GAAG;kBAAEC,iBAAiB,EAAE1N,OAAO,CAAC0N,iBAAiB;kBAAE9T,EAAE,EAAEoG,OAAO,CAACpG;gBAAE,CAAE;gBACzF,IAAI,CAACgU,sBAAsB,CAACH,gBAAgB,CAAC;gBAC7C;;YAEF,KAAKvV,sEAAW,CAACwP,QAAQ,CAACuN,QAAQ;cAAE;gBAClC,MAAMjV,OAAO,GAAG7F,KAAK,CAACA,KAAK,CAACW,IAAI;gBAChC,MAAM2S,gBAAgB,GAAG;kBAAEC,iBAAiB,EAAE1N,OAAO,CAAC0N,iBAAiB;kBAAE9T,EAAE,EAAEoG,OAAO,CAACpG;gBAAE,CAAE;gBACzF,IAAI,CAACsb,mBAAmB,CAACzH,gBAAgB,CAAC;gBAC1C;;;UAGJ;;;EAGN;EAEQ1N,QAAQA,CAACC,OAAwB;IAEvC,MAAMmV,gBAAgB,GAAInV,OAAwB,IAAI;MACpD,IAAI,CAACpH,cAAc,CAACqH,WAAW,EAAE;MACjC,IAAI,CAACvC,WAAW,CAACqC,QAAQ,CAAC,IAAI,CAACgS,YAAY,EAAE/R,OAAO,CAAC,CAClD7P,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,CAAC,IAAI,CAACkG,QAAQ,CAACwB,iBAAiB,CAAC,CAAC,CAC9E7c,SAAS,CAAE+P,IAAoB,IAAI;QAClC,IAAI,CAAClC,cAAc,CAACuH,WAAW,EAAE;QACjC,IAAI,IAAI,CAACC,cAAc,CAACJ,OAAO,EAAElF,IAAI,EAAEuF,CAAC,IAAI,IAAI,CAACN,QAAQ,CAACM,CAAC,CAAC,CAAC,EAAE;UAC7D;;QAEF,IAAIjD,gFAAqB,CAACgY,QAAQ,CAAC7U,QAAQ,CAACzF,IAAI,CAAC0F,OAAO,CAAC,EAAE;UACzD,IAAI,CAACC,YAAY,GAAG3F,IAAI,CAAC0F,OAAO;SACjC,MACI;UACH,IAAI,CAACC,YAAY,GAAG,IAAI,CAAC2F,QAAQ,CAACqB,mBAAmB;;QAEvD,IAAI,CAAClK,mBAAmB,CAACqC,UAAU,CAAC,IAAI,CAACa,YAAY,EAAE,IAAI,EAAE3F,IAAI,CAAC6F,OAAO,CAAC;MAC5E,CAAC,CAAC;IACN,CAAC;IAED,IAAI,IAAI,CAACyF,QAAQ,CAACE,kBAAkB,EAAE;MACpC,IAAI,CAACL,gBAAgB,CAACoD,QAAQ,EAAE,CAACL,IAAI,CACnCM,KAAK,IAAG;QACNtJ,OAAO,CAACuJ,cAAc,GAAGD,KAAK;QAC9B6L,gBAAgB,CAACnV,OAAO,CAAC;MAC3B,CAAC,EACDwJ,KAAK,IAAIN,OAAO,CAACC,GAAG,CAAC,oCAAoC,GAAGK,KAAK,CAAC,CAAC;KACtE,MACI;MACH2L,gBAAgB,CAACnV,OAAO,CAAC;;EAE7B;EAEQqU,+BAA+BA,CAAA;IACrC,MAAMgB,gCAAgC,GAAG,IAAI,CAAC1X,eAAe,CAAC2X,+BAA+B,CAC3F,IAAI,CAACnX,QAAQ,CAACK,MAAM,EACpB,CAACrG,wEAAa,CAACuP,QAAQ,CAAC6N,iBAAiB,EAAEnd,sEAAW,CAACsP,QAAQ,CAAC6N,iBAAiB,EAAEpY,uEAAY,CAACuK,QAAQ,CAAC8N,cAAc,CAAC,EACxHnF,2DAAmB,CAACoF,cAAc,CAAC;IACrC,IAAIJ,gCAAgC,EAAE;MACpC,IAAI,CAACtc,iBAAiB,CAAC2c,yBAAyB,CAACL,gCAAgC,EAAE,IAAI,CAAC;;EAE5F;EAEQzH,sBAAsBA,CAACH,gBAAsC;IACnE,IAAI,CAACtjB,cAAc,CAAC8F,IAAI,CAAC,IAAI,CAACmW,QAAQ,CAACyB,8BAA8B,EAAE4F,gBAAgB,CAAC,CACrFtd,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAEqF,QAAuC,IAAI;MACrD,IAAI,CAACyI,aAAa,CAACyV,eAAe,CAAC,IAAI,CAACnI,wBAAwB,CAACoI,4BAA4B,CAACne,QAAQ,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC;IACtI,CAAC,CAAC;EACN;EAEQ8kB,mBAAmBA,CAACzH,gBAAsC;IAChE,IAAI,CAAC5U,aAAa,CACf8c,WAAW,CAACzY,qEAAU,CAACwK,QAAQ,CAACkO,+BAA+B,CAAC,CAChEzlB,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC+P,IAAI,IAAG;MAChB,QAAQA,IAAoB;QAC1B,KAAKsV,oDAAY,CAACyF,QAAQ;UAAE;YAC1B,IAAI,CAAC1rB,cAAc,CAAC8F,IAAI,CAAC,IAAI,CAACmW,QAAQ,CAAC0B,2BAA2B,EAAE2F,gBAAgB,CAAC,CAClFtd,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAEqF,QAAqC,IAAI;cACnD,IAAI,CAAC8V,sBAAsB,CAAC4P,sBAAsB,CAAC,IAAI,CAAC3X,QAAQ,CAACC,KAAK,EAAEhO,QAAQ,CAAC2lB,oBAAoB,CAAC;cACtG,IAAI,CAACC,WAAW,EAAE;YACpB,CAAC,CAAC;YACJ;;QAEF,KAAK5F,oDAAY,CAAC6F,QAAQ;UAAE;YAC1B;;;IAGN,CAAC,CAAC;EACN;EAEQvD,uBAAuBA,CAACzU,YAAoB;IAClD,MAAMiY,oBAAoB,GAAG,IAAI,CAAChQ,sBAAsB,CAACwM,uBAAuB,CAAC,IAAI,CAACvU,QAAQ,CAACC,KAAK,EAAEH,YAAY,CAAC;IACnH,OAAOiY,oBAAoB;EAC7B;EAEQC,iCAAiCA,CAAClY,YAAoB;IAC5D,MAAMiY,oBAAoB,GAAG,IAAI,CAACxD,uBAAuB,CAACzU,YAAY,CAAC;IACvE,MAAMmY,8BAA8B,GAAG,IAAI,CAACtF,oCAAoC,CAAC/W,GAAG,CAACmc,oBAAoB,CAAC;IAC1G,OAAOE,8BAA8B;EACvC;EAEQzC,uBAAuBA,CAAC1V,YAAoB,EAAE4R,UAAqC;IACzF,MAAMf,UAAU,GAAG;MAAE7Q,YAAY;MAAE4R;IAAU,CAAE;IAC/C,IAAI,CAACpP,YAAY,GAAGvD,qEAAU,CAACwK,QAAQ,CAACmN,6BAA6B;IACrE,IAAI,CAAChc,aAAa,CAAC+G,UAAU,CAAC,IAAI,CAACa,YAAY,EAAEqO,UAAU,CAAC;EAC9D;EAEQgG,iBAAiBA,CAAC7W,YAAoB,EAAE4R,UAAqC,EAAEkF,sBAA8B;IACnH,IAAI,CAAC7O,sBAAsB,CAACmQ,6BAA6B,CAAC,IAAI,CAAClY,QAAQ,CAACC,KAAK,EAAEH,YAAY,EAAE8W,sBAAsB,CAAC;IACpHlF,UAAU,CAAC,KAAK,CAAC;EACnB;EAEQ6D,iBAAiBA,CAACzV,YAAoB;IAC5C,MAAMxP,cAAc,GAAG,IAAI,CAAC0nB,iCAAiC,CAAClY,YAAY,CAAC,EAAExP,cAAc;IAC3F,IAAI,CAACA,cAAc,EAAE;MACnB;;IAEF,IAAI,CAAC6nB,uBAAuB,CAAC7nB,cAAc,CAAC;EAC9C;EAEQ0kB,kBAAkBA,CAAA;IACxB,IAAI,CAACmD,uBAAuB,CAAC,IAAI,CAACpnB,gCAAgC,CAAC;EACrE;EAEQkkB,kBAAkBA,CAAA;IACxB,IAAI,CAACzX,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAACwC,sBAAsB,CAACC,SAAS,CAAC,CAAC;EACvE;EAEQuW,2BAA2BA,CAAA;IACjC,IAAI,CAACkH,sBAAsB,CAAC7E,mCAAmC,CAC7D,MAAM,IAAI,CAAClD,QAAQ,CAACC,KAAK,EACzBA,KAAK,IAAI,IAAI,CAACD,QAAQ,CAACC,KAAK,GAAGA,KAAK,CAAC;EACzC;EAEQkW,wBAAwBA,CAAA;IAC9B,MAAMlW,KAAK,GAAG,IAAI,CAACD,QAAQ,CAACC,KAAK;IACjC,MAAMiB,eAAe,GAAG,IAAI,CAAClB,QAAQ,CAACkB,eAAe;IACrD,MAAMvW,YAAY,GAAG,IAAI,CAACod,sBAAsB,CAAC+N,mBAAmB,CAAC7V,KAAK,CAAC;IAC3E,IAAItV,YAAY,CAACkoB,eAAe,KAAKV,yEAAc,CAAC5I,QAAQ,CAAC6O,KAAK,CAACC,GAAG,IAAI,CAAC1tB,YAAY,CAACmoB,oBAAoB,EAAE;MAC5G;;IAEF,IAAInoB,YAAY,CAACooB,cAAc,KAAK,IAAI,CAACpoB,YAAY,CAACooB,cAAc,EAAE;MAEpE,MAAMuF,oBAAoB,GAAG,IAAI,CAAC3tB,YAAY;MAC9C,IAAI,CAACA,YAAY,GAAGA,YAAY;MAEhC,MAAM4tB,0BAA0B,GAAIpN,KAAa,IAAI;QACnD,MAAMqN,6BAA6B,GAAkC;UACnE/kB,QAAQ,EAAE,IAAI,CAACyH,UAAU;UACzB8F,aAAa,EAAE,IAAI,CAAClC,SAAS;UAC7BrD,EAAE,EAAE,IAAI,CAACqQ,iBAAiB;UAC1B7Z,QAAQ,EAAEwmB,IAAI,CAACC,SAAS,CAACzY,KAAK,CAAC;UAC/BgB,sBAAsB,EAAEC,eAAe;UACvCC,QAAQ,EAAE,KAAK;UACf4R,cAAc,EAAEpoB,YAAY,CAACooB,cAAc;UAC3C7K,QAAQ,EAAE,IAAI,CAACD,QAAQ,CAACC,QAAQ;UAChCkD,cAAc,EAAED,KAAK;UACrBhC,6BAA6B,EAAE,IAAI,CAACA,6BAA6B;UACjEV,OAAO,EAAE,IAAI,CAACA,OAAO;UACrB6P,oBAAoB,EAAEA;SACvB;QACD,IAAI,CAAC/Y,WAAW,CAACqC,QAAQ,CAAC,IAAI,CAAC6R,8BAA8B,EAAE+E,6BAA6B,CAAC,CAC1FxmB,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAE+P,IAAoC,IAAI;UAClD,MAAMgc,kBAAkB,GAAoB;YAC1ClQ,OAAO,EAAE9L,IAAI,CAAC8L,OAAO;YACrBqD,iBAAiB,EAAE,IAAI,CAACA,iBAAiB;YACzC3C,6BAA6B,EAAE,IAAI,CAACA,6BAA6B;YACjEmH,SAAS,EAAE3T,IAAI,CAAC2T;WACjB;UACD,IAAI,CAACsI,UAAU,CAAC,IAAI,EAAE;YAAErF,KAAK,EAAEoF;UAAkB,CAAE,CAAC;QACtD,CAAC,CAAC;MACN,CAAC;MAED,IAAI,IAAI,CAAC1Q,QAAQ,CAACE,kBAAkB,EAAE;QACpC,IAAI,CAACL,gBAAgB,CAACoD,QAAQ,EAAE,CAACL,IAAI,CACnCM,KAAK,IAAIoN,0BAA0B,CAACpN,KAAK,CAAC,EAC1CE,KAAK,IAAIN,OAAO,CAACC,GAAG,CAAC,oCAAoC,GAAGK,KAAK,CAAC,CAAC;OACtE,MACI;QACHkN,0BAA0B,CAAC,IAAI,CAAC;;;EAGtC;EAEQnC,6BAA6BA,CAAA;IACnCyC,YAAY,CAAC,IAAI,CAACC,gCAAgC,CAAC;IACnD,IAAI,CAACA,gCAAgC,GAAGC,UAAU,CAAC,MAAM,IAAI,CAACC,iBAAiB,EAAE,EAAE5G,mFAAwB,CAAC;EAC9G;EAEQiE,gDAAgDA,CAAA;IACtD,MAAM4C,iBAAiB,GAAG,IAAI,CAAClR,sBAAsB,CAACmR,oBAAoB,CAAC,IAAI,CAAClZ,QAAQ,CAACC,KAAK,CAAC;IAE/F,IAAI,CAACgZ,iBAAiB,EAAE;MACtB;;IAGF,IAAIA,iBAAiB,CAAC/e,wEAAa,CAACqP,QAAQ,CAAC4P,eAAe,CAAC,KAAK,IAAI,CAACC,sBAAsB,EAAE;MAC7F,IAAI,CAACA,sBAAsB,GAAGH,iBAAiB,CAAC/e,wEAAa,CAACqP,QAAQ,CAAC4P,eAAe,CAAC;MACvF,IAAI,CAACE,8BAA8B,CAACJ,iBAAiB,EAAE/e,wEAAa,CAACqP,QAAQ,CAAC+P,OAAO,EAAEL,iBAAiB,CAAC/e,wEAAa,CAACqP,QAAQ,CAAC4P,eAAe,CAAC,CAAC;MACjJ;MACA;MACA,MAAMI,kBAAkB,GAAG,GAAG;MAC9BR,UAAU,CAAC,MAAM,IAAI,CAACM,8BAA8B,CAACJ,iBAAiB,EAAE/e,wEAAa,CAACqP,QAAQ,CAACiQ,QAAQ,EAAEP,iBAAiB,CAAC/e,wEAAa,CAACqP,QAAQ,CAAC+P,OAAO,CAAC,CAAC,EAAEC,kBAAkB,CAAC;KACjL,MACI,IAAIN,iBAAiB,CAAC/e,wEAAa,CAACqP,QAAQ,CAAC+P,OAAO,CAAC,KAAK,IAAI,CAACG,sBAAsB,EAAE;MAC1F,IAAI,CAACA,sBAAsB,GAAGR,iBAAiB,CAAC/e,wEAAa,CAACqP,QAAQ,CAAC+P,OAAO,CAAC;MAC/E,IAAI,CAACD,8BAA8B,CAACJ,iBAAiB,EAAE/e,wEAAa,CAACqP,QAAQ,CAACiQ,QAAQ,EAAEP,iBAAiB,CAAC/e,wEAAa,CAACqP,QAAQ,CAAC+P,OAAO,CAAC,CAAC;;EAE9I;EAEQD,8BAA8BA,CAACJ,iBAAsB,EAAES,YAAoB,EAAEC,WAAmB;IACtG,IAAI,CAACV,iBAAiB,EAAE;MACtB;;IAGF,IAAG,CAACU,WAAW,IAAI,CAAC,IAAI,CAACC,eAAe,CAACF,YAAY,EAAEC,WAAW,CAAC,EAAE;MACnE;;IAGF,IAAIE,SAAS,GAAG,IAAI,CAACC,YAAY,CAACJ,YAAY,EAAEC,WAAW,CAAC;IAE5D,MAAMI,WAAW,GAAGF,SAAS,CAAC,CAAC,CAAC;IAChC,IAAI,CAACE,WAAW,EAAE;MAChB;;IAGFd,iBAAiB,CAACS,YAAY,CAAC,GAAGK,WAAW,CAACC,IAAI;IAElD,IAAI,CAACC,wBAAwB,EAAE;EACjC;EAEQH,YAAYA,CAACJ,YAAoB,EAAEC,WAAmB;IAC5D,QAAQD,YAAY;MAClB,KAAKxf,wEAAa,CAACqP,QAAQ,CAAC+P,OAAO;QACjC,OAAO,IAAI,CAACtZ,QAAQ,CAACka,UAAU,CAAC,GAAG/H,yEAAc,CAAC5I,QAAQ,CAAC4Q,WAAW,CAACC,aAAa,IAAIlgB,wEAAa,CAACqP,QAAQ,CAAC4P,eAAe,IAAIQ,WAAW,EAAE,CAAC;MAClJ,KAAKzf,wEAAa,CAACqP,QAAQ,CAACiQ,QAAQ;QAClC,OAAO,IAAI,CAACxZ,QAAQ,CAACka,UAAU,CAAC,GAAG/H,yEAAc,CAAC5I,QAAQ,CAAC8Q,IAAI,CAACD,aAAa,IAAIlgB,wEAAa,CAACqP,QAAQ,CAAC+P,OAAO,IAAIK,WAAW,EAAE,CAAC;;IAErI,OAAO,IAAI;EACb;EAEQC,eAAeA,CAACF,YAAoB,EAAEC,WAAmB;IAC9D,MAAME,SAAS,GAAG,IAAI,CAACC,YAAY,CAACJ,YAAY,EAAEC,WAAW,CAAC;IAC9D,IAAI,CAACE,SAAS,EAAE;MACd,OAAO,KAAK;;IAGf,OAAOA,SAAS,CAACtJ,MAAM,KAAK,CAAC;EAC/B;EAEQmF,iBAAiBA,CAAA;IACvB,MAAMD,KAAK,GAAG,IAAI,CAAC1N,sBAAsB,CACtCuS,YAAY,CAAC,IAAI,CAACta,QAAQ,CAACC,KAAK,CAAC,EAChCsa,IAAI,EAAE,EACNC,WAAW,EAAE;IACjB,OAAO/E,KAAK;EACd;EAEQE,eAAeA,CAACF,KAAa;IACnC,IAAI,IAAI,CAACnD,eAAe,CAACmI,IAAI,KAAK,CAAC,IAAI,CAAChF,KAAK,IAAIA,KAAK,CAAClF,MAAM,GAAG,CAAC,EAAE;MACjE,OAAO,KAAK;;IAEd,MAAMmK,eAAe,GAAGjF,KAAK,CAACkF,OAAO,CAAC,GAAG,CAAC;IAC1C,IAAID,eAAe,IAAI,CAAC,EAAE;MACxB,OAAO,KAAK;;IAEd,MAAME,MAAM,GAAGnF,KAAK,CAACoF,SAAS,CAACH,eAAe,GAAG,CAAC,CAAC;IACnD,IAAIE,MAAM,CAACrK,MAAM,KAAK,CAAC,EAAE;MACvB,OAAO,KAAK;;IAEd,MAAMoF,eAAe,GAAG,IAAI,CAACrD,eAAe,CAACgC,GAAG,CAACsG,MAAM,CAAC;IACxD,OAAOjF,eAAe;EACxB;EAEQmF,sBAAsBA,CAACjZ,OAAsC,EAAEkZ,QAA4D;IACjI,IAAI,CAAC/uB,cAAc,CAAC8F,IAAI,CAAClG,4EAAY,CAAC4C,eAAe,CAACssB,sBAAsB,EAAEjZ,OAAO,CAAC,CACnF7P,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAEqF,QAAwC,IAAK8oB,QAAQ,CAAC9oB,QAAQ,CAAC,CAAC;EAChF;EAEQqkB,oBAAoBA,CAAA;IAC1B,OAAO,IAAI,CAAC5B,cAAc,IAAI,CAAC,IAAI,CAAC3M,sBAAsB,CAACiT,kBAAkB,CAAC,IAAI,CAAChb,QAAQ,CAACC,KAAK,CAAC;EACpG;EAEQsW,mCAAmCA,CAAA;IACzC,MAAM0E,gBAAgB,GAAGA,CAACC,QAAgB,EAAE7Y,OAAe,KAAI;MAC7D,MAAM8Y,UAAU,GAAG,IAAI;MACvB,MAAMC,QAAQ,GAAG,KAAK;MACtB,MAAMC,UAAU,GAAG,IAAI;MACvB,IAAI,CAAC3gB,aAAa,CAAC4gB,sBAAsB,CAACJ,QAAQ,EAAE7Y,OAAO,EAAE8Y,UAAU,EAAEC,QAAQ,EAAEC,UAAU,CAAC;IAChG,CAAC;IACD,IAAI,CAAC/E,oBAAoB,EAAE,GACvB2E,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,IAAI,CAACxF,KAAK,4DAA4D,CAAC,GACnHwF,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,IAAI,CAACxF,KAAK,wDAAwD,CAAC;EACvH;EAEQuD,iBAAiBA,CAAA;IAEvB,MAAMvD,KAAK,GAAG,IAAI,CAACC,iBAAiB,EAAE;IACtC,IAAI,IAAI,CAACD,KAAK,KAAKA,KAAK,EAAE;MACxB;;IAGF,MAAMf,cAAc,GAAG,IAAI,CAACiB,eAAe,CAACF,KAAK,CAAC;IAElD,MAAM8F,YAAY,GAAItpB,QAAwC,IAAI;MAChE,IAAIA,QAAQ,EAAE;QACZ,IAAI,CAAC8V,sBAAsB,CAACyT,kBAAkB,CAAC,IAAI,CAACxb,QAAQ,CAACC,KAAK,EAAEhO,QAAQ,CAAC;QAC7E,IAAI,CAACgoB,wBAAwB,EAAE;;MAEjC,IAAI,CAACxE,KAAK,GAAGA,KAAK;MAClB,IAAI,CAACf,cAAc,GAAGA,cAAc;IACtC,CAAC;IAED,IAAIA,cAAc,EAAE;MAClB;MACA;MACA;MACA;MACA;MACA,IAAI,CAACoG,sBAAsB,CAAC;QAAErF;MAAK,CAAE,EAAExjB,QAAQ,IAAG;QAChDspB,YAAY,CAACtpB,QAAQ,IAAI,EAAE,CAAC;QAC5B,IAAI,CAACskB,mCAAmC,EAAE;MAC5C,CAAC,CAAC;KACH,MACI,IAAI,IAAI,CAAC7B,cAAc,EAAE;MAC5B;MACA;MACA;MACA6G,YAAY,CAAC,EAAE,CAAC;KACjB,MACI;MACH;MACA;MACAA,YAAY,CAAC,IAAI,CAAC;;EAEtB;EAAC,QAAAnwB,CAAA;qBAhpBUyc,4BAA4B,EAAAvV,gEAAA,CAAA7G,kGAAA,GAAA6G,gEAAA,CAAAG,oDAAA,GAAAH,gEAAA,CAAAG,4DAAA,GAAAH,gEAAA,CAAAK,+DAAA,GAAAL,gEAAA,CAAAO,iEAAA,GAAAP,gEAAA,CAAA0L,mDAAA,GAAA1L,gEAAA,CAAA0L,mDAAA,GAAA1L,gEAAA,CAAA0L,qDAAA,GAAA1L,gEAAA,CAAA0L,sDAAA,GAAA1L,gEAAA,CAAA2L,sEAAA,GAAA3L,gEAAA,CAAA6L,wEAAA,GAAA7L,gEAAA,CAAA+L,gFAAA,GAAA/L,gEAAA,CAAAmR,6EAAA,GAAAnR,gEAAA,CAAAoR,uFAAA,GAAApR,gEAAA,CAAA0X,4FAAA,GAAA1X,gEAAA,CAAA4X,+EAAA;EAAA;EAAA,QAAA7e,EAAA;UAA5Bwc,4BAA4B;IAAAxU,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAE,QAAA,WAAAgoB,sCAAA9nB,EAAA,EAAAC,GAAA;IAAA8nB,aAAA;EAAA;;;;;;;;;;;;;;;;;;;;;AC7FgB;AAEQ;;;;AAO3D,MAAOE,aAAa;EAKxB7vB,YACYC,cAA8B,EAC9B4O,iBAAoC;IADpC,KAAA5O,cAAc,GAAdA,cAAc;IACd,KAAA4O,iBAAiB,GAAjBA,iBAAiB;IAE3B,IAAI,CAAC5O,cAAc,CAACmE,UAAU,CAACtE,sEAAW,CAACgwB,wBAAwB,EAAE,MAAM,IAAI,CAAC7b,QAAQ,CAAC8b,MAAM,CAAC;EAClG;EAEA;EACA;EACU7f,2CAA2CA,CAAC8f,qBAA6C;IACjGhD,UAAU,CACR,MAAK;MACH,IAAI,CAACne,iBAAiB,CAACohB,iCAAiC,CAACD,qBAAqB,CAAC;IACjF,CAAC,CAAC;EACN;EAAC,QAAA3wB,CAAA;qBAnBUwwB,aAAa,EAAAtpB,+DAAA,CAAA7G,sEAAA,GAAA6G,+DAAA,CAAAG,4EAAA;EAAA;EAAA,QAAApH,EAAA;UAAbuwB,aAAa;IAAAvoB,SAAA;IAAA4oB,SAAA,WAAAC,oBAAAvoB,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;kEAEbgoB,mEAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVP;AACI;AAEkB;AAES;AAYA;;;;;;;;AAM3D,MAAOtJ,YAAY;EASvBtmB,YAAYqwB,SAAA,GAAqB,KAAK;IACpC,IAAI,CAACC,aAAa,CAACD,SAAS,CAAC;EAC/B;EAEAC,aAAaA,CAACD,SAAkB;IAC9B,IAAI,CAACA,SAAS,GAAGA,SAAS;IAE1B,IAAI,CAACE,UAAU,GAAG,CAACF,SAAS;IAC5B,IAAI,CAACG,UAAU,GAAGH,SAAS;IAC3B,IAAI,CAACI,SAAS,GAAGJ,SAAS;IAC1B,IAAI,CAACK,IAAI,GAAGL,SAAS;EACvB;EAEAM,gBAAgBA,CAAA;IACd,IAAI,CAACL,aAAa,CAAC,CAAC,IAAI,CAACD,SAAS,CAAC;EACrC;EAEA,OAAOO,eAAeA,CAACC,WAAmB;IACxC,OAAOA,WAAW,KAAK,YAAY,IAAIA,WAAW,KAAK,YAAY;EACrE;;AAII,MAAOzd,mBAAoB,SAAQyc,yEAAa;EASpD7vB,YACY2O,aAA4B,EAC5B1O,cAA8B,EAC9BoT,mBAAwC,EACxCxE,iBAAoC,EACpCyE,4BAA0D,EAC1D7E,MAAc;IAExB,KAAK,CACHxO,cAAc,EACd4O,iBAAiB,CAAC;IATV,KAAAF,aAAa,GAAbA,aAAa;IACb,KAAA1O,cAAc,GAAdA,cAAc;IACd,KAAAoT,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAAxE,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAyE,4BAA4B,GAA5BA,4BAA4B;IAC5B,KAAA7E,MAAM,GAANA,MAAM;IAVR,KAAA2F,cAAc,GAAG,KAAK;IAExB,KAAA0c,wBAAwB,GAAG,KAAK;IAexC,KAAA9yB,aAAa,GAAG,MAAM,IAAI,CAAC8yB,wBAAwB,IAAI,CAAC,IAAI,CAACC,cAAc,EAAE;IA8J7E;IAEU,KAAAC,kBAAkB,GAAI/gB,KAAU,IAAI;MAC5C,IAAI,CAAC,IAAI,CAACjS,aAAa,EAAE,EAAE;QACzB;QACA;QACA;QACAiS,KAAK,CAACghB,WAAW,GAAG,oHAAoH;;IAE5I,CAAC;EAzKD;EAIU/a,cAAcA,CACtBJ,OAAqB,EACrBlF,IAAiB,EACjBqa,gBAAiD;IAEjD,IAAI,CAACra,IAAI,CAACsgB,QAAQ,EAAE1M,MAAM,EAAE;MAC1B,OAAO,KAAK;;IAGd,IAAI,CAACnR,mBAAmB,CAAC8d,YAAY,CAACvgB,IAAI,CAACsgB,QAAQ,CAAC,CACjDjrB,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC+P,IAAI,IAAG;MAChB,QAAQA,IAAoB;QAC1B,KAAKsV,mDAAY,CAACyF,QAAQ;UAAE;YAC1B7V,OAAO,CAACsb,cAAc,GAAG,IAAI;YAC7BnG,gBAAgB,CAACnV,OAAO,CAAC;YACzB;;QAEF,KAAKoQ,mDAAY,CAAC6F,QAAQ;UAAE;YAC1B;;;IAGN,CAAC,CAAC;IAEJ,OAAO,IAAI;EACb;EAEUnX,yBAAyBA,CACjCyc,iBAAmD,EACnDrH,aAAA,GAAyE,IAAI;IAE7E,MAAMsH,oBAAoB,GAAI/M,SAAiB,IAAI;MACjD,OAAO,IAAI6L,4CAAU,CAAOmB,UAAU,IAAG;QACvC,MAAMC,eAAe,GAAGA,CAAA,KAAK;UAC3BD,UAAU,CAACE,IAAI,EAAE;UACjBF,UAAU,CAACG,QAAQ,EAAE;QACvB,CAAC;QACD,IAAInN,SAAS,EAAE;UACb,IAAI,CAAC5V,aAAa,CAAC8c,WAAW,CAAClH,SAAS,CAAC,CACtCte,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC+P,IAAI,IAAG;YAChBoZ,aAAa,GAAGzF,SAAS,EAAE3T,IAAoB,CAAC;YAChD4gB,eAAe,EAAE;UACnB,CAAC,CAAC;SACL,MACI;UACHA,eAAe,EAAE;;MAErB,CAAC,CAAC;IACJ,CAAC;IAED,MAAMG,kBAAkB,GAAIC,WAAmB,IAAI;MACjD,MAAMxa,oBAAoB,GAAG,IAAI;MACjC,IAAIwa,WAAW,EAAE;QACf,IAAI,CAACngB,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAGmgB,WAAW,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAEza,oBAAoB,CAAC;;IAEzE,CAAC;IAEDka,oBAAoB,CAACD,iBAAiB,CAAC9M,SAAS,CAAC,CAC9C1jB,SAAS,CAAC,MAAM8wB,kBAAkB,CAACN,iBAAiB,CAACS,kBAAkB,CAAC,CAAC;EAC9E;EAEU1F,uBAAuBA,CAAC2F,WAAmB;IACnDrsB,MAAM,CAACC,IAAI,CAACosB,WAAW,EAAE,QAAQ,CAAC;EACpC;EAEUC,qBAAqBA,CAACD,WAAmB,EAAE3a,oBAAoB,GAAG,KAAK;IAC/E,IAAI,CAAC0Z,wBAAwB,GAAG1Z,oBAAoB;IACpD1R,MAAM,CAACusB,QAAQ,CAACC,IAAI,GAAGH,WAAW;EACpC;EAEUtgB,QAAQA,CAAC0gB,QAAe,EAAE/a,oBAAoB,GAAG,KAAK,EAAE1J,MAAyB;IACzF,IAAI,CAACojB,wBAAwB,GAAG1Z,oBAAoB;IACpD,IAAI,CAAC3I,MAAM,CAACgD,QAAQ,CAAC0gB,QAAQ,EAAEzkB,MAAM,CAAC;EACxC;EAEUmf,UAAUA,CAACzV,oBAAoB,GAAG,KAAK,EAAE1J,MAAyB;IAE1E,MAAM0kB,mCAAmC,GAAGA,CAAA,KAAK;MAC/C,IAAI,CAAC3jB,MAAM,CAAC4jB,kBAAkB,CAACC,gBAAgB,GAAG,MAAM,KAAK;MAC7D,IAAI,CAAC7jB,MAAM,CAAC8jB,mBAAmB,GAAG,QAAQ;MAC1C,IAAI,CAAC9gB,QAAQ,CAAC,CAAC,IAAI,CAAChD,MAAM,CAAC+jB,GAAG,CAAC,EAAE,IAAI,EAAE9kB,MAAM,CAAC;IAChD,CAAC;IAED;IACA,IAAI,CAACojB,wBAAwB,GAAG1Z,oBAAoB;IACpD,MAAMqb,mBAAmB,GAAG,IAAI,CAACnf,4BAA4B,CAACtV,aAAa,CAAC,IAAI,CAAC;IACjF,IAAIy0B,mBAAmB,KAAK,IAAI,EAAE;MAChCL,mCAAmC,EAAE;KACtC,MACI;MACHK,mBAAmB,CAChBxsB,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAE7C,aAAsB,IAAI;QACpC,IAAIA,aAAa,EAAE;UACjBo0B,mCAAmC,EAAE;;MAEzC,CAAC,CAAC;;EAER;EAEUvJ,sBAAsBA,CAAC6J,gBAAwB,EAAE7B,WAAmB;IAC5E,IAAI,CAAC,IAAI,CAACzc,cAAc,IAAIkS,YAAY,CAACsK,eAAe,CAACC,WAAW,CAAC,EAAE;MACrE;MACA,OAAO,KAAK;;IAEd,MAAM8B,YAAY,GAAG,IAAI,CAAClL,oBAAoB,GAAGiL,gBAAgB,CAAC;IAClE,OAAOC,YAAY,GAAG9B,WAAW,CAAC,IAAI,KAAK;EAC7C;EAEUzH,4BAA4BA,CAACsJ,gBAAwB,EAAE5G,WAAA,GAAuB,IAAI;IAC1F,MAAM6G,YAAY,GAAG,IAAI,CAAClL,oBAAoB,GAAGiL,gBAAgB,CAAC;IAClE,IAAIC,YAAY,EAAE;MAChBA,YAAY,CAAChC,gBAAgB,EAAE;MAC/B,IAAI7E,WAAW,EAAE;QACf,IAAI,CAACoC,wBAAwB,EAAE;;;EAGrC;EAEUA,wBAAwBA,CAAA;IAChC,IAAI,CAACja,QAAQ,CAACC,KAAK,GAAG;MAAE,GAAG,IAAI,CAACD,QAAQ,CAACC;IAAK,CAAE;EAClD;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACU4X,WAAWA,CAAA;IACnB,IAAI,IAAI,CAAC7X,QAAQ,CAAC2e,IAAI,CAACC,KAAK,EAAE;MAC5B,IAAI,CAAC5e,QAAQ,CAAC2e,IAAI,CAACE,cAAc,EAAE;MACnC,IAAI,CAAC7e,QAAQ,CAAC2e,IAAI,CAACG,WAAW,EAAE;KACjC,MACI;MACH,IAAI,CAAC9e,QAAQ,CAAC2e,IAAI,CAACG,WAAW,EAAE;MAChC,IAAI,CAAC9e,QAAQ,CAAC2e,IAAI,CAACE,cAAc,EAAE;;EAEvC;EACUre,gBAAgBA,CAAA;IACxBuY,UAAU,CAAC,MAAM,IAAI,CAAClB,WAAW,EAAE,EAAE,GAAG,CAAC;EAC3C;EAEU5D,wBAAwBA,CAAA;IAChC8E,UAAU,CAAC,MAAM,IAAI,CAAC/Y,QAAQ,CAAC2e,IAAI,CAACG,WAAW,EAAE,EAAE,GAAG,CAAC;EACzD;EAEU5K,0BAA0BA,CAAA;IAClC;IACA;IACA6E,UAAU,CAAC,MAAM,IAAI,CAAC/Y,QAAQ,CAAC2e,IAAI,CAACE,cAAc,EAAE,EAAE,GAAG,CAAC;EAC5D;EAaUE,iBAAiBA,CAAA;IACzB,IAAI,IAAI,CAAC/e,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAACC,KAAK,EAAE;MACxC,MAAM+e,WAAW,GAAGvG,IAAI,CAACwG,KAAK,CAACxG,IAAI,CAACC,SAAS,CAAC,IAAI,CAAC1Y,QAAQ,CAACC,KAAK,CAAC,CAAC;MACnE,IAAI,CAACjU,cAAc,CAACmE,UAAU,CAACtE,sEAAW,CAACqzB,aAAa,EAAEF,WAAW,CAAC;;EAE1E;EAEQG,gBAAgBA,CAAA;IACtB,OAAO,IAAI,CAACnzB,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACqzB,aAAa,CAAC;EAClE;EAEQpC,cAAcA,CAAA;IACpB,OAAO,IAAI,CAAC9c,QAAQ,CAAC2e,IAAI,CAACC,KAAK,IAAI,IAAI,CAACQ,mCAAmC,EAAE;EAC/E;EAEA;EACQA,mCAAmCA,CAAA;IACzC,KAAK,MAAMC,kBAAkB,IAAI,IAAI,CAACC,mBAAmB,IAAI,EAAE,EAAE;MAC/D,MAAMC,oBAAoB,GAAGF,kBAAkB,CAACG,gBAAgB,CAAC,IAAI,CAACxf,QAAQ,CAACC,KAAK,CAAC,IAAI,EAAE;MAC3F,MAAMwf,qBAAqB,GAAGJ,kBAAkB,CAACG,gBAAgB,CAAC,IAAI,CAACL,gBAAgB,EAAE,CAAC,IAAI,EAAE;MAChG,IAAII,oBAAoB,KAAKE,qBAAqB,EAAE;QAClD,OAAO,IAAI;;;IAGf,OAAO,KAAK;EACd;EAAC,QAAAr0B,CAAA;qBAxNU+T,mBAAmB,EAAA7M,+DAAA,CAAA7G,oDAAA,GAAA6G,+DAAA,CAAAG,sEAAA,GAAAH,+DAAA,CAAAK,gFAAA,GAAAL,+DAAA,CAAAO,4EAAA,GAAAP,+DAAA,CAAA0L,kGAAA,GAAA1L,+DAAA,CAAA2L,oDAAA;EAAA;EAAA,QAAA5S,EAAA;UAAnB8T,mBAAmB;IAAA9L,SAAA;IAAAqsB,YAAA,WAAAC,iCAAAhsB,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QAAnBrB,wDAAA,0BAAAstB,oDAAAjhB,MAAA;UAAA,OAAA/K,GAAA,CAAAmpB,kBAAA,CAAApe,MAAA,CAA0B;QAAA,UAAArM,6DAAA,CAAP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtDuC;AACjC;AAIoC;AACX;AAC+D;AACjE;AAQI;;;;;;;AAmBjE,MAAM8tB,qBAAqB;EAOzBr0B,YACUwO,KAAqB,EACrBI,qBAA4C,EAC5C3O,cAA8B,EAC9Bic,QAAgD,EAChDoY,QAAmB;IAJnB,KAAA9lB,KAAK,GAALA,KAAK;IACL,KAAAI,qBAAqB,GAArBA,qBAAqB;IACrB,KAAA3O,cAAc,GAAdA,cAAc;IACd,KAAAic,QAAQ,GAARA,QAAQ;IACR,KAAAoY,QAAQ,GAARA,QAAQ;IAEhB,IAAI,CAACC,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAACrY,QAAQ,CAACnD,WAAW,EAAE,IAAI,CAACmD,QAAQ,CAAClD,kBAAkB,CAAC;IAC1F,IAAI,CAACwb,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAACtY,QAAQ,CAACnD,WAAW,EAAE,IAAI,CAACmD,QAAQ,CAAChD,kBAAkB,CAAC;EAC5F;EAEAgB,uBAAuBA,CAAA;IACrB,OAAO,IAAI,CAACua,oBAAoB;EAClC;EAEAxa,uBAAuBA,CAAA;IACrB,MAAMya,wBAAwB,GAAG,IAAI,CAACC,qBAAqB,EAAE;IAC7D,IAAID,wBAAwB,EAAE;MAC5B,IAAI,CAACD,oBAAoB,GAAGC,wBAAwB;KACrD,MACI;MACH,IAAI,CAAClmB,KAAK,CAAComB,WAAW,CAAC/zB,SAAS,CAAEg0B,qBAA6B,IAAI;QACjE,MAAMC,qBAAqB,GAAG,IAAI,CAACC,gCAAgC,CAACF,qBAAqB,CAAC;QAC1F,IAAIC,qBAAqB,EAAE;UACzB,IAAI,CAACE,qBAAqB,CAACF,qBAAqB,CAAC;UACjD,IAAI,CAACL,oBAAoB,GAAGK,qBAAqB;SAClD,MACI;UACH,MAAMG,oBAAoB,GAAG,IAAI,CAAC/Y,QAAQ,CAACnC,uBAAuB,EAAE;UACpE,IAAIkb,oBAAoB,EAAE;YACxB,IAAI,CAACR,oBAAoB,GAAGQ,oBAAoB;;;MAGtD,CAAC,CAAC;;EAEN;EAEA7Z,gBAAgBA,CAAA;IACd,OAAO,IAAI,CAACc,QAAQ,CAAC7C,0BAA0B,CAAC,IAAI,CAACiC,gBAAgB,CAAC,GAAG,IAAI,CAACiZ,kBAAkB,CAAC,EAAE,IAAI,CAACjZ,gBAAgB,CAAC,GAAG,IAAI,CAACkZ,kBAAkB,CAAC,CAAC;EACvJ;EAEAla,iBAAiBA,CAAC4a,YAA0B;IAC1C,MAAMC,cAAc,GAAGD,YAAY,KAAKd,kEAAY,CAACgB,YAAY;IACjE,IAAID,cAAc,EAAE;MAClB,IAAI,CAACE,gBAAgB,CAAC,GAAG,IAAI,CAACd,kBAAkB,EAAE,IAAI,CAAC;MACvD,IAAI,CAACc,gBAAgB,CAAC,GAAG,IAAI,CAACb,kBAAkB,EAAE,IAAI,CAAC;;IAEzD,MAAMc,aAAa,GAAGH,cAAc,GAAG,IAAI,CAACjZ,QAAQ,CAACnC,uBAAuB,EAAE,GAAG,IAAI,CAACqB,gBAAgB,EAAE;IACxG,IAAI,CAAC4Z,qBAAqB,CAACM,aAAa,CAAC;IACzC,OAAOA,aAAa;EACtB;EAEAnb,2BAA2BA,CAACmb,aAA6B;IACvD,OAAOA,aAAa,IAAI,IAAI,CAACpZ,QAAQ,CAAC9C,sBAAsB,EAAEmC,GAAG,CAACjL,GAAG,IAAIglB,aAAa,CAAChlB,GAAG,CAAC,CAAC,EAAEilB,IAAI,CAACC,KAAK,IAAIA,KAAK,IAAI,IAAI,IAAI,EAAEC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,IAAIA,KAAK,CAAChR,MAAM,KAAK,CAAC,CAAC,CAAC;EAC7K;EAEQlJ,gBAAgBA,CAACqa,YAAoB,EAAEC,UAAkB,EAAEC,WAAmB,EAAElI,YAAoB;IAC1G,OAAO,IAAI,CAAC/e,qBAAqB,CAACknB,iBAAiB,CAAC,IAAI,CAACxB,QAAQ,EAAE,EAAEqB,YAAY,EAAEC,UAAU,EAAE,IAAI,EAAEC,WAAW,EAAE,IAAI,EAAElI,YAAY,CAAC;EACvI;EAEQ0H,gBAAgBA,CAACM,YAAoB,EAAEC,UAAkB,EAAEC,WAAmB,EAAElI,YAAoB,EAAEoI,gBAAqB;IACjI,OAAO,IAAI,CAACnnB,qBAAqB,CAAConB,oBAAoB,CAAC,IAAI,CAAC1B,QAAQ,EAAE,EAAEqB,YAAY,EAAEC,UAAU,EAAE,IAAI,EAAEC,WAAW,EAAE,IAAI,EAAElI,YAAY,EAAEoI,gBAAgB,CAAC;EAC5J;EAEQhB,gCAAgCA,CAACF,qBAA6B;IACpE,IAAI;MAAE,OAAOnI,IAAI,CAACwG,KAAK,CAAC2B,qBAAqB,CAACV,gFAAqB,CAAC8B,cAAc,CAAC,CAAmB;KAAG,CACzG,MAAM;MAAE,OAAO,IAAI;;EACrB;EAEQtB,qBAAqBA,CAAA;IAC3B,OAAO,IAAI,CAAC10B,cAAc,CAAC00B,qBAAqB,CAAyB,IAAI,CAACzY,QAAQ,CAACrD,aAAa,EAAE,CAAC;EACzG;EAEQmc,qBAAqBA,CAACM,aAA6B;IACzD,IAAI,CAACr1B,cAAc,CAAC+0B,qBAAqB,CAAyB,IAAI,CAAC9Y,QAAQ,CAACrD,aAAa,EAAE,EAAEyc,aAAa,CAAC;EACjH;;AAII,MAAgB/mB,iBAAyC,SAAQshB,yEAAa;EAYlF7vB,YACYwO,KAAqB,EACrBC,MAAc,EACdC,cAA8B,EAC9BC,aAA4B,EAC5BC,qBAA4C,EAC5CC,iBAAoC,EACpC5O,cAA8B;IAExC,KAAK,CACHA,cAAc,EACd4O,iBAAiB,CAAC;IAVV,KAAAL,KAAK,GAALA,KAAK;IACL,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAC,cAAc,GAAdA,cAAc;IACd,KAAAC,aAAa,GAAbA,aAAa;IACb,KAAAC,qBAAqB,GAArBA,qBAAqB;IACrB,KAAAC,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAA5O,cAAc,GAAdA,cAAc;IAjB1B,KAAA6P,mBAAmB,GAAWzB,+EAAe,CAAC3M,aAAa;IAC3D,KAAAqR,SAAS,GAAWI,oEAAQ,CAACO,MAAM;IA8FnC;IACA;IACA;IACQ,KAAAwiB,sBAAsB,GAAkC,EAAE;EA5ElE;EAEU7mB,UAAUA,CAClB8mB,YAAsB,EACtBC,kBAAgC,EAChCC,cAAA,GAAyD,IAAI;IAE7D,IAAI,CAACF,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACC,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACC,cAAc,GAAGA,cAAc;IAEpC,MAAMC,UAAU,GAAG,CAAC,CAAC,IAAI,CAACD,cAAc;IACxC,IAAI,CAACrc,aAAa,GAAGsc,UAAU,GAC3B,IAAIjC,qBAAqB,CAAiB,IAAI,CAAC7lB,KAAK,EAAE,IAAI,CAACI,qBAAqB,EAAE,IAAI,CAAC3O,cAAc,EAAE,IAAI,CAACo2B,cAAc,EAAE,MAAM,IAAI,CAACpiB,QAAQ,CAACC,KAAK,CAAC,GACtJ,IAAI;IAER,MAAMvP,eAAe,GAAG,IAAI,CAAC1E,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAAC6E,eAAe,CAAC;IACnF,MAAM4xB,YAAY,GAAGD,UAAU,GAC3B,wDAAwD,GACxD,kBAAkB3xB,eAAe,6BAA6B;IAClE,IAAI,CAAC6xB,mBAAmB,GAAG,gDAAgD7xB,eAAe,gBAAgB4xB,YAAY,WAAW;EACnI;EAEUpmB,sBAAsBA,CAAImlB,aAAiB;IACnD;IACA;IACA;IACA;IACA,IAAI,CAACmB,iBAAiB,CAACnB,aAAa,EAAE,MAAK,CAAG,CAAC,EAAE,KAAK,CAAC;EACzD;EAEU1P,qBAAqBA,CAAI0P,aAAiB,EAAE3P,UAAU,GAAGA,CAAA,KAAK,CAAG,CAAC;IAC1E;IACA;IACA;IACA,IAAI,CAAC8Q,iBAAiB,CAACnB,aAAa,EAAE3P,UAAU,EAAE,IAAI,CAAC;EACzD;EAEU8Q,iBAAiBA,CAAInB,aAAiB,EAAE3P,UAAU,GAAGA,CAAA,KAAK,CAAG,CAAC,EAAE+Q,oBAAoB,GAAG,KAAK;IACpG1J,UAAU,CAAC,MAAK;MACd,IAAI,CAAC1b,YAAY,CAACgkB,aAAa,EAAE3P,UAAU,EAAE+Q,oBAAoB,CAAC;IACpE,CAAC,CAAC;EACJ;EAEUplB,YAAYA,CAAIgkB,aAAiB,EAAE3P,UAAU,GAAGA,CAAA,KAAK,CAAG,CAAC,EAAE+Q,oBAAoB,GAAG,KAAK;IAC/F,MAAM1gB,YAAY,GAAGA,CAAA,KACU+d,gDAAU,CAAEzU,KAAwB,IAAI;MACnE,IAAI,CAAC5Q,cAAc,CAACuH,WAAW,EAAE;MACjC0P,UAAU,EAAE;MACZ,IAAI+Q,oBAAoB,EAAE;QACxB,OAAO1C,uCAAK;;MAEd,OAAOC,iDAAU,CAAC,MAAM3U,KAAK,CAAC;IAChC,CAAC,CAAE;IACL,IAAI,CAAC5Q,cAAc,CAACqH,WAAW,EAAE;IACjC,IAAI,CAAC9V,cAAc,CAAC8F,IAAI,CAAC,IAAI,CAACqwB,kBAAkB,EAAE,EAAEd,aAAa,IAAI,EAAE,CAAC,CACrErvB,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,EAAEoW,YAAY,EAAE,CAAC,CAC7BnV,SAAS,CAAE+P,IAAuB,IAAI;MACrC,IAAI,CAAClC,cAAc,CAACuH,WAAW,EAAE;MACjC,IAAI,IAAI,CAACrH,qBAAqB,CAAC+nB,aAAa,CAAC/lB,IAAI,EAAE1K,QAAQ,EAAE,GAAG,IAAI,CAACiwB,YAAY,EAAE,IAAI,CAAC,EAAE;QACxF,IAAI,CAACS,+BAA+B,EAAE;QACtC,IAAI,CAACC,WAAW,CAACjmB,IAAI,CAAC1K,QAAQ,EAAGgO,KAAU,IAAK,IAAI,CAACD,QAAQ,CAACC,KAAK,GAAGA,KAAK,CAAC;QAE5E,MAAM4iB,oBAAoB,GAAGC,QAAQ,CAACC,aAAa,CAAC,GAAGze,sEAAW,IAAI2b,kFAAuB,EAAE,CAAC;QAChG,IAAI4C,oBAAoB,EAAE;UACxB,MAAMG,gBAAgB,GAAGrmB,IAAI,EAAEsmB,YAAY,GAAG,IAAI,CAACV,mBAAmB,GAAG,EAAE;UAC3EM,oBAAoB,CAACK,SAAS,GAAGF,gBAAgB;;;MAGrDtR,UAAU,EAAE;IACd,CAAC,CAAC;EACN;EAOA;EACUvC,qBAAqBA,CAACnT,KAAU;IACxC,MAAMmnB,QAAQ,GAAGnnB,KAAK,EAAEI,KAAK,EAAEC,GAAG;IAClC,MAAMsT,aAAa,GAAG3T,KAAK,EAAEA,KAAK,EAAEW,IAAI,EAAEgT,aAAa;IACvD,IAAIwT,QAAQ,IAAIxT,aAAa,EAAE;MAC7B,IAAI,CAACsS,sBAAsB,CAACkB,QAAQ,CAAC,GAAGxT,aAAa;;IAEvD,OAAOA,aAAa;EACtB;EAEA;EACUgT,+BAA+BA,CAAA;IACvC,KAAK,MAAMQ,QAAQ,IAAI,IAAI,CAAClB,sBAAsB,EAAE;MAClD,IAAI,CAACmB,kBAAkB,CAACD,QAAQ,CAAC;;EAErC;EAEA;EACUC,kBAAkBA,CAACD,QAAgB;IAC3C,IAAIA,QAAQ,EAAE;MACZ,MAAMxT,aAAa,GAAG,IAAI,CAACsS,sBAAsB,CAACkB,QAAQ,CAAC;MAC3D,IAAIxT,aAAa,EAAE;QACjBA,aAAa,CAACY,MAAM,GAAG,CAAC,CAAC,CAAC;;;EAGhC;EAEA;EACUX,gBAAgBA,CAAC5T,KAAU;IACnC,MAAM2T,aAAa,GAAG,IAAI,CAACR,qBAAqB,CAACnT,KAAK,CAAC,CAAC,CAAC;IACzD,OAAO2T,aAAa,EAChB0T,MAAM,CAACC,IAAI,IAAI,CAAC,CAACA,IAAI,CAAC,CAAC;IAAA,GACtB,EAAE;EACT;EAEA;EACUjc,gBAAgBA,CAACpH,KAAU,EAAEyhB,YAAoB,EAAEC,UAAkB,EAAEC,WAAmB,EAAElI,YAAoB;IACxH,OAAO,IAAI,CAAC/e,qBAAqB,CAACknB,iBAAiB,CAAC5hB,KAAK,EAAEyhB,YAAY,EAAEC,UAAU,EAAE,IAAI,EAAEC,WAAW,EAAE,IAAI,EAAElI,YAAY,CAAC;EAC7H;EACU0H,gBAAgBA,CAACnhB,KAAU,EAAEyhB,YAAoB,EAAEC,UAAkB,EAAEC,WAAmB,EAAElI,YAAoB,EAAEoI,gBAAqB;IAC/I,OAAO,IAAI,CAACnnB,qBAAqB,CAAConB,oBAAoB,CAAC9hB,KAAK,EAAEyhB,YAAY,EAAEC,UAAU,EAAE,IAAI,EAAEC,WAAW,EAAE,IAAI,EAAElI,YAAY,EAAEoI,gBAAgB,CAAC;EAClJ;EAEA;EACQc,WAAWA,CAAC3iB,KAAU,EAAEsjB,QAA0B;IAExD,IAAIC,gCAAgC,GAAG,KAAK;IAE5C,MAAM/U,sBAAsB,GAAG,IAAI,CAAC2T,cAAc,EAAE3T,sBAAsB;IAC1E,IAAIA,sBAAsB,IAAIA,sBAAsB,CAACC,kBAAkB,EAAE;MAEvE,MAAM+U,mBAAmB,GAAG,IAAI,CAACpc,gBAAgB,CAACpH,KAAK,EAAE,GAAGwO,sBAAsB,CAACC,kBAAkB,CAAC;MACtG,IAAI+U,mBAAmB,EAAE;QAEvB,MAAMC,aAAa,GAAGjV,sBAAsB,CAACE,kCAAkC,IAAI,EAAE;QACrF,IAAI+U,aAAa,CAACpC,IAAI,CAACqC,QAAQ,IAAIF,mBAAmB,CAACE,QAAQ,CAAC,CAAC,EAAE;UAEjE,MAAMC,gBAAgB,GAAG,CAACnV,sBAAsB,CAACG,qCAAqC,IAAI,EAAE,EAAEtH,GAAG,CAACuc,eAAe,IAAIA,eAAe,IAAI,EAAE,CAAC;UAC3I,IAAID,gBAAgB,CAACtC,IAAI,CAACuC,eAAe,IAAIA,eAAe,CAACtT,MAAM,GAAG,CAAC,CAAC,EAAE;YAExEiT,gCAAgC,GAAG,IAAI;YAEvC;YACA,MAAMM,yBAAyB,GAAGrL,IAAI,CAACwG,KAAK,CAACxG,IAAI,CAACC,SAAS,CAAC+K,mBAAmB,CAAC,CAAC;YACjF,KAAK,IAAIM,UAAU,GAAG,CAAC,EAAEA,UAAU,GAAGH,gBAAgB,CAACrT,MAAM,EAAEwT,UAAU,EAAE,EAAE;cAC3E,MAAMF,eAAe,GAAGD,gBAAgB,CAACG,UAAU,CAAC;cACpD,KAAK,IAAIC,eAAe,GAAG,CAAC,EAAEA,eAAe,GAAGH,eAAe,CAACtT,MAAM,EAAEyT,eAAe,EAAE,EAAE;gBACzF,MAAMC,UAAU,GAAGJ,eAAe,CAACG,eAAe,CAAC;gBACnD,OAAOP,mBAAmB,CAACQ,UAAU,CAAC;;;YAG1CV,QAAQ,CAACtjB,KAAK,CAAC;YAEf;YACA,MAAMikB,iCAAiC,GAAGA,CAACT,mBAAwB,EAAEM,UAAkB,KAAI;cACzF,IAAIA,UAAU,GAAGH,gBAAgB,CAACrT,MAAM,EAAE;gBACxC,MAAMsT,eAAe,GAAGD,gBAAgB,CAACG,UAAU,CAAC;gBACpDhL,UAAU,CAAC,MAAK;kBACd,KAAK,IAAIiL,eAAe,GAAG,CAAC,EAAEA,eAAe,GAAGH,eAAe,CAACtT,MAAM,EAAEyT,eAAe,EAAE,EAAE;oBACzF,MAAMC,UAAU,GAAGJ,eAAe,CAACG,eAAe,CAAC;oBACnDP,mBAAmB,CAACQ,UAAU,CAAC,GAAGH,yBAAyB,CAACG,UAAU,CAAC;;kBAEzEV,QAAQ,CAAC;oBAAC,GAAGtjB;kBAAK,CAAC,CAAC;kBACpBikB,iCAAiC,CAACT,mBAAmB,EAAEM,UAAU,GAAG,CAAC,CAAC;gBACxE,CAAC,CAAC;;YAEN,CAAC;YACDG,iCAAiC,CAACT,mBAAmB,EAAE,CAAC,CAAC;;;;;IAMjE,IAAI,CAACD,gCAAgC,EAAE;MACrC;MACAD,QAAQ,CAACtjB,KAAK,CAAC;;EAEnB;EAAC,QAAA7U,CAAA;qBAvMmBkP,iBAAiB,EAAAhI,gEAAA,CAAA7G,4DAAA,GAAA6G,gEAAA,CAAA7G,oDAAA,GAAA6G,gEAAA,CAAAG,sDAAA,GAAAH,gEAAA,CAAAG,qDAAA,GAAAH,gEAAA,CAAAK,oFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,sEAAA;EAAA;EAAA,QAAA3S,EAAA;UAAjBiP,iBAAiB;IAAAjH,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAE,QAAA,WAAA0wB,2BAAAxwB,EAAA,EAAAC,GAAA;IAAA8nB,aAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1HX;AAEW;AAEwF;AAEsE;AAC7G;AACd;AACW;AAcA;;;;;;;;;;;AAM/E,MAAOxyB,oBAAqB,SAAQiW,6FAAmB;EAU3DpT,YACY2O,aAA4B,EAC5B1O,cAA8B,EAC9BoT,mBAAwC,EACxCxE,iBAAoC,EACpCyE,4BAA0D,EAC1D7E,MAAc,EAChB8pB,WAAwB,EACxBhlB,YAA0B,EAC1BnT,WAAwB,EACxBoT,WAAwB,EACxB9E,cAA8B,EAC9BE,qBAA4C,EAC5CI,kBAAsC;IAC9C,KAAK,CAACL,aAAa,EAAE1O,cAAc,EAAEoT,mBAAmB,EAAExE,iBAAiB,EAAEyE,4BAA4B,EAAE7E,MAAM,CAAC;IAbxG,KAAAE,aAAa,GAAbA,aAAa;IACb,KAAA1O,cAAc,GAAdA,cAAc;IACd,KAAAoT,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAAxE,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAyE,4BAA4B,GAA5BA,4BAA4B;IAC5B,KAAA7E,MAAM,GAANA,MAAM;IACR,KAAA8pB,WAAW,GAAXA,WAAW;IACX,KAAAhlB,YAAY,GAAZA,YAAY;IACZ,KAAAnT,WAAW,GAAXA,WAAW;IACX,KAAAoT,WAAW,GAAXA,WAAW;IACX,KAAA9E,cAAc,GAAdA,cAAc;IACd,KAAAE,qBAAqB,GAArBA,qBAAqB;IACrB,KAAAI,kBAAkB,GAAlBA,kBAAkB;IArB5B,KAAAC,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAQ,EAAE,GAAG,EAAE;IACP,KAAAI,mBAAmB,GAAWzB,+EAAe,CAAC9L,+BAA+B;IAC7E,KAAA4M,UAAU,GAAWb,qEAAS,CAACpP,WAAW;IAC1C,KAAA6T,SAAS,GAAWI,oEAAQ,CAACO,MAAM;EAkBnC;EAEA/S,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACvP,WAAW,CAACwD,oBAAoB,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,CAACwQ,cAAc;IAE5E,IAAI,CAACmkB,WAAW,CAAC92B,SAAS,GAAG;MAC3B+2B,kBAAkB,EAAE,4BAA4B;MAChDC,kBAAkB,EAAE,4BAA4B;MAChDC,oBAAoB,EAAE;KACvB;IACD,IAAI,CAACt4B,WAAW,CAACu4B,yBAAyB,GAAG;MAC3C,CAACxqB,wEAAa,CAACyqB,eAAe,CAACC,0BAA0B,GAAGR,iDAAI,CAACrE,KAAK;MACtE,CAAC7lB,wEAAa,CAACyqB,eAAe,CAACE,iBAAiB,GAAGT,iDAAI,CAACrE,KAAK;MAC7D,CAAC7lB,wEAAa,CAACyqB,eAAe,CAACG,gCAAgC,GAAGV,iDAAI,CAACrE,KAAK;MAC5E,CAAC7lB,wEAAa,CAACyqB,eAAe,CAACI,kCAAkC,GAAGX,iDAAI,CAACrE,KAAK;MAC9E,CAAC7lB,wEAAa,CAACyqB,eAAe,CAACK,+BAA+B,GAAGZ,iDAAI,CAACrE,KAAK;MAC3E,CAAC7lB,wEAAa,CAACyqB,eAAe,CAACM,qCAAqC,GAAGb,iDAAI,CAACrE,KAAK;MACjF,CAAC7lB,wEAAa,CAACyqB,eAAe,CAACO,0BAA0B,GAAGd,iDAAI,CAACrE,KAAK;MACtE,CAAC7lB,wEAAa,CAACyqB,eAAe,CAACQ,yBAAyB,GAAGf,iDAAI,CAACrE,KAAK;MACrE,CAAC7lB,wEAAa,CAACyqB,eAAe,CAACS,0BAA0B,GAAGhB,iDAAI,CAACrE,KAAK;MACtE,CAAC7lB,wEAAa,CAACyqB,eAAe,CAACU,yBAAyB,GAAGjB,iDAAI,CAACrE,KAAK;MACrE,CAAC7lB,wEAAa,CAACyqB,eAAe,CAACW,8BAA8B,GAAGlB,iDAAI,CAACrE;KACtE;IAED,MAAMwF,0BAA0B,GAAGA,CAACtlB,KAAU,EAAEyZ,YAAoB,KAClE,IAAI,CAAC/e,qBAAqB,CAACknB,iBAAiB,CAC1C5hB,KAAK,EACLjG,wEAAa,CAAC2qB,eAAe,CAACa,UAAU,EACxCvrB,sEAAW,CAAC0qB,eAAe,CAACa,UAAU,EACtC,IAAI,EACJxmB,uEAAY,CAAC2lB,eAAe,CAACa,UAAU,EACvC,IAAI,EACJ9L,YAAY,CAAC;IACjB,IAAI,CAAC4F,mBAAmB,GAAG,CACzB;MAAEE,gBAAgB,EAAEvf,KAAK,IAAIslB,0BAA0B,CAACtlB,KAAK,EAAE/F,wEAAa,CAACyqB,eAAe,CAACC,0BAA0B;IAAC,CAAE,EAC1H;MAAEpF,gBAAgB,EAAEvf,KAAK,IAAIslB,0BAA0B,CAACtlB,KAAK,EAAE/F,wEAAa,CAACyqB,eAAe,CAACE,iBAAiB;IAAC,CAAE,EACjH;MAAErF,gBAAgB,EAAEvf,KAAK,IAAIslB,0BAA0B,CAACtlB,KAAK,EAAE/F,wEAAa,CAACyqB,eAAe,CAACG,gCAAgC;IAAC,CAAE,EAChI;MAAEtF,gBAAgB,EAAEvf,KAAK,IAAIslB,0BAA0B,CAACtlB,KAAK,EAAE/F,wEAAa,CAACyqB,eAAe,CAACI,kCAAkC;IAAC,CAAE,EAClI;MAAEvF,gBAAgB,EAAEvf,KAAK,IAAIslB,0BAA0B,CAACtlB,KAAK,EAAE/F,wEAAa,CAACyqB,eAAe,CAACK,+BAA+B;IAAC,CAAE,EAC/H;MAAExF,gBAAgB,EAAEvf,KAAK,IAAIslB,0BAA0B,CAACtlB,KAAK,EAAE/F,wEAAa,CAACyqB,eAAe,CAACM,qCAAqC;IAAC,CAAE,EACrI;MAAEzF,gBAAgB,EAAEvf,KAAK,IAAIslB,0BAA0B,CAACtlB,KAAK,EAAE/F,wEAAa,CAACyqB,eAAe,CAACO,0BAA0B;IAAC,CAAE,EAC1H;MAAE1F,gBAAgB,EAAEvf,KAAK,IAAIslB,0BAA0B,CAACtlB,KAAK,EAAE/F,wEAAa,CAACyqB,eAAe,CAACQ,yBAAyB;IAAC,CAAE,EACzH;MAAE3F,gBAAgB,EAAEvf,KAAK,IAAIslB,0BAA0B,CAACtlB,KAAK,EAAE/F,wEAAa,CAACyqB,eAAe,CAACS,0BAA0B;IAAC,CAAE,EAC1H;MAAE5F,gBAAgB,EAAEvf,KAAK,IAAIslB,0BAA0B,CAACtlB,KAAK,EAAE/F,wEAAa,CAACyqB,eAAe,CAACU,yBAAyB;IAAC,CAAE,EACzH;MAAE7F,gBAAgB,EAAEvf,KAAK,IAAIslB,0BAA0B,CAACtlB,KAAK,EAAE/F,wEAAa,CAACyqB,eAAe,CAACW,8BAA8B;IAAC,CAAE,CAC/H;EACH;EAEA7kB,UAAUA,CAACzE,KAAU;IACnB,IAAI,CAACmE,cAAc,GAAG,CAAC,CAACnE,KAAK,EAAEmE,cAAc;IAE7C,IAAI,CAAClE,2CAA2C,CAAC9B,0FAA+B,CAACwqB,eAAe,CAAC;IAEjG,IAAI,CAAC5F,iBAAiB,EAAE;IAExB,IAAI,CAACpe,yBAAyB,CAAC3E,KAAK,CAAC;EACvC;EAEA8E,IAAIA,CAAC9E,KAAU;IACb,MAAM+E,eAAe,GAAgB;MACnCtN,QAAQ,EAAE,IAAI,CAACyH,UAAU;MACzB8F,aAAa,EAAE,IAAI,CAAClC,SAAS;MAC7BrD,EAAE,EAAE,IAAI,CAACA,EAAE;MACXxJ,QAAQ,EAAE+J,KAAK,CAACiE,KAAK;MACrBgB,sBAAsB,EAAEjF,KAAK,CAACkF,eAAe;MAC7CC,QAAQ,EAAE;KACX;IACD,IAAI,CAACnF,KAAK,CAACoF,WAAW,EAAE;MACtB,IAAI,CAACpB,QAAQ,CAACqB,sBAAsB,EAAE;MACtC,IAAI,CAAC,IAAI,CAACrB,QAAQ,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEiB,WAAW,CAACC,KAAK,EAAE;QAC/C,IAAI,CAACvB,QAAQ,CAACwB,qBAAqB,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC9G,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC2C,MAAM,CAACC,eAAe,CAAC;OACjE,MACI;QACH,IAAI,CAACC,QAAQ,CAACb,eAAe,CAAC;;KAEjC,MACI;MACH,IAAI,CAACa,QAAQ,CAACb,eAAe,CAAC;;EAElC;EAEQa,QAAQA,CAACC,OAAoB;IACnC,MAAM4H,iBAAiB,GAAG,IAAImJ,GAAG,CAAqC,CACpE,CAACyR,0FAAuB,CAACoB,oBAAoB,EAAE;MAAEnV,SAAS,EAAE;IAAwB,CAAE,CAAC,CACxF,CAAC;IACF,IAAI,CAAC7V,cAAc,CAACqH,WAAW,EAAE;IACjC,IAAI,CAACvC,WAAW,CAACqC,QAAQ,CAAChW,4EAAY,CAACX,WAAW,CAAC6V,IAAI,EAAEe,OAAO,CAAC,CAC9D7P,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,CAAC0H,iBAAiB,CAAC,CAAC,CAChE7c,SAAS,CAAE+P,IAAgB,IAAI;MAC9B,IAAI,CAAClC,cAAc,CAACuH,WAAW,EAAE;MACjC,IAAI,IAAI,CAACC,cAAc,CAACJ,OAAO,EAAElF,IAAI,EAAEuF,CAAC,IAAI,IAAI,CAACN,QAAQ,CAACM,CAAC,CAAC,CAAC,EAAE;QAC7D;;MAEF,IAAIjD,gFAAqB,CAACymB,eAAe,CAACtjB,QAAQ,CAACzF,IAAI,CAAC0F,OAAO,CAAC,EAAE;QAChE,IAAI,CAACC,YAAY,GAAG3F,IAAI,CAAC0F,OAAO;OACjC,MACI;QACH,IAAI,CAAC5G,EAAE,GAAGkB,IAAI,CAAClB,EAAE;QACjB,IAAI,CAAC6G,YAAY,GAAGvD,qEAAU,CAAC4lB,eAAe,CAACpiB,cAAc;;MAE/D,IAAI,CAACnD,mBAAmB,CAACqC,UAAU,CAAC,IAAI,CAACa,YAAY,EAAE,IAAI,EAAE3F,IAAI,CAAC6F,OAAO,CAAC;IAC5E,CAAC,CAAC;EACN;EAEA1G,MAAMA,CAACE,KAAU;IACf,IAAI,CAAC4c,UAAU,EAAE;EACnB;EAEAlW,eAAeA,CAAC1G,KAAU;IACxB,IAAI,IAAI,CAACsG,YAAY,KAAKvD,qEAAU,CAAC4lB,eAAe,CAACpiB,cAAc,EAAE;MACnE,IAAI,CAACqW,UAAU,CAAC,IAAI,CAAC;;EAEzB;EAAC,QAAAxtB,CAAA;qBA5IUlC,oBAAoB,EAAAoJ,gEAAA,CAAA7G,qDAAA,GAAA6G,gEAAA,CAAAG,sEAAA,GAAAH,gEAAA,CAAAK,gFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,kGAAA,GAAA1L,gEAAA,CAAA2L,oDAAA,GAAA3L,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA6L,kEAAA,GAAA7L,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA7G,sDAAA,GAAA6G,gEAAA,CAAA+L,qFAAA,GAAA/L,gEAAA,CAAAmR,+EAAA;EAAA;EAAA,QAAApY,EAAA;UAApBnC,oBAAoB;IAAAmK,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAmyB,8BAAAjyB,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QChCjCrB,6DAAA,iCAQqD;QAA5BA,yDAHA,wBAAAuzB,4EAAAlnB,MAAA;UAAA,OAAc/K,GAAA,CAAA6M,UAAA,CAAA9B,MAAA,CAAkB;QAAA,EAAC,4BAAAmnB,gFAAAnnB,MAAA;UAAA,OACf/K,GAAA,CAAA8O,eAAA,CAAA/D,MAAA,CAAuB;QAAA,EAAC,oBAAAonB,wEAAApnB,MAAA;UAAA,OAChC/K,GAAA,CAAAkN,IAAA,CAAAnC,MAAA,CAAY;QAAA,EAAC,sBAAAqnB,0EAAArnB,MAAA;UAAA,OACX/K,GAAA,CAAAkI,MAAA,CAAA6C,MAAA,CAAc;QAAA,EAAC;QACpDrM,2DAAA,EAA0B;;;QALDA,yDAJA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF,aAAAlL,GAAA,CAAA6H,EAAA,CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFZ;AAIW;AAEuC;AAEmE;AAC1E;;;;;;;;;IC4E7DnJ,uDAAA,UAAoH;;;;;;IAMvEA,4DAAzC,SAAyC,YAAuE;IAAzCA,wDAAA,mBAAA8zB,8DAAA;MAAA,MAAAC,YAAA,GAAA/zB,2DAAA,CAAAi0B,GAAA,EAAAC,SAAA;MAAA,MAAAC,MAAA,GAAAn0B,2DAAA;MAAA,OAAAA,yDAAA,CAASm0B,MAAA,CAAAG,gBAAA,CAAAP,YAAA,CAAA5qB,EAAA,CAA8B;IAAA,EAAC;IAACnJ,oDAAA,GAAkB;IAAIA,0DAAJ,EAAI,EAAK;;;;IAA3BA,uDAAA,GAAkB;IAAlBA,+DAAA,CAAA+zB,YAAA,CAAAhtB,IAAA,CAAkB;;;;;IAJpI/G,4DAAA,QAAG;IACDA,oDAAA,+DACF;IAAAA,0DAAA,EAAI;IACJA,4DAAA,SAAI;IACFA,wDAAA,IAAA00B,0CAAA,iBAAyC;IAC3C10B,0DAAA,EAAK;IACLA,4DAAA,QAAG;IACDA,oDAAA,2EAAmE;IAAAA,4DAAA,YAA2C;IAAAA,oDAAA,wBAAiB;IACjIA,0DADiI,EAAI,EACjI;;;;IAJwBA,uDAAA,GAAa;IAAbA,wDAAA,YAAAm0B,MAAA,CAAAjB,UAAA,CAAa;IAG+BlzB,uDAAA,GAAuC;IAAvCA,oEAAA,oBAAAm0B,MAAA,CAAAr1B,qBAAA,MAAAkB,2DAAA,CAAuC;;;;;IAI/GA,4DAAA,QAAG;IACDA,oDAAA,4CAAoC;IAAAA,4DAAA,YAA2C;IAAAA,oDAAA,wBAAiB;IAClGA,0DADkG,EAAI,EAClG;;;;IADqCA,uDAAA,GAAuC;IAAvCA,oEAAA,oBAAAm0B,MAAA,CAAAr1B,qBAAA,MAAAkB,2DAAA,CAAuC;;;AD9EtF,MAAOhJ,aAAa;EAQxByC,YACUo7B,gBAAkC,EAClC7C,WAAwB,EACxB5pB,aAA4B,EAC5B1O,cAA8B;IAH9B,KAAAm7B,gBAAgB,GAAhBA,gBAAgB;IAChB,KAAA7C,WAAW,GAAXA,WAAW;IACX,KAAA5pB,aAAa,GAAbA,aAAa;IACb,KAAA1O,cAAc,GAAdA,cAAc;EACxB;EAEAU,QAAQA,CAAA;IACN,IAAI,CAAC06B,4BAA4B,GAAG,GAAGjB,6EAAkB,CAAC5H,GAAG,SAAS;IACtE,IAAI,CAAC8I,8BAA8B,GAAG,GAAGnB,iGAAsC,CAAC3H,GAAG,mBAAmB;IACtG,IAAI,CAACntB,qBAAqB,GAAG,IAAI,CAACpF,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACuF,qBAAqB,CAAC;IAC9F,IAAI,CAACk2B,mBAAmB,GAAG,IAAI,CAACt7B,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACoF,kCAAkC,CAAC;IACzG,IAAI,CAACs2B,kBAAkB,GAAG,IAAI,CAACv7B,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACkF,gCAAgC,CAAC;EACxG;EAEA61B,gBAAgBA,CAACnrB,EAAU;IACzB,IAAI,CAAC+rB,iBAAiB,CAAC/rB,EAAE,CAAC;IAC1B,OAAO,KAAK,CAAC,CAAC;EAChB;EAEA,IAAI+pB,UAAUA,CAAA;IACZ,OAAO,CAAC,IAAI,CAACiC,cAAc,GAAG,IAAI,CAACC,eAAe,EAAEC,kBAAkB,GAAG,IAAI,CAACD,eAAe,EAAEE,mBAAmB,GAAGC,KAAK,IAAI,EAAE;EAClI;EAEA,IAAIC,sBAAsBA,CAAA;IACxB,OAAO,IAAI,CAACtC,UAAU,CAACjV,MAAM,GAAG,CAAC;EACnC;EAEQiX,iBAAiBA,CAAC/rB,EAAU;IAClC,MAAMuV,WAAW,GAAG,IAAI,CAACyW,cAAc,GAAG77B,4EAAY,CAACV,IAAI,CAACs8B,iBAAiB,GAAG57B,4EAAY,CAACV,IAAI,CAAC68B,0BAA0B;IAC5H,IAAI,CAACzD,WAAW,CAAC92B,SAAS,GAAG;MAC3B+2B,kBAAkB,EAAE,IAAI;MACxBC,kBAAkB,EAAE,IAAI;MACxBC,oBAAoB,EAAE,OAAOzT,WAAW;KACzC;IACD,IAAI,CAACsT,WAAW,CAAC0D,QAAQ,CAAC5D,iDAAI,CAACrE,KAAK,EAAEtkB,EAAE,CAAC,CACtCzJ,IAAI,CAACrG,0CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC;MACT4wB,IAAI,EAAEvrB,QAAQ,IAAG;QACf,MAAMg2B,iBAAiB,GAAGh2B,QAAQ,CAACi2B,OAAO,CAACtsB,GAAG,CAAC,qBAAqB,CAAC;QACrE,MAAMusB,QAAQ,GAAG,IAAI,CAACn8B,cAAc,CAACo8B,kBAAkB,CAACH,iBAAiB,CAAC;QAC1E,IAAI,CAACd,gBAAgB,CAACrmB,IAAI,CAAC7O,QAAQ,CAACo2B,IAAI,EAAEF,QAAQ,CAAC;MACrD,CAAC;MACD9c,KAAK,EAAEA,KAAK,IAAG;QACb,IAAI,CAAC3Q,aAAa,CAAC+G,UAAU,CAACwkB,8CAAO,CAACqC,YAAY,CAAC;MACrD;KACD,CAAC;EACN;EAEA,IAAYb,cAAcA,CAAA;IACxB,OAAO,CAAC,CAAC,IAAI,CAACc,WAAW;EAC3B;EAEA,IAAYb,eAAeA,CAAA;IACzB,OAAO,IAAI,CAACv1B,cAAc,EAAEu1B,eAAe;EAC7C;EAEA,IAAYa,WAAWA,CAAA;IACrB,OAAO,IAAI,CAACv8B,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAAC08B,WAAW,CAAC;EAChE;EAEA,IAAYp2B,cAAcA,CAAA;IACxB,OAAO,IAAI,CAACnG,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACsG,cAAc,CAAC;EACnE;EAAC,QAAA/G,CAAA;qBAvEU9B,aAAa,EAAAgJ,+DAAA,CAAA7G,2DAAA,GAAA6G,+DAAA,CAAAG,kDAAA,GAAAH,+DAAA,CAAAG,oDAAA,GAAAH,+DAAA,CAAAK,sEAAA;EAAA;EAAA,QAAAtH,EAAA;UAAb/B,aAAa;IAAA+J,SAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAg1B,uBAAA90B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCvB1BrB,uDAAA,kBAA2B;QAEzBA,4DADF,aAAqB,SACf;QAAAA,oDAAA,WAAI;QAAAA,0DAAA,EAAK;QAIPA,4DAHN,UAAK,aACkB,kBACN,wBACoD;QAC7DA,oDAAA,gPACF;QAAAA,0DAAA,EAAiB;QAEfA,4DADF,wBAAmF,SAC9E;QACDA,oDAAA,qEACF;QAAAA,0DAAA,EAAI;QAEFA,4DADF,UAAI,UACE;QACFA,oDAAA,8FACF;QAAAA,0DAAA,EAAK;QACLA,4DAAA,UAAI;QACFA,oDAAA,yEACF;QAAAA,0DAAA,EAAK;QACLA,4DAAA,UAAI;QACFA,oDAAA,sEACF;QAEJA,0DAFI,EAAK,EACF,EACU;QAEfA,4DADF,yBAAyE,SACpE;QAAAA,oDAAA,sDAA8C;QAAAA,0DAAA,EAAI;QAEnDA,4DADF,UAAI,UACE;QAAAA,oDAAA,YAAI;QAAAA,0DAAA,EAAK;QACbA,4DAAA,UAAI;QAAAA,oDAAA,cAAM;QAAAA,0DAAA,EAAK;QACfA,4DAAA,UAAI;QAAAA,oDAAA,4FAAoF;QAC1FA,0DAD0F,EAAK,EAC1F;QACFA,4DAAH,SAAG,cAAQ;QAAAA,oDAAA,eAAO;QAASA,0DAAT,EAAS,EAAI;QAC/BA,4DAAA,SAAG;QACDA,oDAAA,2EACF;QAAAA,0DAAA,EAAI;QACJA,4DAAA,SAAG;QACDA,oDAAA,sLACF;QACFA,0DADE,EAAI,EACW;QAEfA,4DADF,yBAAuE,SAClE;QACDA,oDAAA,uFACF;QAAAA,0DAAA,EAAI;QACJA,4DAAA,SAAG;QACDA,oDAAA,sNACF;QAAAA,0DAAA,EAAI;QACJA,4DAAA,SAAG;QACDA,oDAAA,6IACF;QAAAA,0DAAA,EAAI;QAEFA,4DADF,UAAI,UACE;QACFA,oDAAA,8GACF;QAAAA,0DAAA,EAAK;QACLA,4DAAA,UAAI;QACFA,oDAAA,sFACF;QAAAA,0DAAA,EAAK;QACLA,4DAAA,UAAI;QACFA,oDAAA,uKACF;QAAAA,0DAAA,EAAK;QACLA,4DAAA,UAAI;QACFA,oDAAA,mJACF;QAEJA,0DAFI,EAAK,EACF,EACU;QAEfA,4DADF,yBAA4E,SACvE;QACDA,oDAAA,sWACF;QAAAA,0DAAA,EAAI;QACJA,oDAAA,yEACA;QACMA,4DADN,UAAI,UACE,YAA2D;QAAAA,oDAAA,kCAA0B;QAAIA,0DAAJ,EAAI,EAAK;QAC9FA,4DAAJ,UAAI,YAA6D;QAAAA,oDAAA,0DAAkD;QAEvHA,0DAFuH,EAAI,EAAK,EACzH,EACU;QAEfA,4DADF,0BAA2E,SACtE;QACDA,oDAAA,qQACF;QACFA,0DADE,EAAI,EACW;QAEfA,4DADF,0BAA2F,SACtF;QACDA,oDAAA,IAC+C;QAAAA,4DAAA,YAAiD;QAAAA,oDAAA,YAAI;QAAAA,0DAAA,EAAI;QAAAA,oDAAA,UAC1G;QACFA,0DADE,EAAI,EACW;QACjBA,4DAAA,0BAAwD;QAatDA,wDAZA,KAAAo2B,6BAAA,kBAA8G,KAAAC,qCAAA,gCAAAr2B,oEAAA,CAClE,KAAAu2B,qCAAA,gCAAAv2B,oEAAA,CAWG;QAMnDA,0DADE,EAAiB,EACL;QACdA,uDAAA,UAAM;QAGZA,0DAFI,EAAM,EACF,EACF;;;;;QAtCaA,uDAAA,IAAuC;QAAvCA,mEAAA,SAAAsB,GAAA,CAAAwzB,4BAAA,EAAA90B,2DAAA,CAAuC;QACvCA,uDAAA,GAAyC;QAAzCA,mEAAA,SAAAsB,GAAA,CAAAyzB,8BAAA,EAAA/0B,2DAAA,CAAyC;QAQpCA,uDAAA,GAA0E;QAA1EA,oEAAA,oCAAAsB,GAAA,CAAA0zB,mBAAA,0BAA0E;QAEtFh1B,uDAAA,GAC+C;QAD/CA,gEAAA,wFAAAsB,GAAA,CAAA0zB,mBAAA,sDAC+C;QAAmBh1B,uDAAA,EAA6B;QAA7BA,mEAAA,SAAAsB,GAAA,CAAA2zB,kBAAA,EAAAj1B,2DAAA,CAA6B;QAI3FA,uDAAA,GAA8B;QAAmCA,wDAAjE,SAAAsB,GAAA,CAAAk0B,sBAAA,CAA8B,aAAAkB,gCAAA,CAAmC,aAAAC,mCAAA,CAAqC;;;;;;;;;;;;;;;;;;;;;;;;;ACvFjC;;;;;;;ICArF32B,uDAAA,gBACY;;;;;IACZA,uDAAA,aAKM;;;;IAFDA,yDADA,UAAA82B,MAAA,CAAAv8B,MAAA,CAAAw8B,gBAAA,CAAuC,qBAAAD,MAAA,CAAAv8B,MAAA,CAAAy8B,gBAAA,CACW;IAClDh3B,wDAAA,cAAA82B,MAAA,CAAAv8B,MAAA,CAAAwV,OAAA,EAAA/P,4DAAA,CAA4B;;;;;IAEjCA,uDAAA,gBACY;;;ADON,MAAO0G,0BAA0B;EAQrC,IACInM,MAAMA,CAAA;IACR,OAAO,IAAI,CAAC28B,OAAO;EACrB;EACA,IAAI38B,MAAMA,CAACA,MAA+B;IACxC,IAAI,CAAC28B,OAAO,GAAG38B,MAAM,IAAI,IAAI,CAAC48B,aAAa;IAC3C,IAAI,CAACD,OAAO,CAACnnB,OAAO,GAAG,IAAI,CAACqnB,YAAY,CAAC,IAAI,CAACF,OAAO,CAACnnB,OAAO,IAAI,IAAI,CAAConB,aAAa,CAACpnB,OAAO,CAAC;IAC5F,IAAI,CAACmnB,OAAO,CAACH,gBAAgB,GAAG,IAAI,CAACG,OAAO,CAACH,gBAAgB,IAAI,IAAI,CAACI,aAAa,CAACJ,gBAAgB;IACpG,IAAI,CAACG,OAAO,CAACF,gBAAgB,GAAG,IAAI,CAACE,OAAO,CAACF,gBAAgB,IAAI,IAAI,CAACG,aAAa,CAACH,gBAAgB;EACtG;EAOA,IACIK,aAAaA,CAAA;IACf,OAAO,IAAI,CAACC,cAAc;EAC5B;EACA,IAAID,aAAaA,CAACA,aAA4B;IAC5C,IAAI,CAACC,cAAc,GAAGD,aAAa,IAAI,IAAI,CAACE,oBAAoB;IAChE,IAAI,CAACD,cAAc,CAACE,GAAG,GAAG,IAAI,CAACF,cAAc,CAACE,GAAG,IAAI,IAAI,CAACD,oBAAoB,CAACC,GAAG;IAClF,IAAI,CAACF,cAAc,CAACG,MAAM,GAAG,IAAI,CAACH,cAAc,CAACG,MAAM,IAAI,IAAI,CAACF,oBAAoB,CAACE,MAAM;EAC7F;EAEAh+B,YACUi+B,SAAuB;IAAvB,KAAAA,SAAS,GAATA,SAAS;IAjCF,KAAAP,aAAa,GAA4B;MACxDpnB,OAAO,EAAE,EAAE;MACXgnB,gBAAgB,EAAE,OAAO;MACzBC,gBAAgB,EAAE;KACnB;IACO,KAAAE,OAAO,GAA4B,IAAI,CAACC,aAAa;IAY5C,KAAAI,oBAAoB,GAAkB;MACrDC,GAAG,EAAE,OAAO;MACZC,MAAM,EAAE;KACT;IACO,KAAAH,cAAc,GAAkB,IAAI,CAACC,oBAAoB;EAajE;EAEQH,YAAYA,CAACO,IAAY;IAC/B,MAAMC,aAAa,GAAG,IAAI,CAACF,SAAS,CAACG,QAAQ,CAACjB,0DAAe,CAACkB,IAAI,EAAEH,IAAI,CAAC;IACzE,OAAOC,aAAa;EACtB;EAAC,QAAA9+B,CAAA;qBAzCU4N,0BAA0B,EAAA1G,+DAAA,CAAA7G,mEAAA;EAAA;EAAA,QAAAJ,EAAA;UAA1B2N,0BAA0B;IAAA3F,SAAA;IAAAi3B,MAAA;MAAAz9B,MAAA;MAAA88B,aAAA;IAAA;IAAAr2B,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAA82B,oCAAA52B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCRvCrB,wDARA,IAAAk4B,+CAAA,uBAAsG,IAAAC,yCAAA,iBAMpE,IAAAC,+CAAA,uBAE0E;;;QARhGp4B,wDAAA,SAAAsB,GAAA,CAAA+1B,aAAA,CAAAG,GAAA,iBAAAl2B,GAAA,CAAA+1B,aAAA,CAAAG,GAAA,eAAAl2B,GAAA,CAAA/G,MAAA,CAAAwV,OAAA,CAAwF;QAE9F/P,uDAAA,EAAoB;QAApBA,wDAAA,SAAAsB,GAAA,CAAA/G,MAAA,CAAAwV,OAAA,CAAoB;QAMd/P,uDAAA,EAA8F;QAA9FA,wDAAA,SAAAsB,GAAA,CAAA+1B,aAAA,CAAAI,MAAA,iBAAAn2B,GAAA,CAAA+1B,aAAA,CAAAI,MAAA,eAAAn2B,GAAA,CAAA/G,MAAA,CAAAwV,OAAA,CAA8F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLnC;AACc;AACpB;;;;;;;;;;;;;;ICMrD/P,4DAFJ,cAAkB,cACI,SACd;IAAAA,oDAAA,wBAAiB;IACvBA,0DADuB,EAAK,EACtB;IAEJA,4DADF,cAAqC,iBAC0H;IAAjCA,wDAAA,mBAAAq4B,uEAAA;MAAAr4B,2DAAA,CAAAi0B,GAAA;MAAA,MAAAqE,MAAA,GAAAt4B,2DAAA;MAAA,OAAAA,yDAAA,CAASs4B,MAAA,CAAAC,oBAAA,EAAsB;IAAA,EAAC;IAC9Jv4B,0DAD+J,EAAS,EAClK;IACNA,uDAAA,cACM;IACRA,0DAAA,EAAM;;;;IAFgBA,uDAAA,GAAoC;IAApCA,wDAAA,cAAAs4B,MAAA,CAAA/5B,sBAAA,EAAAyB,4DAAA,CAAoC;;;;;IAT9DA,4DADF,UAA4B,oBACE;IAC1BA,wDAAA,IAAAw4B,8CAAA,yBAAuB;IAa3Bx4B,0DADE,EAAa,EACT;;;;;;IAIFA,4DADF,cAAwC,iBAC8G;IAAzDA,wDAAA,mBAAAy4B,iEAAA;MAAAz4B,2DAAA,CAAA04B,GAAA;MAAA,MAAAJ,MAAA,GAAAt4B,2DAAA;MAAA,OAAAA,yDAAA,CAASs4B,MAAA,CAAAK,MAAA,EAAQ;IAAA,EAAC;IAAuC34B,0DAAA,EAAS;IAC7JA,4DAAA,iBAAoK;IAAvEA,wDAAA,mBAAA44B,iEAAA;MAAA54B,2DAAA,CAAA04B,GAAA;MAAA,MAAAJ,MAAA,GAAAt4B,2DAAA;MAAA,OAAAA,yDAAA,CAASs4B,MAAA,CAAA5gC,QAAA,EAAU;IAAA,EAAC;IACnHsI,0DADsK,EAAS,EACzK;;;;IAFoBA,uDAAA,EAAkC;IAAlCA,wDAAA,aAAAs4B,MAAA,CAAAO,WAAA,WAAkC;IAClC74B,uDAAA,EAAkC;IAAlCA,wDAAA,aAAAs4B,MAAA,CAAAO,WAAA,WAAkC;;;ADb1D,MAAO1iC,gBAAgB;EAM3BsD,YACUyO,MAAc,EACdxO,cAA8B;IAD9B,KAAAwO,MAAM,GAANA,MAAM;IACN,KAAAxO,cAAc,GAAdA,cAAc;IANxB,KAAAm/B,WAAW,GAAG,KAAK;IACnB,KAAAC,cAAc,GAAG,KAAK;EAMtB;EAEA1+B,QAAQA,CAAA;IACN,IAAI,CAACmE,sBAAsB,GAAG,IAAI,CAAC7E,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACgF,sBAAsB,CAAC;EAClG;EAEAw6B,oBAAoBA,CAAA;IAClB,IAAI,CAACD,cAAc,GAAG,IAAI;IAC1B,OAAO,KAAK;EACd;EAEAP,oBAAoBA,CAAA;IAClB,IAAI,CAACO,cAAc,GAAG,KAAK;EAC7B;EAEAH,MAAMA,CAAA;IACJx5B,MAAM,CAACC,IAAI,CAAC9F,4EAAY,CAAC0/B,cAAc,CAACL,MAAM,EAAE,OAAO,CAAC;EAC1D;EAEAjhC,QAAQA,CAAA;IACN,IAAI,CAACwQ,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC8B,IAAI,CAACG,MAAM,CAAC,CAAC;EACzD;EAAC,QAAAsB,CAAA;qBA9BU3C,gBAAgB,EAAA6J,+DAAA,CAAA7G,mDAAA,GAAA6G,+DAAA,CAAAG,sEAAA;EAAA;EAAA,QAAApH,EAAA;UAAhB5C,gBAAgB;IAAA4K,SAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAA83B,0BAAA53B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCb7BrB,4DAAA,SAAI;QAAAA,oDAAA,cAAO;QAAAA,0DAAA,EAAK;QAGZA,4DAFJ,aAAQ,aACsB,oBAC0C;QAAxDA,8DAAA,2BAAAm5B,8DAAA9sB,MAAA;UAAArM,gEAAA,CAAAsB,GAAA,CAAAu3B,WAAA,EAAAxsB,MAAA,MAAA/K,GAAA,CAAAu3B,WAAA,GAAAxsB,MAAA;UAAA,OAAAA,MAAA;QAAA,EAAyB;QAA+BrM,0DAAA,EAAa;QAC9DA,4DAAnB,eAAmB,cAAmB;QAAAA,oDAAA,yDAAkD;QAAAA,4DAAA,WAA4C;QAAjCA,wDAAA,mBAAAq5B,6CAAA;UAAA,OAAS/3B,GAAA,CAAAy3B,oBAAA,EAAsB;QAAA,EAAC;QAAC/4B,oDAAA,wBAAiB;QAAAA,0DAAA,EAAI;QAAAA,oDAAA,SAAC;QAC5JA,0DAD4J,EAAO,EAAQ,EACrK;QACNA,wDAAA,KAAAs5B,gCAAA,iBAA4B;QAgB5Bt5B,4DAAA,SAAG;QAAAA,oDAAA,wBAAgB;QAAAA,4DAAA,YAAgC;QAAAA,oDAAA,YAAI;QAAAA,0DAAA,EAAI;QAACA,oDAAA,0BAAiB;QAAAA,0DAAA,EAAI;QACjFA,wDAAA,KAAAu5B,wCAAA,yBAAgC;QAMlCv5B,0DAAA,EAAS;;;QA1BOA,uDAAA,GAAyB;QAAzBA,8DAAA,YAAAsB,GAAA,CAAAu3B,WAAA,CAAyB;QAGjC74B,uDAAA,GAAoB;QAApBA,wDAAA,SAAAsB,GAAA,CAAAw3B,cAAA,CAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACCwD;AACI;AACH;AAc6B;;;;;;;;;;;;;;AAM5G,MAAOpiC,eAAgB,SAAQ6e,0HAA4B;EAE/D9b,YACYsT,4BAA0D,EAC1D7E,MAAc,EACdD,KAAqB,EACrBuN,gBAAqC,EACrCxI,YAA0B,EAC1BnT,WAAwB,EACxBoT,WAAwB,EACxB7E,aAA4B,EAC5BD,cAA8B,EAC9BzO,cAA8B,EAC9BwT,eAAgC,EAChCJ,mBAAwC,EACxCxE,iBAAoC,EACpCmN,sBAA8C,EAC9CC,wBAAkD,EAClDjN,kBAAsC;IAEhD,KAAK,CACHsE,4BAA4B,EAC5B7E,MAAM,EACND,KAAK,EACLuN,gBAAgB,EAChBxI,YAAY,EACZnT,WAAW,EACXoT,WAAW,EACX7E,aAAa,EACbD,cAAc,EACdzO,cAAc,EACdwT,eAAe,EACfJ,mBAAmB,EACnBxE,iBAAiB,EACjBmN,sBAAsB,EACtBC,wBAAwB,EACxBjN,kBAAkB,CAAC;IAjCX,KAAAsE,4BAA4B,GAA5BA,4BAA4B;IAC5B,KAAA7E,MAAM,GAANA,MAAM;IACN,KAAAD,KAAK,GAALA,KAAK;IACL,KAAAuN,gBAAgB,GAAhBA,gBAAgB;IAChB,KAAAxI,YAAY,GAAZA,YAAY;IACZ,KAAAnT,WAAW,GAAXA,WAAW;IACX,KAAAoT,WAAW,GAAXA,WAAW;IACX,KAAA7E,aAAa,GAAbA,aAAa;IACb,KAAAD,cAAc,GAAdA,cAAc;IACd,KAAAzO,cAAc,GAAdA,cAAc;IACd,KAAAwT,eAAe,GAAfA,eAAe;IACf,KAAAJ,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAAxE,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAmN,sBAAsB,GAAtBA,sBAAsB;IACtB,KAAAC,wBAAwB,GAAxBA,wBAAwB;IACxB,KAAAjN,kBAAkB,GAAlBA,kBAAkB;IAoB5B,IAAI,CAACkN,QAAQ,GAAG;MACdC,QAAQ,EAAE,IAAI;MACdC,kBAAkB,EAAE,KAAK;MAEzBC,oBAAoB,EAAEhO,+EAAe,CAACpL,+BAA+B;MACrEqZ,mBAAmB,EAAEjO,+EAAe,CAACzL,0BAA0B;MAC/D2Z,qBAAqB,EAAE,EAAE;MAEzBC,iBAAiB,EAAEA,CAAC5M,QAAQ,EAAE6M,eAAe,KAAKA,eAAe,EAAEC,OAAO;MAC1EC,gBAAgB,EAAEA,CAAC/M,QAAQ,EAAE6M,eAAe,KAAK,EAAE;MACnDG,kBAAkB,EAAEA,CAAChN,QAAQ,EAAE6M,eAAe,KAAK,EAAE;MAErDI,cAAc,EAAEA,CAACjN,QAAQ,EAAE6M,eAAe,KAAK,CAAC,CAACA,eAAe,EAAEC,OAAO;MACzEI,aAAa,EAAEA,CAAClN,QAAQ,EAAE6M,eAAe,KAAK,IAAI;MAElDM,kBAAkB,EAAEA,CAACC,WAAW,EAAEC,UAAU,KAAKA,UAAU;MAE3DC,oBAAoB,EAAEA,CAACjN,KAAK,EAAEwM,eAAe,EAAEO,WAAW,EAAEC,UAAU,KAAKD,WAAW,GAAGP,eAAe,EAAEsD,iBAAiB,GAAI9C,UAAU,GAAGhN,KAAK,CAACP,EAAE,GAAG,EAAG;MAC1JyN,gCAAgC,EAAEA,CAAClN,KAAK,EAAEwM,eAAe,EAAEO,WAAW,EAAEC,UAAU,KAAK,EAAE;MAEzFI,gBAAgB,EAAEA,CAAA,KAAM,IAAI,CAACwP,UAAU,EAAE;MACzCvP,iBAAiB,EAAEA,CAAA,KAAM,IAAI,CAACuP,UAAU,CAAC,IAAI,CAAC;MAE9CtP,mBAAmB,EAAEvK,qEAAU,CAACwK,QAAQ,CAACwiB,oBAAoB;MAC7DtiB,iBAAiB,EAAE,IAAImJ,GAAG,CAAqC,CAC7D,CAACyR,0FAAuB,CAACoB,oBAAoB,EAAE;QAAEnV,SAAS,EAAE;MAAwB,CAAE,CAAC,CACxF,CAAC;MAEF5G,8BAA8B,EAAE9d,4EAAY,CAAC4C,eAAe,CAACw9B,2BAA2B;MACxFriB,2BAA2B,EAAE/d,4EAAY,CAAC4C,eAAe,CAACy9B,yBAAyB;MAEnFriB,iBAAiB,EAAExF,6EAAkB,CAACmF,QAAQ,CAAC2iB;KAChD;EACH;EAAC,QAAA9gC,CAAA;qBAvEUpC,eAAe,EAAAsJ,gEAAA,CAAA7G,kGAAA,GAAA6G,gEAAA,CAAAG,oDAAA,GAAAH,gEAAA,CAAAG,4DAAA,GAAAH,gEAAA,CAAAK,+DAAA,GAAAL,gEAAA,CAAAO,iEAAA,GAAAP,gEAAA,CAAA0L,mDAAA,GAAA1L,gEAAA,CAAA0L,mDAAA,GAAA1L,gEAAA,CAAA0L,qDAAA,GAAA1L,gEAAA,CAAA0L,sDAAA,GAAA1L,gEAAA,CAAA2L,sEAAA,GAAA3L,gEAAA,CAAA6L,wEAAA,GAAA7L,gEAAA,CAAA+L,gFAAA,GAAA/L,gEAAA,CAAAmR,4EAAA,GAAAnR,gEAAA,CAAAoR,uFAAA,GAAApR,gEAAA,CAAA0X,4FAAA,GAAA1X,gEAAA,CAAA4X,+EAAA;EAAA;EAAA,QAAA7e,EAAA;UAAfrC,eAAe;IAAAqK,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAA04B,yBAAAx4B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QC7B5BrB,6DAAA,iCAUqD;QAA5BA,yDALA,wBAAA85B,uEAAAztB,MAAA;UAAA,OAAc/K,GAAA,CAAA6M,UAAA,CAAA9B,MAAA,CAAkB;QAAA,EAAC,2BAAA0tB,0EAAA1tB,MAAA;UAAA,OAChB/K,GAAA,CAAAgN,YAAA,CAAAjC,MAAA,CAAoB;QAAA,EAAC,4BAAA2tB,2EAAA3tB,MAAA;UAAA,OACpB/K,GAAA,CAAA8O,eAAA,CAAA/D,MAAA,CAAuB;QAAA,EAAC,iCAAA4tB,gFAAA5tB,MAAA;UAAA,OACnB/K,GAAA,CAAAuI,mBAAA,CAAAwC,MAAA,CAA2B;QAAA,EAAC,oBAAA6tB,mEAAA7tB,MAAA;UAAA,OACzC/K,GAAA,CAAAkN,IAAA,CAAAnC,MAAA,CAAY;QAAA,EAAC,sBAAA8tB,qEAAA9tB,MAAA;UAAA,OACX/K,GAAA,CAAAkI,MAAA,CAAA6C,MAAA,CAAc;QAAA,EAAC;QACpDrM,2DAAA,EAA0B;;;QAPDA,yDAJA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF,aAAAlL,GAAA,CAAA6H,EAAA,CACR;;;;;;;;;;;;;;;;;;;;;;;;;ACF6C;;;;AAQ/E,MAAOrS,qCAAqC;EAIhD2C,YACUC,cAA8B;IAA9B,KAAAA,cAAc,GAAdA,cAAc;EACxB;EAEAU,QAAQA,CAAA;IACN,IAAI,CAACoE,4BAA4B,GAAG,IAAI,CAAC9E,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACiF,4BAA4B,CAAC;EAC9G;EAAC,QAAA1F,CAAA;qBAVUhC,qCAAqC,EAAAkJ,+DAAA,CAAA7G,sEAAA;EAAA;EAAA,QAAAJ,EAAA;UAArCjC,qCAAqC;IAAAiK,SAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAi5B,+CAAA/4B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCVlDrB,4DAAA,SAAI;QAAAA,oDAAA,kDAA2C;QAAAA,0DAAA,EAAK;QACpDA,4DAAA,aAAQ;QACNA,uDAAA,aACM;QACRA,0DAAA,EAAS;;;QAFaA,uDAAA,GAA0C;QAA1CA,wDAAA,cAAAsB,GAAA,CAAA9C,4BAAA,EAAAwB,4DAAA,CAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACC1B;AAEkD;AAEyK;AAC1L;AACP;AACC;AAYc;;;;;;;;;;AAMzE,MAAO9J,yBAA0B,SAAQ8R,uFAAgD;EAM7FvO,YACYwO,KAAqB,EACrBC,MAAc,EACdC,cAA8B,EAC9BC,aAA4B,EAC5BC,qBAA4C,EAC5CC,iBAAoC,EACpC5O,cAA8B,EAChC6O,kBAAsC,EACtCC,kBAAsC,EACtCC,kBAAsC;IAE9C,KAAK,CACHR,KAAK,EACLC,MAAM,EACNC,cAAc,EACdC,aAAa,EACbC,qBAAqB,EACrBC,iBAAiB,EACjB5O,cAAc,CAAC;IAlBP,KAAAuO,KAAK,GAALA,KAAK;IACL,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAC,cAAc,GAAdA,cAAc;IACd,KAAAC,aAAa,GAAbA,aAAa;IACb,KAAAC,qBAAqB,GAArBA,qBAAqB;IACrB,KAAAC,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAA5O,cAAc,GAAdA,cAAc;IAChB,KAAA6O,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAC,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAC,kBAAkB,GAAlBA,kBAAkB;IAd5B,KAAAC,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAC,UAAU,GAAWb,qEAAS,CAACsyB,gBAAgB;IAuB7C,IAAI,CAACvxB,UAAU,CACb,CAACpB,wEAAa,CAAC4yB,oBAAoB,CAACC,aAAa,EAAE5yB,sEAAW,CAAC2yB,oBAAoB,CAACC,aAAa,CAAC,EAClG,MAAMjhC,4EAAY,CAAC2P,SAAS,CAACuxB,gBAAgB,EAC7C;MACEloB,aAAa,EAAEA,CAAA,KAAMP,yEAAc,CAAC0oB,gBAAgB;MACpDjoB,WAAW,EAAE,CAAC9K,wEAAa,CAAC4yB,oBAAoB,CAACC,aAAa,EAAE5yB,sEAAW,CAAC2yB,oBAAoB,CAACC,aAAa,EAAE7tB,uEAAY,CAAC4tB,oBAAoB,CAACjiC,YAAY,CAAC;MAC/Joa,kBAAkB,EAAE7K,wEAAa,CAAC0yB,oBAAoB,CAACI,kBAAkB;MACzE/nB,kBAAkB,EAAE/K,wEAAa,CAAC0yB,oBAAoB,CAACK,kBAAkB;MACzE9nB,sBAAsB,EAAE,CAAC,QAAQ,CAAC;MAClCC,0BAA0B,EAAEA,CAACC,WAAgB,EAAEC,WAAgB,MAAM;QACnEC,UAAU,EAAEF,WAAW;QACvBG,MAAM,EAAEF,WAAW,GAAGnB,8EAAmB,CAACyoB,oBAAoB,CAACM,wBAAwB;OACxF,CAAC;MACFpnB,uBAAuB,EAAEA,CAAA,MAAO;QAC9BN,MAAM,EAAEtB,iFAAsB,CAAC0oB,oBAAoB,CAACM;OACrD;KACF,CAAC;EACN;EAEAxgC,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACqK,aAAa,CAACC,uBAAuB,EAAE;EAC9C;EAEAjK,QAAQA,CAACC,KAAU;IACjB,IAAI,CAACE,sBAAsB,CAAC,IAAI,CAAC6J,aAAa,CAACE,uBAAuB,EAAE,CAAC;IACzE,IAAI,IAAI,CAACF,aAAa,CAACG,2BAA2B,CAAC,IAAI,CAACH,aAAa,CAACE,uBAAuB,EAAE,CAAC,EAAE;MAChG,IAAI,CAACrL,iBAAiB,CAACuL,kBAAkB,CAAC7B,sEAAW,EAAEF,6EAAkB,CAACwoB,oBAAoB,CAACG,gBAAgB,EAAExoB,+EAAoB,CAACqoB,oBAAoB,CAAC;;EAE/J;EAEAxmB,UAAUA,CAACpK,KAAU;IACnB,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAAC0yB,oBAAoB,CAACI,kBAAkB;MAC1D,KAAK9yB,wEAAa,CAAC0yB,oBAAoB,CAACK,kBAAkB;QAAE;UAC1D,IAAI,CAAC5vB,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACM,iBAAiB,CAACrK,KAAK,CAACsK,MAAM,CAAC,CAAC;UACrE;;;EAGN;EAEAC,mBAAmBA,CAACvK,KAAU;IAC5B;EAAA;EAGFG,mBAAmBA,CAACH,KAAU;IAC5B,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAAC0yB,oBAAoB,CAACO,uBAAuB;QAAE;UAC/D,QAAQnxB,KAAK,CAACA,KAAK,CAACO,IAAI;YACtB,KAAKxC,sEAAW,CAAC6yB,oBAAoB,CAACpwB,IAAI;YAC1C,KAAKzC,sEAAW,CAAC6yB,oBAAoB,CAACnwB,IAAI;cAAE;gBAC1C,IAAI,CAACjC,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC8C,YAAY,CAACR,MAAM,EAAE6R,KAAK,CAACA,KAAK,CAACW,IAAI,CAAClB,EAAE,CAAC,CAAC;gBACpF;;YAEF,KAAK1B,sEAAW,CAAC6yB,oBAAoB,CAAClmB,MAAM;cAAE;gBAC5C,QAAQ1K,KAAK,CAACA,KAAK,CAACW,IAAI,CAACgK,UAAU;kBACjC,KAAK1C,4EAAiB,CAAC2oB,oBAAoB,CAAChmB,GAAG;oBAAE;sBAC/C,IAAI,CAACpM,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC8C,YAAY,CAACR,MAAM,CAAC,CAAC;sBAC/D;;kBAEF,KAAK8Z,4EAAiB,CAAC2oB,oBAAoB,CAAC/lB,UAAU;oBAAE;sBACtD,MAAMumB,qCAAqC,GAAG,IAAI,CAACC,wCAAwC,EAAE;sBAC7F,IAAI,CAACxyB,kBAAkB,CAACyyB,yBAAyB,CAACF,qCAAqC,CAAC;sBACxF;;kBAEF,KAAKnpB,4EAAiB,CAAC2oB,oBAAoB,CAAC3lB,UAAU;oBAAE;sBACtD,IAAI,CAACsmB,2BAA2B,EAAE;sBAClC;;;gBAGJ;;;UAGJ;;;EAGN;EAEAA,2BAA2BA,CAAA;IACzB,IAAI,CAACzyB,kBAAkB,CAACyyB,2BAA2B,EAAE,CAClDv7B,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAACuQ,iBAAiB,IAAG;MAC7B,IAAI,CAACA,iBAAiB,CAACC,WAAW,EAAE;QAClC,IAAI,CAACC,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACoB,gBAAgB,EAAE,CAAC;;IAE5D,CAAC,CAAC;EACN;EAEQkmB,wCAAwCA,CAAA;IAC9C,MAAMjmB,QAAQ,GAAG,IAAI,CAACC,gBAAgB,CACpC,IAAI,CAACrH,QAAQ,CAACC,KAAK,EACnBjG,wEAAa,CAAC4yB,oBAAoB,CAACC,aAAa,EAChD5yB,sEAAW,CAAC2yB,oBAAoB,CAACC,aAAa,EAC9C7tB,uEAAY,CAAC4tB,oBAAoB,CAACjiC,YAAY,EAC9CuP,wEAAa,CAAC0yB,oBAAoB,CAACO,uBAAuB,CAAC;IAC7D,MAAMrwB,SAAS,GAAGsK,QAAQ,CAACE,GAAG,CAACC,MAAM,IAAIA,MAAM,CAAC9L,EAAE,CAAC;IACnD,MAAM2xB,qCAAqC,GAA8B;MAAEtwB;IAAS,CAAE;IACtF,OAAOswB,qCAAqC;EAC9C;EAAC,QAAAhiC,CAAA;qBA9HU5C,yBAAyB,EAAA8J,gEAAA,CAAA7G,4DAAA,GAAA6G,gEAAA,CAAA7G,oDAAA,GAAA6G,gEAAA,CAAAG,sDAAA,GAAAH,gEAAA,CAAAG,qDAAA,GAAAH,gEAAA,CAAAK,oFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,sEAAA,GAAA1L,gEAAA,CAAA2L,8EAAA,GAAA3L,gEAAA,CAAA6L,8EAAA,GAAA7L,gEAAA,CAAA+L,+EAAA;EAAA;EAAA,QAAAhT,EAAA;UAAzB7C,yBAAyB;IAAA6K,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAA+5B,mCAAA75B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QC5BtCrB,6DAAA,iCAOyD;QAAhCA,yDAHA,wBAAAm7B,iFAAA9uB,MAAA;UAAA,OAAc/K,GAAA,CAAAmI,QAAA,CAAA4C,MAAA,CAAgB;QAAA,EAAC,4BAAA+uB,qFAAA/uB,MAAA;UAAA,OACb/K,GAAA,CAAA2S,mBAAA,CAAA5H,MAAA,CAA2B;QAAA,EAAC,iCAAAgvB,0FAAAhvB,MAAA;UAAA,OACvB/K,GAAA,CAAAuI,mBAAA,CAAAwC,MAAA,CAA2B;QAAA,EAAC,sBAAAivB,+EAAAjvB,MAAA;UAAA,OACvC/K,GAAA,CAAAwS,UAAA,CAAAzH,MAAA,CAAkB;QAAA,EAAC;QACxDrM,2DAAA,EAA0B;;;QALDA,yDAHA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACApB;AAEsF;AAE0B;AACpD;AACvB;AACS;AAayB;;;;;;;;;;;AAM7F,MAAOpW,qBAAsB,SAAQyW,6FAAmB;EAoB5DpT,YACY2O,aAA4B,EAC5B1O,cAA8B,EAC9BoT,mBAAwC,EACxCxE,iBAAoC,EACpCyE,4BAA0D,EAC1D7E,MAAc,EAChBD,KAAqB,EACrB+E,YAA0B,EAC1BnT,WAAwB,EACxBoT,WAAwB,EACxB9E,cAA8B,EAC9B+E,eAAgC,EAChCzE,kBAAsC;IAE9C,KAAK,CAACL,aAAa,EAAE1O,cAAc,EAAEoT,mBAAmB,EAAExE,iBAAiB,EAAEyE,4BAA4B,EAAE7E,MAAM,CAAC;IAdxG,KAAAE,aAAa,GAAbA,aAAa;IACb,KAAA1O,cAAc,GAAdA,cAAc;IACd,KAAAoT,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAAxE,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAyE,4BAA4B,GAA5BA,4BAA4B;IAC5B,KAAA7E,MAAM,GAANA,MAAM;IACR,KAAAD,KAAK,GAALA,KAAK;IACL,KAAA+E,YAAY,GAAZA,YAAY;IACZ,KAAAnT,WAAW,GAAXA,WAAW;IACX,KAAAoT,WAAW,GAAXA,WAAW;IACX,KAAA9E,cAAc,GAAdA,cAAc;IACd,KAAA+E,eAAe,GAAfA,eAAe;IACf,KAAAzE,kBAAkB,GAAlBA,kBAAkB;IA/B5B,KAAAC,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAQ,EAAE,GAAG,EAAE;IACP,KAAAI,mBAAmB,GAAWzB,+EAAe,CAAC3M,aAAa;IAC3D,KAAAyN,UAAU,GAAWb,qEAAS,CAAC1P,YAAY;IAC3C,KAAAmU,SAAS,GAAWI,oEAAQ,CAACO,MAAM;IAEnC,KAAAE,OAAO,GAAG,KAAK;IAEP,KAAA8M,oBAAoB,GAAG,IAAI;IAK3B,KAAAuG,6BAA6B,GAAG;MACtC6a,eAAe,EAAE;KAClB;IAmBC,IAAI,CAACra,oBAAoB,GAAG;MAC1B,CAAC,IAAI,CAACR,6BAA6B,CAAC6a,eAAe,GAAG,IAAIxb,sFAAY;KACvE;EACH;EAEA3lB,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACnB,KAAK,CAACoB,QAAQ,CAAC/O,SAAS,CAAE+O,QAAkB,IAAI;MACnD,MAAMF,EAAE,GAAGE,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAC;MAC7B,IAAIH,EAAE,EAAE;QACN,IAAI,CAACA,EAAE,GAAGA,EAAE;QACZ,IAAI,CAACI,mBAAmB,GAAGzB,+EAAe,CAACtM,gCAAgC;QAC3E,IAAI,CAAC6R,OAAO,GAAG,IAAI;;IAEvB,CAAC,CAAC;IAEF,MAAMmuB,wBAAwB,GAAIhuB,YAAoB,IAAK,IAAI,CAACN,eAAe,CAACuuB,wCAAwC,CAAC,IAAI,CAAC/tB,QAAQ,CAACC,KAAK,EAAEH,YAAY,CAAC;IAC3J,MAAMkuB,iCAAiC,GAAIluB,YAAoB,IAAK,IAAI,CAACN,eAAe,CAACyuB,iDAAiD,CAAC,IAAI,CAACjuB,QAAQ,CAACC,KAAK,EAAEH,YAAY,CAAC;IAC7K,MAAM8M,yBAAyB,GAAI9M,YAAoB,IAAK,IAAI,CAACN,eAAe,CAAC0uB,yCAAyC,CAAC,IAAI,CAACluB,QAAQ,CAACC,KAAK,EAAEH,YAAY,CAAC;IAE7J,IAAI,CAAC3T,WAAW,CAACyD,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,MACtD,IAAI,CAAC+P,OAAO;IAEd,IAAI,CAACxT,WAAW,CAACyD,kBAAkB,CAAC,+BAA+B,CAAC,GAAG,CAACiQ,SAAiB,EAAEC,YAAoB,KAC7GguB,wBAAwB,CAAChuB,YAAY,CAAC;IAExC,IAAI,CAAC3T,WAAW,CAACyD,kBAAkB,CAAC,wCAAwC,CAAC,GAAG,CAACiQ,SAAiB,EAAEC,YAAoB,KACtH,IAAI,CAACquB,kCAAkC,IACvCH,iCAAiC,CAACluB,YAAY,CAAC;IAEjD,IAAI,CAAC3T,WAAW,CAACyD,kBAAkB,CAAC,yCAAyC,CAAC,GAAG,MAC/E,IAAI,CAACu+B,kCAAkC;IAEzC,IAAI,CAAChiC,WAAW,CAACyD,kBAAkB,CAAC,gCAAgC,CAAC,GAAG,CAACiQ,SAAiB,EAAEC,YAAoB,KAC9G,IAAI,CAACsuB,0BAA0B,IAC/BxhB,yBAAyB,CAAC9M,YAAY,CAAC;IAEzC,IAAI,CAAC3T,WAAW,CAACyD,kBAAkB,CAAC,uBAAuB,CAAC,GAAI+kB,IAAc,IAAK,IAAI,CAACC,sBAAsB,CAACD,IAAI,CAAC,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhI,IAAI,CAACxoB,WAAW,CAACwD,oBAAoB,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,CAACwQ,cAAc;IAC5E,IAAI,CAAChU,WAAW,CAACwD,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAACmM,MAAM,CAAC,IAAI,CAAC;IAEzE,IAAI,CAAC0D,eAAe,CAAC6uB,iCAAiC,CACpD,MAAM,IAAI,CAACruB,QAAQ,CAACK,MAAM,EAC1B,MAAM,IAAI,CAACF,cAAc,EACzB,MAAM,IAAI,CAACR,OAAO,EACjBW,OAAgB,IAAK,IAAI,CAACmM,oBAAoB,GAAGnM,OAAO,EACzD,MAAM,IAAI,CAACmM,oBAAoB,CAAC;IAElC,IAAI,CAACjN,eAAe,CAAC8uB,6CAA6C,CAChE,MAAM,IAAI,CAACnZ,4BAA4B,CAAC,IAAI,CAACnC,6BAA6B,CAAC6a,eAAe,CAAC,CAAC;IAE9F,IAAI,CAACruB,eAAe,CAAC+uB,yCAAyC,CAC5D,MAAM,IAAI,CAACpuB,cAAc,EACzB,MAAM,IAAI,CAACguB,kCAAkC,EAC7C,MAAM,IAAI,CAACC,0BAA0B,EACpCtuB,YAAoB,IAAK8M,yBAAyB,CAAC9M,YAAY,CAAC,CAAC;EACtE;EAEAW,UAAUA,CAACzE,KAAU;IACnB,IAAI,CAACmE,cAAc,GAAG,CAAC,CAACnE,KAAK,EAAEmE,cAAc;IAC7C,IAAI,CAAC,IAAI,CAACA,cAAc,EAAE;MACxB;MACA,IAAI,CAACsM,oBAAoB,GAAG,KAAK;MAEjC;MACA,IAAI,CAAC0I,4BAA4B,CAAC,IAAI,CAACnC,6BAA6B,CAAC6a,eAAe,CAAC;;IAGvF,IAAI,CAAC5xB,2CAA2C,CAAC9B,0FAA+B,CAACq0B,gBAAgB,CAAC;IAElG,IAAI,CAACL,kCAAkC,GAAGnyB,KAAK,CAACmyB,kCAAkC;IAClF,IAAI,CAACC,0BAA0B,GAAGpyB,KAAK,CAACoyB,0BAA0B;IAElE,IAAI,CAACztB,yBAAyB,CAAC3E,KAAK,CAAC;EACvC;EAEA8E,IAAIA,CAAC9E,KAAU;IACb,MAAM+E,eAAe,GAAgB;MACnCtN,QAAQ,EAAE,IAAI,CAACyH,UAAU;MACzB8F,aAAa,EAAE,IAAI,CAAClC,SAAS;MAC7BrD,EAAE,EAAE,IAAI,CAACA,EAAE;MACXxJ,QAAQ,EAAE+J,KAAK,CAACiE,KAAK;MACrBgB,sBAAsB,EAAEjF,KAAK,CAACkF,eAAe;MAC7CC,QAAQ,EAAE;KACX;IACD,IAAI,CAACnF,KAAK,CAACoF,WAAW,EAAE;MACtB,IAAI,CAACpB,QAAQ,CAACqB,sBAAsB,EAAE;MACtC,IAAI,CAAC,IAAI,CAACrB,QAAQ,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEiB,WAAW,CAACC,KAAK,EAAE;QAC/C,IAAI,CAACvB,QAAQ,CAACwB,qBAAqB,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC9G,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC2C,MAAM,CAACC,eAAe,CAAC;OACjE,MACI;QACH,IAAI,CAACC,QAAQ,CAACb,eAAe,CAAC;;KAEjC,MACI;MACH,IAAI,CAACa,QAAQ,CAACb,eAAe,CAAC;;EAElC;EAEQa,QAAQA,CAACC,OAAoB;IACnC,IAAI,CAACpH,cAAc,CAACqH,WAAW,EAAE;IACjC,IAAI,CAACvC,WAAW,CAACqC,QAAQ,CAAChW,4EAAY,CAACjB,YAAY,CAACmW,IAAI,EAAEe,OAAO,CAAC,CAC/D7P,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAE+P,IAAgB,IAAI;MAC9B,IAAI,CAAClC,cAAc,CAACuH,WAAW,EAAE;MACjC,IAAI,IAAI,CAACC,cAAc,CAACJ,OAAO,EAAElF,IAAI,EAAEuF,CAAC,IAAI,IAAI,CAACN,QAAQ,CAACM,CAAC,CAAC,CAAC,EAAE;QAC7D;;MAEF,IAAIjD,gFAAqB,CAACwvB,gBAAgB,CAACrsB,QAAQ,CAACzF,IAAI,CAAC0F,OAAO,CAAC,EAAE;QACjE,IAAI,CAACC,YAAY,GAAG3F,IAAI,CAAC0F,OAAO;OACjC,MACI;QACH,IAAI,CAAC5G,EAAE,GAAGkB,IAAI,CAAClB,EAAE;QACjB,IAAI,CAAC6G,YAAY,GAAGvD,qEAAU,CAACyvB,gBAAgB,CAACjsB,cAAc;;MAEhE,IAAI,CAACnD,mBAAmB,CAACqC,UAAU,CAAC,IAAI,CAACa,YAAY,EAAE,IAAI,EAAE3F,IAAI,CAAC6F,OAAO,CAAC;IAC5E,CAAC,CAAC;EACN;EAEA1G,MAAMA,CAACE,KAAU;IACf,IAAI,CAAC0yB,uBAAuB,EAAE;EAChC;EAEAhsB,eAAeA,CAAC1G,KAAU;IACxB,IAAI,IAAI,CAACsG,YAAY,KAAKvD,qEAAU,CAACyvB,gBAAgB,CAACjsB,cAAc,EAAE;MACpE,IAAI,CAACmsB,uBAAuB,CAAC,IAAI,CAAC;;EAEtC;EAEQA,uBAAuBA,CAACvrB,oBAAoB,GAAG,KAAK;IAC1D,IAAI,CAAC3F,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC8C,YAAY,CAACT,IAAI,CAAC,EAAEiZ,oBAAoB,CAAC;EAC9E;EAAC,QAAA/X,CAAA;qBA3KU1C,qBAAqB,EAAA4J,gEAAA,CAAA7G,qDAAA,GAAA6G,gEAAA,CAAAG,sEAAA,GAAAH,gEAAA,CAAAK,gFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,kGAAA,GAAA1L,gEAAA,CAAA2L,oDAAA,GAAA3L,gEAAA,CAAA2L,4DAAA,GAAA3L,gEAAA,CAAA6L,iEAAA,GAAA7L,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA7G,sDAAA,GAAA6G,gEAAA,CAAA+L,yEAAA,GAAA/L,gEAAA,CAAAmR,+EAAA;EAAA;EAAA,QAAApY,EAAA;UAArB3C,qBAAqB;IAAA2K,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAk7B,+BAAAh7B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QC7BlCrB,6DAAA,iCAQqD;QAA5BA,yDAHA,wBAAAs8B,6EAAAjwB,MAAA;UAAA,OAAc/K,GAAA,CAAA6M,UAAA,CAAA9B,MAAA,CAAkB;QAAA,EAAC,4BAAAkwB,iFAAAlwB,MAAA;UAAA,OACf/K,GAAA,CAAA8O,eAAA,CAAA/D,MAAA,CAAuB;QAAA,EAAC,oBAAAmwB,yEAAAnwB,MAAA;UAAA,OAChC/K,GAAA,CAAAkN,IAAA,CAAAnC,MAAA,CAAY;QAAA,EAAC,sBAAAowB,2EAAApwB,MAAA;UAAA,OACX/K,GAAA,CAAAkI,MAAA,CAAA6C,MAAA,CAAc;QAAA,EAAC;QACpDrM,2DAAA,EAA0B;;;QALDA,yDAJA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF,aAAAlL,GAAA,CAAA6H,EAAA,CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDF;AAEkD;AAEyK;AAC1L;AACP;AACC;AAYc;;;;;;;;;;AAMzE,MAAOnT,0BAA2B,SAAQgS,uFAAiD;EAM/FvO,YACYwO,KAAqB,EACrBC,MAAc,EACdC,cAA8B,EAC9BC,aAA4B,EAC5BC,qBAA4C,EAC5CC,iBAAoC,EACpC5O,cAA8B,EAChC6O,kBAAsC,EACtCC,kBAAsC,EACtCC,kBAAsC;IAE9C,KAAK,CACHR,KAAK,EACLC,MAAM,EACNC,cAAc,EACdC,aAAa,EACbC,qBAAqB,EACrBC,iBAAiB,EACjB5O,cAAc,CAAC;IAlBP,KAAAuO,KAAK,GAALA,KAAK;IACL,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAC,cAAc,GAAdA,cAAc;IACd,KAAAC,aAAa,GAAbA,aAAa;IACb,KAAAC,qBAAqB,GAArBA,qBAAqB;IACrB,KAAAC,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAA5O,cAAc,GAAdA,cAAc;IAChB,KAAA6O,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAC,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAC,kBAAkB,GAAlBA,kBAAkB;IAd5B,KAAAC,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAC,UAAU,GAAWb,qEAAS,CAAC20B,iBAAiB;IAuB9C,IAAI,CAAC5zB,UAAU,CACb,CAACpB,wEAAa,CAACi1B,qBAAqB,CAACvkC,aAAa,EAAEuP,sEAAW,CAACg1B,qBAAqB,CAACvkC,aAAa,CAAC,EACpG,MAAMkB,4EAAY,CAAC2P,SAAS,CAAC2zB,0BAA0B,EACvD;MACEtqB,aAAa,EAAEA,CAAA,KAAMP,yEAAc,CAAC8qB,iBAAiB;MACrDrqB,WAAW,EAAE,CAAC9K,wEAAa,CAACi1B,qBAAqB,CAACvkC,aAAa,EAAEuP,sEAAW,CAACg1B,qBAAqB,CAACvkC,aAAa,EAAEsU,uEAAY,CAACiwB,qBAAqB,CAACpiC,MAAM,CAAC;MAC5JkY,kBAAkB,EAAE7K,wEAAa,CAAC+0B,qBAAqB,CAACG,mBAAmB;MAC3EnqB,kBAAkB,EAAE/K,wEAAa,CAAC+0B,qBAAqB,CAACI,mBAAmB;MAC3ElqB,sBAAsB,EAAE,CAAC,QAAQ,CAAC;MAClCC,0BAA0B,EAAEA,CAACC,WAAgB,EAAEC,WAAgB,MAAM;QACnEC,UAAU,EAAEF,WAAW;QACvBG,MAAM,EAAEF,WAAW,GAAGnB,8EAAmB,CAAC8qB,qBAAqB,CAACK,yBAAyB;OAC1F,CAAC;MACFxpB,uBAAuB,EAAEA,CAAA,MAAO;QAC9BN,MAAM,EAAEtB,iFAAsB,CAAC+qB,qBAAqB,CAACK;OACtD;KACF,CAAC;EACN;EAEA5iC,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACqK,aAAa,CAACC,uBAAuB,EAAE;EAC9C;EAEAjK,QAAQA,CAACC,KAAU;IACjB,IAAI,CAACE,sBAAsB,CAAC,IAAI,CAAC6J,aAAa,CAACE,uBAAuB,EAAE,CAAC;IACzE,IAAI,IAAI,CAACF,aAAa,CAACG,2BAA2B,CAAC,IAAI,CAACH,aAAa,CAACE,uBAAuB,EAAE,CAAC,EAAE;MAChG,IAAI,CAACrL,iBAAiB,CAACuL,kBAAkB,CAAC7B,sEAAW,EAAEF,6EAAkB,CAAC6qB,qBAAqB,CAACE,iBAAiB,EAAE5qB,+EAAoB,CAAC0qB,qBAAqB,CAAC;;EAElK;EAEA7oB,UAAUA,CAACpK,KAAU;IACnB,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAAC+0B,qBAAqB,CAACG,mBAAmB;MAC5D,KAAKl1B,wEAAa,CAAC+0B,qBAAqB,CAACI,mBAAmB;QAAE;UAC5D,IAAI,CAAChyB,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACM,iBAAiB,CAACrK,KAAK,CAACsK,MAAM,CAAC,CAAC;;;EAG3E;EAEAC,mBAAmBA,CAACvK,KAAU;IAC5B;EAAA;EAGFG,mBAAmBA,CAACH,KAAU;IAC5B,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAAC+0B,qBAAqB,CAACM,wBAAwB;QAAE;UACjE,QAAQvzB,KAAK,CAACA,KAAK,CAACO,IAAI;YACtB,KAAKxC,sEAAW,CAACk1B,qBAAqB,CAACzyB,IAAI;YAC3C,KAAKzC,sEAAW,CAACk1B,qBAAqB,CAACxyB,IAAI;cAAE;gBAC3C,IAAI,CAACjC,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC6C,aAAa,CAACP,MAAM,EAAE6R,KAAK,CAACA,KAAK,CAACW,IAAI,CAAClB,EAAE,CAAC,CAAC;gBACrF;;YAEF,KAAK1B,sEAAW,CAACk1B,qBAAqB,CAACvoB,MAAM;cAAE;gBAC7C,QAAQ1K,KAAK,CAACA,KAAK,CAACW,IAAI,CAACgK,UAAU;kBACjC,KAAK1C,4EAAiB,CAACgrB,qBAAqB,CAACroB,GAAG;oBAAE;sBAChD,IAAI,CAACpM,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC6C,aAAa,CAACP,MAAM,CAAC,CAAC;sBAChE;;kBAEF,KAAK8Z,4EAAiB,CAACgrB,qBAAqB,CAACpoB,UAAU;oBAAE;sBACvD,MAAM2oB,sCAAsC,GAAG,IAAI,CAACC,yCAAyC,EAAE;sBAC/F,IAAI,CAAC50B,kBAAkB,CAAC60B,yBAAyB,CAACF,sCAAsC,CAAC;sBACzF;;kBAEF,KAAKvrB,4EAAiB,CAACgrB,qBAAqB,CAAChoB,UAAU;oBAAE;sBACvD,IAAI,CAAC0oB,2BAA2B,EAAE;sBAClC;;;gBAGJ;;;UAGJ;;;EAGN;EAEAA,2BAA2BA,CAAA;IACzB,IAAI,CAAC70B,kBAAkB,CAAC60B,2BAA2B,EAAE,CAClD39B,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAACuQ,iBAAiB,IAAG;MAC7B,IAAI,CAACA,iBAAiB,CAACC,WAAW,EAAE;QAClC,IAAI,CAACC,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACoB,gBAAgB,EAAE,CAAC;;IAE5D,CAAC,CAAC;EACN;EAEQsoB,yCAAyCA,CAAA;IAC/C,MAAMroB,QAAQ,GAAG,IAAI,CAACC,gBAAgB,CACpC,IAAI,CAACrH,QAAQ,CAACC,KAAK,EACnBjG,wEAAa,CAACi1B,qBAAqB,CAACvkC,aAAa,EACjDuP,sEAAW,CAACg1B,qBAAqB,CAACvkC,aAAa,EAC/CsU,uEAAY,CAACiwB,qBAAqB,CAACpiC,MAAM,EACzCqN,wEAAa,CAAC+0B,qBAAqB,CAACM,wBAAwB,CAAC;IAC/D,MAAMzyB,SAAS,GAAGsK,QAAQ,CAACE,GAAG,CAACC,MAAM,IAAIA,MAAM,CAAC9L,EAAE,CAAC;IACnD,MAAM+zB,sCAAsC,GAA8B;MAAE1yB;IAAS,CAAE;IACvF,OAAO0yB,sCAAsC;EAC/C;EAAC,QAAApkC,CAAA;qBA7HU9C,0BAA0B,EAAAgK,gEAAA,CAAA7G,4DAAA,GAAA6G,gEAAA,CAAA7G,oDAAA,GAAA6G,gEAAA,CAAAG,sDAAA,GAAAH,gEAAA,CAAAG,qDAAA,GAAAH,gEAAA,CAAAK,oFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,sEAAA,GAAA1L,gEAAA,CAAA2L,8EAAA,GAAA3L,gEAAA,CAAA6L,8EAAA,GAAA7L,gEAAA,CAAA+L,+EAAA;EAAA;EAAA,QAAAhT,EAAA;UAA1B/C,0BAA0B;IAAA+K,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAm8B,oCAAAj8B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QC5BvCrB,6DAAA,iCAOyD;QAAhCA,yDAHA,wBAAAu9B,kFAAAlxB,MAAA;UAAA,OAAc/K,GAAA,CAAAmI,QAAA,CAAA4C,MAAA,CAAgB;QAAA,EAAC,4BAAAmxB,sFAAAnxB,MAAA;UAAA,OACb/K,GAAA,CAAA2S,mBAAA,CAAA5H,MAAA,CAA2B;QAAA,EAAC,iCAAAoxB,2FAAApxB,MAAA;UAAA,OACvB/K,GAAA,CAAAuI,mBAAA,CAAAwC,MAAA,CAA2B;QAAA,EAAC,sBAAAqxB,gFAAArxB,MAAA;UAAA,OACvC/K,GAAA,CAAAwS,UAAA,CAAAzH,MAAA,CAAkB;QAAA,EAAC;QACxDrM,2DAAA,EAA0B;;;QALDA,yDAHA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAV;AAE4E;AAE0B;AACpD;AACd;AACT;AAaoB;;;;;;;;;;;AAM/E,MAAO/W,sBAAuB,SAAQoX,6FAAmB;EAe7DpT,YACY2O,aAA4B,EAC5B1O,cAA8B,EAC9BoT,mBAAwC,EACxCxE,iBAAoC,EACpCyE,4BAA0D,EAC1D7E,MAAc,EAChBD,KAAqB,EACrB+E,YAA0B,EAC1BnT,WAAwB,EACxBoT,WAAwB,EACxB9E,cAA8B,EAC9B+E,eAAgC,EAChCzE,kBAAsC;IAC9C,KAAK,CAACL,aAAa,EAAE1O,cAAc,EAAEoT,mBAAmB,EAAExE,iBAAiB,EAAEyE,4BAA4B,EAAE7E,MAAM,CAAC;IAbxG,KAAAE,aAAa,GAAbA,aAAa;IACb,KAAA1O,cAAc,GAAdA,cAAc;IACd,KAAAoT,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAAxE,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAyE,4BAA4B,GAA5BA,4BAA4B;IAC5B,KAAA7E,MAAM,GAANA,MAAM;IACR,KAAAD,KAAK,GAALA,KAAK;IACL,KAAA+E,YAAY,GAAZA,YAAY;IACZ,KAAAnT,WAAW,GAAXA,WAAW;IACX,KAAAoT,WAAW,GAAXA,WAAW;IACX,KAAA9E,cAAc,GAAdA,cAAc;IACd,KAAA+E,eAAe,GAAfA,eAAe;IACf,KAAAzE,kBAAkB,GAAlBA,kBAAkB;IA1B5B,KAAAC,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAQ,EAAE,GAAG,EAAE;IACP,KAAAI,mBAAmB,GAAWzB,+EAAe,CAAC3M,aAAa;IAC3D,KAAAyN,UAAU,GAAWb,qEAAS,CAAC3P,aAAa;IAC5C,KAAAoU,SAAS,GAAWI,oEAAQ,CAACO,MAAM;IAEnC,KAAAE,OAAO,GAAG,KAAK;IAEP,KAAAswB,qBAAqB,GAAG,IAAI;EAmBpC;EAEAvjC,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACnB,KAAK,CAACoB,QAAQ,CAAC/O,SAAS,CAAE+O,QAAkB,IAAI;MACnD,MAAMF,EAAE,GAAGE,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAC;MAC7B,IAAIH,EAAE,EAAE;QACN,IAAI,CAACA,EAAE,GAAGA,EAAE;QACZ,IAAI,CAACI,mBAAmB,GAAGzB,+EAAe,CAACxM,iCAAiC;QAC5E,IAAI,CAAC+R,OAAO,GAAG,IAAI;OACpB,MACI;QACH,IAAI,CAACuU,0BAA0B,EAAE;;IAErC,CAAC,CAAC;IAEF,MAAMgc,iBAAiB,GAAIpwB,YAAoB,IAAK,IAAI,CAACN,eAAe,CAAC2wB,kCAAkC,CAAC,IAAI,CAACnwB,QAAQ,CAACC,KAAK,EAAEH,YAAY,CAAC;IAC9I,MAAMswB,qBAAqB,GAAItwB,YAAoB,IAAK,IAAI,CAACuwB,2BAA2B,CAAC/b,GAAG,CAAC,IAAI,CAAC9U,eAAe,CAAC8wB,8BAA8B,CAAC,IAAI,CAACtwB,QAAQ,CAACC,KAAK,EAAEH,YAAY,CAAC,CAAC;IAEpL,IAAI,CAAC3T,WAAW,CAACyD,kBAAkB,CAAC,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC+P,OAAO;IACrE,IAAI,CAACxT,WAAW,CAACyD,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,CAACiQ,SAAiB,EAAEC,YAAoB,KAAKowB,iBAAiB,CAACpwB,YAAY,CAAC;IAEvI,IAAI,CAAC3T,WAAW,CAACwD,oBAAoB,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,CAACwQ,cAAc;IAC5E,IAAI,CAAChU,WAAW,CAACwD,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAACmM,MAAM,CAAC,IAAI,CAAC;IAEzE,IAAI,CAAC0D,eAAe,CAAC+wB,kCAAkC,CACrD,MAAM,IAAI,CAACvwB,QAAQ,CAACK,MAAM,EAC1B,MAAM,IAAI,CAACF,cAAc,EACzB,MAAM,IAAI,CAACR,OAAO,EACjBW,OAAgB,IAAK,IAAI,CAAC2vB,qBAAqB,GAAG3vB,OAAO,EAC1D,MAAM,IAAI,CAAC2vB,qBAAqB,CAAC;IAEnC,IAAI,CAACzwB,eAAe,CAACgxB,0CAA0C,CAC7D,MAAM,IAAI,CAACrwB,cAAc,EACxBL,YAAoB,IAAK,CAACswB,qBAAqB,CAACtwB,YAAY,CAAC,CAAC;EACnE;EAEAW,UAAUA,CAACzE,KAAU;IACnB,IAAI,CAACmE,cAAc,GAAG,CAAC,CAACnE,KAAK,EAAEmE,cAAc;IAC7C,IAAI,CAAC,IAAI,CAACA,cAAc,EAAE;MACxB;MACA,IAAI,CAAC8vB,qBAAqB,GAAG,KAAK;;IAGpC,IAAI,CAACh0B,2CAA2C,CAAC9B,0FAA+B,CAACs2B,iBAAiB,CAAC;IAEnG,IAAI,CAACJ,2BAA2B,GAAG,IAAI9d,GAAG,CAASvW,KAAK,CAACq0B,2BAA2B,CAAC;IAErF,IAAI,CAAC1vB,yBAAyB,CAAC3E,KAAK,CAAC;EACvC;EAEA8E,IAAIA,CAAC9E,KAAU;IACb,MAAM+E,eAAe,GAAgB;MACnCtN,QAAQ,EAAE,IAAI,CAACyH,UAAU;MACzB8F,aAAa,EAAE,IAAI,CAAClC,SAAS;MAC7BrD,EAAE,EAAE,IAAI,CAACA,EAAE;MACXxJ,QAAQ,EAAE+J,KAAK,CAACiE,KAAK;MACrBgB,sBAAsB,EAAEjF,KAAK,CAACkF,eAAe;MAC7CC,QAAQ,EAAE;KACX;IACD,IAAI,CAACnF,KAAK,CAACoF,WAAW,EAAE;MACtB,IAAI,CAACpB,QAAQ,CAACqB,sBAAsB,EAAE;MACtC,IAAI,CAAC,IAAI,CAACrB,QAAQ,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEiB,WAAW,CAACC,KAAK,EAAE;QAC/C,IAAI,CAACvB,QAAQ,CAACwB,qBAAqB,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC9G,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC2C,MAAM,CAACC,eAAe,CAAC;OACjE,MACI;QACH,IAAI,CAACC,QAAQ,CAACb,eAAe,CAAC;;KAEjC,MACI;MACH,IAAI,CAACa,QAAQ,CAACb,eAAe,CAAC;;EAElC;EAEQa,QAAQA,CAACC,OAAoB;IACnC,IAAI,CAACpH,cAAc,CAACqH,WAAW,EAAE;IACjC,IAAI,CAACvC,WAAW,CAACqC,QAAQ,CAAChW,4EAAY,CAAClB,aAAa,CAACoW,IAAI,EAAEe,OAAO,CAAC,CAChE7P,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAE+P,IAAgB,IAAI;MAC9B,IAAI,CAAClC,cAAc,CAACuH,WAAW,EAAE;MACjC,IAAI,IAAI,CAACC,cAAc,CAACJ,OAAO,EAAElF,IAAI,EAAEuF,CAAC,IAAI,IAAI,CAACN,QAAQ,CAACM,CAAC,CAAC,CAAC,EAAE;QAC7D;;MAEF,IAAIjD,gFAAqB,CAACyxB,iBAAiB,CAACtuB,QAAQ,CAACzF,IAAI,CAAC0F,OAAO,CAAC,EAAE;QAClE,IAAI,CAACC,YAAY,GAAG3F,IAAI,CAAC0F,OAAO;OACjC,MACI;QACH,IAAI,CAAC5G,EAAE,GAAGkB,IAAI,CAAClB,EAAE;QACjB,IAAI,CAAC6G,YAAY,GAAGvD,qEAAU,CAAC0xB,iBAAiB,CAACluB,cAAc;;MAEjE,IAAI,CAACnD,mBAAmB,CAACqC,UAAU,CAAC,IAAI,CAACa,YAAY,EAAE,IAAI,EAAE3F,IAAI,CAAC6F,OAAO,CAAC;IAC5E,CAAC,CAAC;EACN;EAEA1G,MAAMA,CAACE,KAAU;IACf,IAAI,CAAC0yB,uBAAuB,EAAE;EAChC;EAEAhsB,eAAeA,CAAC1G,KAAU;IACxB,IAAI,IAAI,CAACsG,YAAY,KAAKvD,qEAAU,CAAC0xB,iBAAiB,CAACluB,cAAc,EAAE;MACrE,IAAI,CAACmsB,uBAAuB,CAAC,IAAI,CAAC;;EAEtC;EAEQA,uBAAuBA,CAACvrB,oBAAoB,GAAG,KAAK;IAC1D,IAAI,CAAC3F,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC6C,aAAa,CAACR,IAAI,CAAC,EAAEiZ,oBAAoB,CAAC;EAC/E;EAAC,QAAA/X,CAAA;qBA1IUrD,sBAAsB,EAAAuK,gEAAA,CAAA7G,qDAAA,GAAA6G,gEAAA,CAAAG,sEAAA,GAAAH,gEAAA,CAAAK,gFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,kGAAA,GAAA1L,gEAAA,CAAA2L,oDAAA,GAAA3L,gEAAA,CAAA2L,4DAAA,GAAA3L,gEAAA,CAAA6L,iEAAA,GAAA7L,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA7G,sDAAA,GAAA6G,gEAAA,CAAA+L,yEAAA,GAAA/L,gEAAA,CAAAmR,+EAAA;EAAA;EAAA,QAAApY,EAAA;UAAtBtD,sBAAsB;IAAAsL,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAk9B,gCAAAh9B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QC7BnCrB,6DAAA,iCAQqD;QAA5BA,yDAHA,wBAAAs+B,8EAAAjyB,MAAA;UAAA,OAAc/K,GAAA,CAAA6M,UAAA,CAAA9B,MAAA,CAAkB;QAAA,EAAC,4BAAAkyB,kFAAAlyB,MAAA;UAAA,OACf/K,GAAA,CAAA8O,eAAA,CAAA/D,MAAA,CAAuB;QAAA,EAAC,oBAAAmyB,0EAAAnyB,MAAA;UAAA,OAChC/K,GAAA,CAAAkN,IAAA,CAAAnC,MAAA,CAAY;QAAA,EAAC,sBAAAoyB,4EAAApyB,MAAA;UAAA,OACX/K,GAAA,CAAAkI,MAAA,CAAA6C,MAAA,CAAc;QAAA,EAAC;QACpDrM,2DAAA,EAA0B;;;QALDA,yDAJA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF,aAAAlL,GAAA,CAAA6H,EAAA,CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDF;AAEkD;AAEqM;AACtN;AACP;AACC;AAYc;;;;;;;;;;AAMzE,MAAO1S,6BAA8B,SAAQuR,uFAAoD;EAQrGvO,YACYwO,KAAqB,EACrBC,MAAc,EACdC,cAA8B,EAC9BC,aAA4B,EAC5BC,qBAA4C,EAC5CC,iBAAoC,EACpC5O,cAA8B,EAChC6O,kBAAsC,EACtCC,kBAAsC,EACtCC,kBAAsC;IAE9C,KAAK,CACHR,KAAK,EACLC,MAAM,EACNC,cAAc,EACdC,aAAa,EACbC,qBAAqB,EACrBC,iBAAiB,EACjB5O,cAAc,CAAC;IAlBP,KAAAuO,KAAK,GAALA,KAAK;IACL,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAC,cAAc,GAAdA,cAAc;IACd,KAAAC,aAAa,GAAbA,aAAa;IACb,KAAAC,qBAAqB,GAArBA,qBAAqB;IACrB,KAAAC,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAA5O,cAAc,GAAdA,cAAc;IAChB,KAAA6O,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAC,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAC,kBAAkB,GAAlBA,kBAAkB;IAhB5B,KAAAC,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAC,UAAU,GAAWb,qEAAS,CAAC22B,oBAAoB;IAyBjD,IAAI,CAAC51B,UAAU,CACb,CAACpB,wEAAa,CAACi3B,wBAAwB,CAACC,iBAAiB,EAAEj3B,sEAAW,CAACg3B,wBAAwB,CAACC,iBAAiB,CAAC,EAClH,MAAMtlC,4EAAY,CAAC2P,SAAS,CAAC41B,oBAAoB,EACjD;MACEvsB,aAAa,EAAEA,CAAA,KAAMP,yEAAc,CAAC+sB,oBAAoB;MACxDtsB,WAAW,EAAE,CAAC9K,wEAAa,CAACi3B,wBAAwB,CAACC,iBAAiB,EAAEj3B,sEAAW,CAACg3B,wBAAwB,CAACC,iBAAiB,EAAElyB,uEAAY,CAACiyB,wBAAwB,CAAClmC,gBAAgB,CAAC;MACvLga,kBAAkB,EAAE7K,wEAAa,CAAC+2B,wBAAwB,CAACI,sBAAsB;MACjFpsB,kBAAkB,EAAE/K,wEAAa,CAAC+2B,wBAAwB,CAACK,sBAAsB;MACjFnsB,sBAAsB,EAAE,CAAC,QAAQ,CAAC;MAClCC,0BAA0B,EAAEA,CAACC,WAAgB,EAAEC,WAAgB,MAAM;QACnEC,UAAU,EAAEF,WAAW;QACvBG,MAAM,EAAEF,WAAW,GAAGnB,8EAAmB,CAAC8sB,wBAAwB,CAACM,4BAA4B;OAChG,CAAC;MACFzrB,uBAAuB,EAAEA,CAAA,MAAO;QAC9BN,MAAM,EAAEtB,iFAAsB,CAAC+sB,wBAAwB,CAACM;OACzD;KACF,CAAC;EACN;EAEA7kC,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACqK,aAAa,CAACC,uBAAuB,EAAE;EAC9C;EAEAjK,QAAQA,CAACC,KAAU;IACjB,IAAI,CAACE,sBAAsB,CAAC,IAAI,CAAC6J,aAAa,CAACE,uBAAuB,EAAE,CAAC;IACzE,IAAI,IAAI,CAACF,aAAa,CAACG,2BAA2B,CAAC,IAAI,CAACH,aAAa,CAACE,uBAAuB,EAAE,CAAC,EAAE;MAChG,IAAI,CAACrL,iBAAiB,CAACuL,kBAAkB,CAAC7B,sEAAW,EAAEF,6EAAkB,CAAC6sB,wBAAwB,CAACG,oBAAoB,EAAE7sB,+EAAoB,CAAC0sB,wBAAwB,CAAC;;EAE3K;EAEA7qB,UAAUA,CAACpK,KAAU;IACnB,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAAC+2B,wBAAwB,CAACI,sBAAsB;MAClE,KAAKn3B,wEAAa,CAAC+2B,wBAAwB,CAACK,sBAAsB;QAAE;UAClE,IAAI,CAACj0B,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACM,iBAAiB,CAACrK,KAAK,CAACsK,MAAM,CAAC,CAAC;UACrE;;;EAGN;EAEAC,mBAAmBA,CAACvK,KAAU;IAC5B,MAAMsG,YAAY,GAAG,IAAI,CAACA,YAAY;IACtC,OAAO,IAAI,CAACA,YAAY;IAExB,QAAQA,YAAY;MAClB,KAAKvD,qEAAU,CAACkyB,wBAAwB,CAACO,gBAAgB;QAAE;UACzD,MAAMC,yCAAyC,GAAG,IAAI,CAACC,4CAA4C,EAAE;UACrG,QAAQ11B,KAAK,EAAE21B,cAAc;YAC3B,KAAKxf,yEAAc,CAAC8e,wBAAwB,CAACW,cAAc,CAACC,QAAQ;cAAE;gBACpE,IAAI,CAACh3B,kBAAkB,CAACi3B,6BAA6B,CAACL,yCAAyC,CAAC;gBAChG;;YAEF,KAAKtf,yEAAc,CAAC8e,wBAAwB,CAACW,cAAc,CAACG,gBAAgB;cAAE;gBAC5E,IAAI,CAACl3B,kBAAkB,CAACm3B,6CAA6C,CAACP,yCAAyC,CAAC;gBAChH;;;UAGJ;;;EAGN;EAEAt1B,mBAAmBA,CAACH,KAAU;IAC5B,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAAC+2B,wBAAwB,CAACgB,2BAA2B;QAAE;UACvE,QAAQj2B,KAAK,CAACA,KAAK,CAACO,IAAI;YACtB,KAAKxC,sEAAW,CAACk3B,wBAAwB,CAACz0B,IAAI;YAC9C,KAAKzC,sEAAW,CAACk3B,wBAAwB,CAACx0B,IAAI;cAAE;gBAC9C,IAAI,CAACjC,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAACkD,gBAAgB,CAACZ,MAAM,EAAE6R,KAAK,CAACA,KAAK,CAACW,IAAI,CAAClB,EAAE,CAAC,CAAC;gBACxF;;YAEF,KAAK1B,sEAAW,CAACk3B,wBAAwB,CAACvqB,MAAM;cAAE;gBAChD,QAAQ1K,KAAK,CAACA,KAAK,CAACW,IAAI,CAACgK,UAAU;kBACjC,KAAK1C,4EAAiB,CAACgtB,wBAAwB,CAACrqB,GAAG;oBAAE;sBACnD,IAAI,CAACpM,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAACkD,gBAAgB,CAACZ,MAAM,CAAC,CAAC;sBACnE;;kBAEF,KAAK8Z,4EAAiB,CAACgtB,wBAAwB,CAACiB,oBAAoB;oBAAE;sBACpE,MAAMvhB,UAAU,GAAG;wBAAEghB,cAAc,EAAExf,yEAAc,CAAC8e,wBAAwB,CAACW,cAAc,CAACC;sBAAQ,CAAE;sBACtG,IAAI,CAACvvB,YAAY,GAAGvD,qEAAU,CAACkyB,wBAAwB,CAACO,gBAAgB;sBACxE,IAAI,CAAC92B,aAAa,CAAC+G,UAAU,CAAC,IAAI,CAACa,YAAY,EAAEqO,UAAU,CAAC;sBAC5D;;kBAEF,KAAK1M,4EAAiB,CAACgtB,wBAAwB,CAACpqB,UAAU;oBAAE;sBAC1D,MAAM4qB,yCAAyC,GAAG,IAAI,CAACC,4CAA4C,EAAE;sBACrG,IAAI,CAAC72B,kBAAkB,CAACi3B,6BAA6B,CAACL,yCAAyC,CAAC;sBAChG;;kBAEF,KAAKxtB,4EAAiB,CAACgtB,wBAAwB,CAAChqB,UAAU;oBAAE;sBAC1D,IAAI,CAACkrB,+BAA+B,EAAE;sBACtC;;;gBAGJ;;;UAGJ;;;EAGN;EAEAA,+BAA+BA,CAAA;IAC7B,IAAI,CAACr3B,kBAAkB,CAACq3B,+BAA+B,EAAE,CACtDngC,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAACuQ,iBAAiB,IAAG;MAC7B,IAAI,CAACA,iBAAiB,CAACC,WAAW,EAAE;QAClC,IAAI,CAACC,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACoB,gBAAgB,EAAE,CAAC;;IAE5D,CAAC,CAAC;EACN;EAEQuqB,4CAA4CA,CAAA;IAClD,MAAMtqB,QAAQ,GAAG,IAAI,CAACC,gBAAgB,CACpC,IAAI,CAACrH,QAAQ,CAACC,KAAK,EACnBjG,wEAAa,CAACi3B,wBAAwB,CAACC,iBAAiB,EACxDj3B,sEAAW,CAACg3B,wBAAwB,CAACC,iBAAiB,EACtDlyB,uEAAY,CAACiyB,wBAAwB,CAAClmC,gBAAgB,EACtDmP,wEAAa,CAAC+2B,wBAAwB,CAACgB,2BAA2B,CAAC;IACrE,MAAMn1B,SAAS,GAAGsK,QAAQ,CAACE,GAAG,CAACC,MAAM,IAAIA,MAAM,CAAC9L,EAAE,CAAC;IACnD,MAAMg2B,yCAAyC,GAA8B;MAAE30B;IAAS,CAAE;IAC1F,OAAO20B,yCAAyC;EAClD;EAAC,QAAArmC,CAAA;qBAxJUrC,6BAA6B,EAAAuJ,gEAAA,CAAA7G,4DAAA,GAAA6G,gEAAA,CAAA7G,oDAAA,GAAA6G,gEAAA,CAAAG,sDAAA,GAAAH,gEAAA,CAAAG,qDAAA,GAAAH,gEAAA,CAAAK,oFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,sEAAA,GAAA1L,gEAAA,CAAA2L,8EAAA,GAAA3L,gEAAA,CAAA6L,8EAAA,GAAA7L,gEAAA,CAAA+L,+EAAA;EAAA;EAAA,QAAAhT,EAAA;UAA7BtC,6BAA6B;IAAAsK,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAA2+B,uCAAAz+B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QC5B1CrB,6DAAA,iCAOyD;QAAhCA,yDAHA,wBAAA+/B,qFAAA1zB,MAAA;UAAA,OAAc/K,GAAA,CAAAmI,QAAA,CAAA4C,MAAA,CAAgB;QAAA,EAAC,4BAAA2zB,yFAAA3zB,MAAA;UAAA,OACb/K,GAAA,CAAA2S,mBAAA,CAAA5H,MAAA,CAA2B;QAAA,EAAC,iCAAA4zB,8FAAA5zB,MAAA;UAAA,OACvB/K,GAAA,CAAAuI,mBAAA,CAAAwC,MAAA,CAA2B;QAAA,EAAC,sBAAA6zB,mFAAA7zB,MAAA;UAAA,OACvC/K,GAAA,CAAAwS,UAAA,CAAAzH,MAAA,CAAkB;QAAA,EAAC;QACxDrM,2DAAA,EAA0B;;;QALDA,yDAHA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACApB;AAEsF;AAEsD;AAChF;AACvB;AACS;AAayB;;;;;;;;;;;AAM7F,MAAOhW,yBAA0B,SAAQqW,6FAAmB;EAiBhEpT,YACY2O,aAA4B,EAC5B1O,cAA8B,EAC9BoT,mBAAwC,EACxCxE,iBAAoC,EACpCyE,4BAA0D,EAC1D7E,MAAc,EAChBD,KAAqB,EACrB+E,YAA0B,EAC1BnT,WAAwB,EACxBoT,WAAwB,EACxB9E,cAA8B,EAC9B+E,eAAgC,EAChCzE,kBAAsC;IAE9C,KAAK,CAACL,aAAa,EAAE1O,cAAc,EAAEoT,mBAAmB,EAAExE,iBAAiB,EAAEyE,4BAA4B,EAAE7E,MAAM,CAAC;IAdxG,KAAAE,aAAa,GAAbA,aAAa;IACb,KAAA1O,cAAc,GAAdA,cAAc;IACd,KAAAoT,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAAxE,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAyE,4BAA4B,GAA5BA,4BAA4B;IAC5B,KAAA7E,MAAM,GAANA,MAAM;IACR,KAAAD,KAAK,GAALA,KAAK;IACL,KAAA+E,YAAY,GAAZA,YAAY;IACZ,KAAAnT,WAAW,GAAXA,WAAW;IACX,KAAAoT,WAAW,GAAXA,WAAW;IACX,KAAA9E,cAAc,GAAdA,cAAc;IACd,KAAA+E,eAAe,GAAfA,eAAe;IACf,KAAAzE,kBAAkB,GAAlBA,kBAAkB;IA5B5B,KAAAC,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAQ,EAAE,GAAG,EAAE;IACP,KAAAI,mBAAmB,GAAWzB,+EAAe,CAAC3M,aAAa;IAC3D,KAAAyN,UAAU,GAAWb,qEAAS,CAACtP,gBAAgB;IAC/C,KAAA+T,SAAS,GAAWI,oEAAQ,CAACO,MAAM;IAEnC,KAAAE,OAAO,GAAG,KAAK;IAEP,KAAA8M,oBAAoB,GAAG,IAAI;IAE3B,KAAAuG,6BAA6B,GAAG;MACtCyf,uBAAuB,EAAE;KAC1B;IAmBC,IAAI,CAACjf,oBAAoB,GAAG;MAC1B,CAAC,IAAI,CAACR,6BAA6B,CAACyf,uBAAuB,GAAG,IAAIpgB,sFAAY;KAC/E;EACH;EAEA3lB,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACnB,KAAK,CAACoB,QAAQ,CAAC/O,SAAS,CAAE+O,QAAkB,IAAI;MACnD,MAAMF,EAAE,GAAGE,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAC;MAC7B,IAAIH,EAAE,EAAE;QACN,IAAI,CAACA,EAAE,GAAGA,EAAE;QACZ,IAAI,CAACI,mBAAmB,GAAGzB,+EAAe,CAAClM,oCAAoC;QAC/E,IAAI,CAACyR,OAAO,GAAG,IAAI;;IAEvB,CAAC,CAAC;IAEF,IAAI,CAACxT,WAAW,CAACyD,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,MACtD,IAAI,CAAC+P,OAAO;IAEd,IAAI,CAACxT,WAAW,CAACyD,kBAAkB,CAAC,uBAAuB,CAAC,GAAI+kB,IAAc,IAAK,IAAI,CAACC,sBAAsB,CAACD,IAAI,CAAC,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhI,IAAI,CAACxoB,WAAW,CAACwD,oBAAoB,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,CAACwQ,cAAc;IAC5E,IAAI,CAAChU,WAAW,CAACwD,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAACmM,MAAM,CAAC,IAAI,CAAC;IAEzE,IAAI,CAAC0D,eAAe,CAACkzB,qCAAqC,CACxD,MAAM,IAAI,CAAC1yB,QAAQ,CAACK,MAAM,EAC1B,MAAM,IAAI,CAACF,cAAc,EACzB,MAAM,IAAI,CAACR,OAAO,EACjBW,OAAgB,IAAK,IAAI,CAACmM,oBAAoB,GAAGnM,OAAO,EACzD,MAAM,IAAI,CAACmM,oBAAoB,CAAC;IAElC,IAAI,CAACjN,eAAe,CAACmzB,iDAAiD,CACpE,MAAM,IAAI,CAACxd,4BAA4B,CAAC,IAAI,CAACnC,6BAA6B,CAACyf,uBAAuB,CAAC,CAAC;EACxG;EAEAhyB,UAAUA,CAACzE,KAAU;IACnB,IAAI,CAACmE,cAAc,GAAG,CAAC,CAACnE,KAAK,EAAEmE,cAAc;IAC7C,IAAI,CAAC,IAAI,CAACA,cAAc,EAAE;MACxB;MACA,IAAI,CAACsM,oBAAoB,GAAG,KAAK;MAEjC;MACA,IAAI,CAAC0I,4BAA4B,CAAC,IAAI,CAACnC,6BAA6B,CAACyf,uBAAuB,CAAC;;IAG/F,IAAI,CAACx2B,2CAA2C,CAAC9B,0FAA+B,CAACy4B,oBAAoB,CAAC;IAEtG,IAAI,CAACjyB,yBAAyB,CAAC3E,KAAK,CAAC;EACvC;EAEAG,mBAAmBA,CAACH,KAAU;IAC5B,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAAC04B,oBAAoB,CAACC,2BAA2B;QAAE;UACnE,QAAQ72B,KAAK,CAACA,KAAK,CAACO,IAAI;YACtB,KAAKxC,sEAAW,CAAC64B,oBAAoB,CAACp2B,IAAI;cAAE;gBAC1C,IAAI,CAAChC,MAAM,CAACgD,QAAQ,CAAC,CACnB,GAAG,EACH3V,sEAAc,CAACkD,gBAAgB,CAACZ,MAAM,EACtC,IAAI,CAACsR,EAAE,EACP5T,sEAAc,CAACkD,gBAAgB,CAAC+nC,8BAA8B,EAC9D92B,KAAK,CAACA,KAAK,CAACW,IAAI,CAAClB,EAAE,EACnB5T,sEAAc,CAACkD,gBAAgB,CAACgoC,0BAA0B,CAC3D,CAAC;gBACF;;;UAGJ;;;EAGN;EAEAjyB,IAAIA,CAAC9E,KAAU;IACb,MAAM+E,eAAe,GAAgB;MACnCtN,QAAQ,EAAE,IAAI,CAACyH,UAAU;MACzB8F,aAAa,EAAE,IAAI,CAAClC,SAAS;MAC7BrD,EAAE,EAAE,IAAI,CAACA,EAAE;MACXxJ,QAAQ,EAAE+J,KAAK,CAACiE,KAAK;MACrBgB,sBAAsB,EAAEjF,KAAK,CAACkF,eAAe;MAC7CC,QAAQ,EAAE;KACX;IACD,IAAI,CAACnF,KAAK,CAACoF,WAAW,EAAE;MACtB,IAAI,CAACpB,QAAQ,CAACqB,sBAAsB,EAAE;MACtC,IAAI,CAAC,IAAI,CAACrB,QAAQ,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEiB,WAAW,CAACC,KAAK,EAAE;QAC/C,IAAI,CAACvB,QAAQ,CAACwB,qBAAqB,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC9G,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC2C,MAAM,CAACC,eAAe,CAAC;OACjE,MACI;QACH,IAAI,CAACC,QAAQ,CAACb,eAAe,CAAC;;KAEjC,MACI;MACH,IAAI,CAACa,QAAQ,CAACb,eAAe,CAAC;;EAElC;EAEQa,QAAQA,CAACC,OAAoB;IACnC,IAAI,CAACpH,cAAc,CAACqH,WAAW,EAAE;IACjC,IAAI,CAACvC,WAAW,CAACqC,QAAQ,CAAChW,4EAAY,CAACb,gBAAgB,CAAC+V,IAAI,EAAEe,OAAO,CAAC,CACnE7P,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAE+P,IAAgB,IAAI;MAC9B,IAAI,CAAClC,cAAc,CAACuH,WAAW,EAAE;MACjC,IAAI,IAAI,CAACC,cAAc,CAACJ,OAAO,EAAElF,IAAI,EAAEuF,CAAC,IAAI,IAAI,CAACN,QAAQ,CAACM,CAAC,CAAC,CAAC,EAAE;QAC7D;;MAEF,IAAIjD,gFAAqB,CAAC+zB,oBAAoB,CAAC5wB,QAAQ,CAACzF,IAAI,CAAC0F,OAAO,CAAC,EAAE;QACrE,IAAI,CAACC,YAAY,GAAG3F,IAAI,CAAC0F,OAAO;OACjC,MACI;QACH,IAAI,CAAC5G,EAAE,GAAGkB,IAAI,CAAClB,EAAE;QACjB,IAAI,CAAC6G,YAAY,GAAGvD,qEAAU,CAAC6zB,oBAAoB,CAACrwB,cAAc;;MAEpE,IAAI,CAACnD,mBAAmB,CAACqC,UAAU,CAAC,IAAI,CAACa,YAAY,EAAE,IAAI,EAAE3F,IAAI,CAAC6F,OAAO,CAAC;IAC5E,CAAC,CAAC;EACN;EAEA1G,MAAMA,CAACE,KAAU;IACf,IAAI,CAAC0yB,uBAAuB,EAAE;EAChC;EAEAhsB,eAAeA,CAAC1G,KAAU;IACxB,IAAI,IAAI,CAACsG,YAAY,KAAKvD,qEAAU,CAAC6zB,oBAAoB,CAACrwB,cAAc,EAAE;MACxE,IAAI,CAACmsB,uBAAuB,CAAC,IAAI,CAAC;;EAEtC;EAEQA,uBAAuBA,CAACvrB,oBAAoB,GAAG,KAAK;IAC1D,IAAI,CAAC3F,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAACkD,gBAAgB,CAACb,IAAI,CAAC,EAAEiZ,oBAAoB,CAAC;EAClF;EAAC,QAAA/X,CAAA;qBAlKUtC,yBAAyB,EAAAwJ,gEAAA,CAAA7G,qDAAA,GAAA6G,gEAAA,CAAAG,sEAAA,GAAAH,gEAAA,CAAAK,gFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,kGAAA,GAAA1L,gEAAA,CAAA2L,oDAAA,GAAA3L,gEAAA,CAAA2L,4DAAA,GAAA3L,gEAAA,CAAA6L,iEAAA,GAAA7L,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA7G,sDAAA,GAAA6G,gEAAA,CAAA+L,yEAAA,GAAA/L,gEAAA,CAAAmR,+EAAA;EAAA;EAAA,QAAApY,EAAA;UAAzBvC,yBAAyB;IAAAuK,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAw/B,mCAAAt/B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QC7BtCrB,6DAAA,iCASqD;QAA5BA,yDAJA,wBAAA4gC,iFAAAv0B,MAAA;UAAA,OAAc/K,GAAA,CAAA6M,UAAA,CAAA9B,MAAA,CAAkB;QAAA,EAAC,4BAAAw0B,qFAAAx0B,MAAA;UAAA,OACf/K,GAAA,CAAA8O,eAAA,CAAA/D,MAAA,CAAuB;QAAA,EAAC,iCAAAy0B,0FAAAz0B,MAAA;UAAA,OACnB/K,GAAA,CAAAuI,mBAAA,CAAAwC,MAAA,CAA2B;QAAA,EAAC,oBAAA00B,6EAAA10B,MAAA;UAAA,OACzC/K,GAAA,CAAAkN,IAAA,CAAAnC,MAAA,CAAY;QAAA,EAAC,sBAAA20B,+EAAA30B,MAAA;UAAA,OACX/K,GAAA,CAAAkI,MAAA,CAAA6C,MAAA,CAAc;QAAA,EAAC;QACpDrM,2DAAA,EAA0B;;;QANDA,yDAJA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF,aAAAlL,GAAA,CAAA6H,EAAA,CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDZ;AAE8F;AAEiM;AACnO;AACxB;AACC;AAec;;;;;;;;;;;AAYzE,MAAO5S,mBAAoB,SAAQyR,uFAA0C;EAYjFvO,YACYwO,KAAqB,EACrBC,MAAc,EACdC,cAA8B,EAC9BC,aAA4B,EAC5BC,qBAA4C,EAC5CC,iBAAoC,EACpC5O,cAA8B,EAChCG,WAAwB,EACxBmT,YAA0B,EAC1BzE,kBAAsC,EACtCE,kBAAsC,EACtCiN,wBAAkD;IAE1D,KAAK,CACHzN,KAAK,EACLC,MAAM,EACNC,cAAc,EACdC,aAAa,EACbC,qBAAqB,EACrBC,iBAAiB,EACjB5O,cAAc,CAAC;IApBP,KAAAuO,KAAK,GAALA,KAAK;IACL,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAC,cAAc,GAAdA,cAAc;IACd,KAAAC,aAAa,GAAbA,aAAa;IACb,KAAAC,qBAAqB,GAArBA,qBAAqB;IACrB,KAAAC,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAA5O,cAAc,GAAdA,cAAc;IAChB,KAAAG,WAAW,GAAXA,WAAW;IACX,KAAAmT,YAAY,GAAZA,YAAY;IACZ,KAAAzE,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAE,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAiN,wBAAwB,GAAxBA,wBAAwB;IAtBlC,KAAAhN,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAC,UAAU,GAAWb,qEAAS,CAACk5B,UAAU;IAEzC,KAAAC,WAAW,GAAG,KAAK;IACnB,KAAAC,kBAAkB,GAAG,EAAE;IACvB,KAAAC,kBAAkB,GAAG,EAAE;IA2BrB,IAAI,CAACt4B,UAAU,CACb,CAACpB,wEAAa,CAAC25B,cAAc,CAACC,OAAO,EAAE35B,sEAAW,CAAC05B,cAAc,CAACC,OAAO,CAAC,EAC1E,MAAM,IAAI,CAACJ,WAAW,GAClB5nC,4EAAY,CAAC2P,SAAS,CAACs4B,2BAA2B,GAClDjoC,4EAAY,CAAC2P,SAAS,CAACu4B,kBAAkB,EAC7C;MACElvB,aAAa,EAAEA,CAAA,KAAM,IAAI,CAAC4uB,WAAW,GAAG,GAAGnvB,yEAAc,CAAC0vB,mBAAmB,IAAI,IAAI,CAACL,kBAAkB,EAAE,GAAGrvB,yEAAc,CAAC2vB,UAAU;MACtIlvB,WAAW,EAAE,CAAC9K,wEAAa,CAAC25B,cAAc,CAACC,OAAO,EAAE35B,sEAAW,CAAC05B,cAAc,CAACC,OAAO,EAAE50B,uEAAY,CAAC20B,cAAc,CAACC,OAAO,CAAC;MAC5H7uB,kBAAkB,EAAE7K,wEAAa,CAACy5B,cAAc,CAACM,YAAY;MAC7DhvB,kBAAkB,EAAE/K,wEAAa,CAACy5B,cAAc,CAACO,YAAY;MAC7D/uB,sBAAsB,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,CAAC;MACtIC,0BAA0B,EAAEA,CAACC,WAAgB,EAAEC,WAAgB,MAAM;QACnEC,UAAU,EAAEF,WAAW;QACvBG,MAAM,EAAEF,WAAW,GAAGnB,8EAAmB,CAACwvB,cAAc,CAACQ,kBAAkB,CAAC;QAC5EC,SAAS,EAAE9uB,WAAW,GAAGnB,8EAAmB,CAACwvB,cAAc,CAACU,oBAAoB,CAAC;QACjFC,QAAQ,EAAEhvB,WAAW,GAAGnB,8EAAmB,CAACwvB,cAAc,CAACY,kBAAkB,CAAC;QAC9EC,UAAU,EAAElvB,WAAW,GAAGnB,8EAAmB,CAACwvB,cAAc,CAACc,sBAAsB,CAAC;QACpF7pC,WAAW,EAAE0a,WAAW,GAAGnB,8EAAmB,CAACwvB,cAAc,CAACe,uBAAuB,CAAC;QACtFhvB,WAAW,EAAEJ,WAAW,GAAGnB,8EAAmB,CAACwvB,cAAc,CAACgB,uBAAuB,CAAC;QACtFvmB,KAAK,EAAE9I,WAAW,GAAGnB,8EAAmB,CAACwvB,cAAc,CAACiB,0BAA0B,CAAC;QACnFjqC,YAAY,EAAE2a,WAAW,GAAGnB,8EAAmB,CAACwvB,cAAc,CAACkB,wBAAwB,CAAC;QACxFC,eAAe,EAAExvB,WAAW,GAAGnB,8EAAmB,CAACwvB,cAAc,CAACoB,2BAA2B,CAAC;QAC9FrB,kBAAkB,EAAE,IAAI,CAACF,WAAW,GAAG,IAAI,CAACE,kBAAkB,GAAG;OAClE,CAAC;MACF5tB,uBAAuB,EAAEA,CAAA,MAAO;QAC9BsuB,SAAS,EAAE,IAAI,CAACZ,WAAW,GAAGtvB,iFAAsB,CAACyvB,cAAc,CAACqB,8BAA8B,GAAG9wB,iFAAsB,CAACyvB,cAAc,CAACsB,qBAAqB;QAChKvB,kBAAkB,EAAE,IAAI,CAACF,WAAW,GAAG,IAAI,CAACE,kBAAkB,GAAG;OAClE,CAAC;MACFjlB,sBAAsB,EAAE;QACtBC,kBAAkB,EAAE,CAAC1U,wEAAa,CAAC25B,cAAc,CAACC,OAAO,EAAE35B,sEAAW,CAAC05B,cAAc,CAACC,OAAO,EAAE50B,uEAAY,CAAC20B,cAAc,CAACC,OAAO,EAAE15B,wEAAa,CAACy5B,cAAc,CAACO,YAAY,CAAC;QAC9KvlB,kCAAkC,EAAE,CAACxK,8EAAmB,CAACwvB,cAAc,CAACe,uBAAuB,CAAC;QAChG9lB,qCAAqC,EAAE,CAAC,CAACzK,8EAAmB,CAACwvB,cAAc,CAACgB,uBAAuB,CAAC,EAAE,CAACxwB,8EAAmB,CAACwvB,cAAc,CAACiB,0BAA0B,CAAC;;KAExK,CAAC;EACN;EAEAloC,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACnB,KAAK,CAACoB,QAAQ,CAAC/O,SAAS,CAAE+O,QAAkB,IAAI;MACnD,MAAM83B,kBAAkB,GAAG93B,QAAQ,CAACC,GAAG,CAAC,oBAAoB,CAAC;MAC7D,MAAM83B,kBAAkB,GAAG/3B,QAAQ,CAACC,GAAG,CAAC,oBAAoB,CAAC;MAC7D,IAAI63B,kBAAkB,IAAIC,kBAAkB,EAAE;QAC5C,IAAI,CAACF,WAAW,GAAG,IAAI;QACvB,IAAI,CAACC,kBAAkB,GAAGA,kBAAkB;QAC5C,IAAI,CAACC,kBAAkB,GAAGA,kBAAkB;QAC5C,IAAI,CAAC73B,mBAAmB,GAAGzB,+EAAe,CAACjM,4CAA4C;;MAGzF,IAAI,CAAC4X,aAAa,CAACC,uBAAuB,EAAE;IAC9C,CAAC,CAAC;IAEF,IAAI,CAAC7Z,WAAW,CAACwD,oBAAoB,CAAC,aAAa,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC;IACpE,IAAI,CAACxD,WAAW,CAACwD,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAACmM,MAAM,CAAC,IAAI,CAAC;EAC3E;EAEAC,QAAQA,CAACC,KAAU;IACjB,IAAI,CAACC,2CAA2C,CAAC9B,0FAA+B,CAACw5B,cAAc,CAAC;IAEhG,IAAI,CAACz3B,sBAAsB,CAAC,IAAI,CAAC6J,aAAa,CAACE,uBAAuB,EAAE,CAAC;IACzE,IAAI,IAAI,CAACF,aAAa,CAACG,2BAA2B,CAAC,IAAI,CAACH,aAAa,CAACE,uBAAuB,EAAE,CAAC,EAAE;MAChG,IAAI,CAACrL,iBAAiB,CAACuL,kBAAkB,CAAC7B,sEAAW,EAAEF,6EAAkB,CAACuvB,cAAc,CAACK,UAAU,EAAEzvB,+EAAoB,CAACovB,cAAc,CAAC;;EAE7I;EAEAvtB,UAAUA,CAACpK,KAAU;IACnB,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAACy5B,cAAc,CAACM,YAAY;MAC9C,KAAK/5B,wEAAa,CAACy5B,cAAc,CAACO,YAAY;QAAE;UAC9C,IAAI,CAAC72B,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACM,iBAAiB,CAACrK,KAAK,CAACsK,MAAM,CAAC,CAAC;UACrE;;;EAGN;EAEAC,mBAAmBA,CAACvK,KAAU;IAE5B,MAAMsG,YAAY,GAAG,IAAI,CAACA,YAAY;IACtC,OAAO,IAAI,CAACA,YAAY;IAExB,QAAQA,YAAY;MAClB,KAAKvD,qEAAU,CAAC40B,cAAc,CAACuB,0BAA0B;QAAE;UACzD,IAAI,CAACC,sBAAsB,CAACn5B,KAAK,EAAEo5B,eAAe,CAAC;UACnD;;MAEF,KAAKr2B,qEAAU,CAAC40B,cAAc,CAAC0B,wBAAwB;QAAE;UACvD,IAAI,CAACC,mBAAmB,CAACt5B,KAAK,EAAEo5B,eAAe,EAAEp5B,KAAK,EAAEu5B,eAAe,CAAC;UACxE;;;EAGN;EAEAp5B,mBAAmBA,CAACH,KAAU;IAC5B,IAAI,CAACmT,qBAAqB,CAACnT,KAAK,CAAC;IACjC,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAACy5B,cAAc,CAAC6B,iBAAiB;QAAE;UACnD,QAAQx5B,KAAK,CAACA,KAAK,CAACO,IAAI;YACtB,KAAKxC,sEAAW,CAAC45B,cAAc,CAACtkB,OAAO;cAAE;gBACvC,IAAI,CAAComB,yBAAyB,CAACz5B,KAAK,CAACA,KAAK,CAACW,IAAI,CAAClB,EAAE,CAAC;gBACnD;;YAEF,KAAK1B,sEAAW,CAAC45B,cAAc,CAACjtB,MAAM;cAAE;gBACtC,QAAQ1K,KAAK,CAACA,KAAK,CAACW,IAAI,CAACgK,UAAU;kBACjC,KAAK1C,4EAAiB,CAAC0vB,cAAc,CAACjkB,OAAO;oBAAE;sBAC7C,MAAMC,aAAa,GAAG,IAAI,CAACC,gBAAgB,CAAC5T,KAAK,CAAC;sBAClD,IAAI,CAAC05B,6BAA6B,CAAC/lB,aAAa,CAAC;sBACjD;;kBAEF,KAAK1L,4EAAiB,CAAC0vB,cAAc,CAACgC,IAAI;oBAAE;sBAC1C,MAAMhmB,aAAa,GAAG,IAAI,CAACC,gBAAgB,CAAC5T,KAAK,CAAC;sBAClD,IAAI,CAAC45B,0BAA0B,CAACjmB,aAAa,CAAC;sBAC9C;;kBAEF,KAAK1L,4EAAiB,CAAC0vB,cAAc,CAACkC,KAAK;oBAAE;sBAC3C,MAAMC,mBAAmB,GAAwB;wBAC/CxlC,cAAc,EAAE,IAAI,CAACtE,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACyE,cAAc,CAAC;wBAC1EylC,aAAa,EAAEluC,sEAAc,CAAC8B,IAAI,CAACO;uBACpC;sBACD,IAAI,CAACwQ,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC40B,cAAc,CAACqC,sBAAsB,EAAE,IAAI,EAAEF,mBAAmB,CAAC;sBAC1G;;kBAEF,KAAK7xB,4EAAiB,CAAC0vB,cAAc,CAAC9sB,UAAU;oBAAE;sBAChD,MAAMovB,+BAA+B,GAAG,IAAI,CAACC,kCAAkC,EAAE;sBACjF,IAAI,CAACr7B,kBAAkB,CAACs7B,mBAAmB,CAACF,+BAA+B,EAAE,IAAI,CAACzC,WAAW,CAAC;sBAC9F;;;gBAGJ;;;UAGJ;;;EAGN;EAEA13B,MAAMA,CAACE,KAAU;IACf,IAAI,IAAI,CAACw3B,WAAW,EAAE;MACpB,IAAI,CAACh5B,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAACkD,gBAAgB,CAACZ,MAAM,EAAE,IAAI,CAACspC,kBAAkB,CAAC,CAAC;;EAEhG;EAEQgC,yBAAyBA,CAACW,gBAAwB;IACxD,MAAMC,QAAQ,GAAG,IAAI,CAAC7C,WAAW,GAC7B5nC,4EAAY,CAACwC,cAAc,CAACkoC,mBAAmB,GAC/C1qC,4EAAY,CAACwC,cAAc,CAAC2d,UAAU;IAC1C,MAAMlK,OAAO,GAAoC;MAC/CpG,EAAE,EAAE26B;KACL;IACD,IAAI,CAACpqC,cAAc,CAAC8F,IAAI,CAACukC,QAAQ,EAAEx0B,OAAO,CAAC,CACxC7P,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAEqF,QAA0C,IAAI;MACxD,IAAI,CAACyI,aAAa,CAACyV,eAAe,CAAC,IAAI,CAACnI,wBAAwB,CAACuuB,+BAA+B,CAACtkC,QAAQ,CAAC,EAAE,yBAAyB,EAAE,OAAO,CAAC;IACjJ,CAAC,CAAC;EACN;EAEQyjC,6BAA6BA,CAACN,eAAsB;IAC1D,IAAI,CAAC/kB,oBAAoB,CAACtR,qEAAU,CAAC40B,cAAc,CAACuB,0BAA0B,EAAEE,eAAe,CAAC;EAClG;EAEQQ,0BAA0BA,CAACR,eAAsB;IACvD,IAAI,CAAC/kB,oBAAoB,CAACtR,qEAAU,CAAC40B,cAAc,CAAC0B,wBAAwB,EAAED,eAAe,CAAC;EAChG;EAEQ/kB,oBAAoBA,CAACC,SAAiB,EAAE8kB,eAAsB;IAEpE,IAAIA,eAAe,CAAC7kB,MAAM,KAAK,CAAC,EAAE;MAChC,IAAI,CAAC7V,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC40B,cAAc,CAAC6C,kBAAkB,CAAC;MAC3E;;IAGF,MAAM7lC,yBAAyB,GAAG,IAAI,CAAC3E,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAAC8E,yBAAyB,CAAC;IACvG,IAAIykC,eAAe,CAAC7kB,MAAM,GAAGE,QAAQ,CAAC9f,yBAAyB,EAAE,EAAE,CAAC,EAAE;MACpE,IAAI,CAAC+J,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC40B,cAAc,CAAC8C,kBAAkB,EAAE,IAAI,EAAE;QAAE9lC;MAAyB,CAAE,CAAC;MAChH;;IAGF,MAAMggB,UAAU,GAAG;MAAEykB;IAAe,CAAE;IACtC,MAAMxkB,wBAAwB,GAAG;MAAEC,SAAS,EAAEukB,eAAe,CAAC7kB,MAAM,CAACO,QAAQ;IAAE,CAAE;IACjF,IAAI,CAACC,UAAU,CAACT,SAAS,EAAEK,UAAU,EAAEC,wBAAwB,CAAC;EAClE;EAEQG,UAAUA,CAACT,SAAiB,EAAEK,UAAgB,EAAEC,wBAA8C;IACpG,IAAI,CAACtO,YAAY,GAAGgO,SAAS;IAC7B,IAAI,CAAC5V,aAAa,CAAC+G,UAAU,CAAC6O,SAAS,EAAEK,UAAU,EAAEC,wBAAwB,CAAC;EAChF;EAEQukB,sBAAsBA,CAACC,eAAsB;IACnD,MAAMntB,QAAQ,GAA0B;MACtC+I,WAAW,EAAEplB,4EAAY,CAACwC,cAAc,CAAC6iB,OAAO;MAChDC,mBAAmB,EAAEnS,qEAAU,CAAC40B,cAAc,CAAC+C;KAChD;IACD,IAAI,CAACtlB,oBAAoB,CAACgkB,eAAe,EAAEntB,QAAQ,CAAC;EACtD;EAEQqtB,mBAAmBA,CAACF,eAAsB,EAAEG,eAAuB;IACzE,MAAMttB,QAAQ,GAA0B;MACtCoJ,gBAAgB,EAAE;QAAEkkB;MAAe,CAAE;MACrCvkB,WAAW,EAAEplB,4EAAY,CAACwC,cAAc,CAACuoC,IAAI;MAC7CzlB,mBAAmB,EAAEnS,qEAAU,CAAC40B,cAAc,CAACiD;KAChD;IACD,IAAI,CAACxlB,oBAAoB,CAACgkB,eAAe,EAAEntB,QAAQ,CAAC;EACtD;EAEQmJ,oBAAoBA,CAC1BgkB,eAAsB,EACtBntB,QAA+B;IAE/B,MAAM4uB,iBAAiB,GAAGzB,eAAe,CAAC9tB,GAAG,CAAClZ,cAAc,IAAIA,cAAc,CAACqN,EAAE,CAAC;IAClF,IAAI,CAACzP,cAAc,CAAC8F,IAAI,CAACmW,QAAQ,CAAC+I,WAAW,EAAE;MAAE6lB,iBAAiB;MAAE,GAAG5uB,QAAQ,CAACoJ;IAAgB,CAAE,CAAC,CAChGrf,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAC,MAAK;MACd,MAAM8kB,UAAU,GAAGA,CAAA,KAAM,IAAI,CAAChX,aAAa,CAAC+G,UAAU,CAACwG,QAAQ,CAACiJ,mBAAmB,CAAC;MACpF,IAAI,CAACS,qBAAqB,CAAC,IAAI,CAAC5L,aAAa,CAACoB,gBAAgB,EAAE,EAAEuK,UAAU,CAAC;IAC/E,CAAC,CAAC;EACN;EAEQwkB,kCAAkCA,CAAA;IACxC,MAAM9uB,QAAQ,GAAG,IAAI,CAACC,gBAAgB,CACpC,IAAI,CAACrH,QAAQ,CAACC,KAAK,EACnBjG,wEAAa,CAAC25B,cAAc,CAACC,OAAO,EACpC35B,sEAAW,CAAC05B,cAAc,CAACC,OAAO,EAClC50B,uEAAY,CAAC20B,cAAc,CAACC,OAAO,EACnC15B,wEAAa,CAACy5B,cAAc,CAAC6B,iBAAiB,CAAC;IACjD,MAAM14B,SAAS,GAAGsK,QAAQ,CAACE,GAAG,CAACC,MAAM,IAAIA,MAAM,CAAC9L,EAAE,CAAC;IACnD,MAAMw6B,+BAA+B,GAA8B;MAAEn5B;IAAS,CAAE;IAChF,OAAOm5B,+BAA+B;EACxC;EAAC,QAAA7qC,CAAA;qBArQUvC,mBAAmB,EAAAyJ,gEAAA,CAAA7G,4DAAA,GAAA6G,gEAAA,CAAA7G,oDAAA,GAAA6G,gEAAA,CAAAG,sDAAA,GAAAH,gEAAA,CAAAG,qDAAA,GAAAH,gEAAA,CAAAK,oFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,sEAAA,GAAA1L,gEAAA,CAAAG,mDAAA,GAAAH,gEAAA,CAAA2L,iEAAA,GAAA3L,gEAAA,CAAA6L,8EAAA,GAAA7L,gEAAA,CAAA+L,+EAAA,GAAA/L,gEAAA,CAAAmR,4FAAA;EAAA;EAAA,QAAApY,EAAA;UAAnBxC,mBAAmB;IAAAwK,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAqjC,6BAAAnjC,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCrChCrB,6DAAA,iCAQqD;QAA5BA,yDAJA,wBAAAykC,2EAAAp4B,MAAA;UAAA,OAAc/K,GAAA,CAAAmI,QAAA,CAAA4C,MAAA,CAAgB;QAAA,EAAC,4BAAAq4B,+EAAAr4B,MAAA;UAAA,OACb/K,GAAA,CAAA2S,mBAAA,CAAA5H,MAAA,CAA2B;QAAA,EAAC,iCAAAs4B,oFAAAt4B,MAAA;UAAA,OACvB/K,GAAA,CAAAuI,mBAAA,CAAAwC,MAAA,CAA2B;QAAA,EAAC,sBAAAu4B,yEAAAv4B,MAAA;UAAA,OACvC/K,GAAA,CAAAwS,UAAA,CAAAzH,MAAA,CAAkB;QAAA,EAAC,sBAAAw4B,yEAAAx4B,MAAA;UAAA,OACnB/K,GAAA,CAAAkI,MAAA,CAAA6C,MAAA,CAAc;QAAA,EAAC;QACpDrM,2DAAA,EAA0B;;;QANDA,yDAHA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACApB;AAEsF;AAE1B;AACd;AACT;AACwF;AAYpE;;;;;;;;;;AAM/E,MAAO7V,+BAAgC,SAAQkW,6FAAmB;EAYtEpT,YACY2O,aAA4B,EAC5B1O,cAA8B,EAC9BoT,mBAAwC,EACxCxE,iBAAoC,EACpCyE,4BAA0D,EAC1D7E,MAAc,EAChBD,KAAqB,EACrB+E,YAA0B,EAC1BnT,WAAwB,EACxBoT,WAAwB,EACxB9E,cAA8B,EAC9BM,kBAAsC;IAC9C,KAAK,CAACL,aAAa,EAAE1O,cAAc,EAAEoT,mBAAmB,EAAExE,iBAAiB,EAAEyE,4BAA4B,EAAE7E,MAAM,CAAC;IAZxG,KAAAE,aAAa,GAAbA,aAAa;IACb,KAAA1O,cAAc,GAAdA,cAAc;IACd,KAAAoT,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAAxE,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAyE,4BAA4B,GAA5BA,4BAA4B;IAC5B,KAAA7E,MAAM,GAANA,MAAM;IACR,KAAAD,KAAK,GAALA,KAAK;IACL,KAAA+E,YAAY,GAAZA,YAAY;IACZ,KAAAnT,WAAW,GAAXA,WAAW;IACX,KAAAoT,WAAW,GAAXA,WAAW;IACX,KAAA9E,cAAc,GAAdA,cAAc;IACd,KAAAM,kBAAkB,GAAlBA,kBAAkB;IAtB5B,KAAAC,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAQ,EAAE,GAAG,EAAE;IACP,KAAAI,mBAAmB,GAAWzB,+EAAe,CAAChL,+CAA+C;IAC7F,KAAA8L,UAAU,GAAWb,qEAAS,CAAChQ,sBAAsB;IACrD,KAAAyU,SAAS,GAAWI,oEAAQ,CAACO,MAAM;EAmBnC;EAEA/S,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACnB,KAAK,CAACoB,QAAQ,CAAC/O,SAAS,CAAE+O,QAAkB,IAAI;MACnD,MAAMF,EAAE,GAAGE,QAAQ,CAACC,GAAG,CAAC,IAAI,CAAC;MAC7B,IAAIH,EAAE,EAAE;QACN,IAAI,CAACA,EAAE,GAAGA,EAAE;QACZ,IAAI,CAACI,mBAAmB,GAAGzB,+EAAe,CAACjL,0CAA0C;;IAEzF,CAAC,CAAC;IAEF,IAAI,CAAChD,WAAW,CAACyD,kBAAkB,CAAC,YAAY,CAAC,GAAG,MAAM,IAAI;IAE9D,IAAI,CAACzD,WAAW,CAACwD,oBAAoB,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,CAACwQ,cAAc;IAC5E,IAAI,CAAChU,WAAW,CAACwD,oBAAoB,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAACmM,MAAM,CAAC,IAAI,CAAC;IAEzE,IAAI,CAAC9K,+BAA+B,GAAG,IAAI,CAAChF,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACmF,+BAA+B,CAAC;EACpH;EAEAyP,UAAUA,CAACzE,KAAU;IACnB,IAAI,CAACmE,cAAc,GAAG,CAAC,CAACnE,KAAK,EAAEmE,cAAc;IAE7C,IAAI,CAAClE,2CAA2C,CAAC9B,0FAA+B,CAACi9B,0BAA0B,CAAC;IAE5G,IAAI,CAACz2B,yBAAyB,CAAC3E,KAAK,CAAC;IACrC,IAAIA,KAAK,CAACsU,SAAS,IAAItU,KAAK,CAAC6hB,kBAAkB,EAAE;MAC/C;;IAGF,MAAMwZ,UAAU,GAAGr7B,KAAK,CAACq7B,UAAU;IACnC,IAAIA,UAAU,EAAE;MACd;MACAte,UAAU,CAAC,MAAK;QACd,IAAI,CAACte,cAAc,CAACqH,WAAW,EAAE;QACjCiX,UAAU,CAAC,MAAK;UACd,IAAI,CAACgF,qBAAqB,CAACsZ,UAAU,EAAE,IAAI,CAAC;QAC9C,CAAC,CAAC;MACJ,CAAC,CAAC;MACF;;EAEJ;EAEAv2B,IAAIA,CAAC9E,KAAU;IACb,MAAM+E,eAAe,GAAgB;MACnCtN,QAAQ,EAAE,IAAI,CAACyH,UAAU;MACzB8F,aAAa,EAAE,IAAI,CAAClC,SAAS;MAC7BrD,EAAE,EAAE,IAAI,CAACA,EAAE;MACXxJ,QAAQ,EAAE+J,KAAK,CAACiE,KAAK;MACrBgB,sBAAsB,EAAEjF,KAAK,CAACkF,eAAe;MAC7CC,QAAQ,EAAE;KACX;IACD,IAAI,CAACnF,KAAK,CAACoF,WAAW,EAAE;MACtB,IAAI,CAACpB,QAAQ,CAACqB,sBAAsB,EAAE;MACtC,IAAI,CAAC,IAAI,CAACrB,QAAQ,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEiB,WAAW,CAACC,KAAK,EAAE;QAC/C,IAAI,CAACvB,QAAQ,CAACwB,qBAAqB,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC9G,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC2C,MAAM,CAACC,eAAe,CAAC;OACjE,MACI;QACH,IAAI,CAACC,QAAQ,CAACb,eAAe,CAAC;;KAEjC,MACI;MACH,IAAI,CAACa,QAAQ,CAACb,eAAe,CAAC;;EAElC;EAEQa,QAAQA,CAACC,OAAoB;IACnC,IAAI,CAACpH,cAAc,CAACqH,WAAW,EAAE;IACjC,IAAI,CAACvC,WAAW,CAACqC,QAAQ,CAAChW,4EAAY,CAACvB,sBAAsB,CAACyW,IAAI,EAAEe,OAAO,CAAC,CACzE7P,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAE+P,IAAgB,IAAI;MAC9B,IAAI,CAAClC,cAAc,CAACuH,WAAW,EAAE;MACjC,IAAI,IAAI,CAACC,cAAc,CAACJ,OAAO,EAAElF,IAAI,EAAEuF,CAAC,IAAI,IAAI,CAACN,QAAQ,CAACM,CAAC,CAAC,CAAC,EAAE;QAC7D;;MAEF,IAAIjD,gFAAqB,CAACq4B,qBAAqB,CAACl1B,QAAQ,CAACzF,IAAI,CAAC0F,OAAO,CAAC,EAAE;QACtE,IAAI,CAACC,YAAY,GAAG3F,IAAI,CAAC0F,OAAO;OACjC,MACI;QACH,IAAI,CAAC5G,EAAE,GAAGkB,IAAI,CAAClB,EAAE;QACjB,IAAI,CAAC6G,YAAY,GAAGvD,qEAAU,CAACq4B,0BAA0B,CAAC70B,cAAc;;MAE1E,IAAI,CAACnD,mBAAmB,CAACqC,UAAU,CAAC,IAAI,CAACa,YAAY,EAAE,IAAI,EAAE3F,IAAI,CAAC6F,OAAO,CAAC;IAC5E,CAAC,CAAC;EACN;EAEA1G,MAAMA,CAACE,KAAU;IACf,IAAI,CAACu7B,gBAAgB,EAAE;EACzB;EAEA70B,eAAeA,CAAC1G,KAAU;IACxB,IAAI,IAAI,CAACsG,YAAY,KAAKvD,qEAAU,CAACq4B,0BAA0B,CAAC70B,cAAc,EAAE;MAC9E,IAAI,CAACi1B,kCAAkC,CAAC,IAAI,CAAC;;EAEjD;EAEQD,gBAAgBA,CAACp0B,oBAAoB,GAAG,KAAK;IACnD,IAAI,CAAC3F,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC8B,IAAI,CAACM,MAAM,CAAC,EAAEkZ,oBAAoB,CAAC;EACxE;EAEQq0B,kCAAkCA,CAACr0B,oBAAoB,GAAG,KAAK;IACrE,IAAI,CAAC4a,qBAAqB,CAAC,IAAI,CAAC/sB,+BAA+B,EAAEmS,oBAAoB,CAAC;EACxF;EAAC,QAAA/X,CAAA;qBAlIUnC,+BAA+B,EAAAqJ,gEAAA,CAAA7G,qDAAA,GAAA6G,gEAAA,CAAAG,sEAAA,GAAAH,gEAAA,CAAAK,gFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,kGAAA,GAAA1L,gEAAA,CAAA2L,oDAAA,GAAA3L,gEAAA,CAAA2L,4DAAA,GAAA3L,gEAAA,CAAA6L,iEAAA,GAAA7L,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA7G,mDAAA,GAAA6G,gEAAA,CAAA7G,sDAAA,GAAA6G,gEAAA,CAAA+L,+EAAA;EAAA;EAAA,QAAAhT,EAAA;UAA/BpC,+BAA+B;IAAAoK,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAgkC,yCAAA9jC,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QC5B5CrB,6DAAA,iCAQqD;QAA5BA,yDAHA,wBAAAolC,uFAAA/4B,MAAA;UAAA,OAAc/K,GAAA,CAAA6M,UAAA,CAAA9B,MAAA,CAAkB;QAAA,EAAC,4BAAAg5B,2FAAAh5B,MAAA;UAAA,OACf/K,GAAA,CAAA8O,eAAA,CAAA/D,MAAA,CAAuB;QAAA,EAAC,oBAAAi5B,mFAAAj5B,MAAA;UAAA,OAChC/K,GAAA,CAAAkN,IAAA,CAAAnC,MAAA,CAAY;QAAA,EAAC,sBAAAk5B,qFAAAl5B,MAAA;UAAA,OACX/K,GAAA,CAAAkI,MAAA,CAAA6C,MAAA,CAAc;QAAA,EAAC;QACpDrM,2DAAA,EAA0B;;;QALDA,yDAJA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF,aAAAlL,GAAA,CAAA6H,EAAA,CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDF;AAEqF;AAE4L;AAChP;AACN;AACD;AACA;AAIsC;AAEH;AAgBpB;;;;;;;;;;;;AAMzE,MAAOtT,iBAAkB,SAAQmS,uFAAwC;EA4B7EvO,YACYwO,KAAqB,EACrBC,MAAc,EACdC,cAA8B,EAC9BC,aAA4B,EAC5BC,qBAA4C,EAC5CC,iBAAoC,EACpC5O,cAA8B,EAChCoT,mBAAwC,EACxC+4B,sBAA8C,EAC9Ct9B,kBAAsC,EACtCC,kBAAsC,EACtCC,kBAAsC;IAE9C,KAAK,CACHR,KAAK,EACLC,MAAM,EACNC,cAAc,EACdC,aAAa,EACbC,qBAAqB,EACrBC,iBAAiB,EACjB5O,cAAc,CAAC;IApBP,KAAAuO,KAAK,GAALA,KAAK;IACL,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAC,cAAc,GAAdA,cAAc;IACd,KAAAC,aAAa,GAAbA,aAAa;IACb,KAAAC,qBAAqB,GAArBA,qBAAqB;IACrB,KAAAC,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAA5O,cAAc,GAAdA,cAAc;IAChB,KAAAoT,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAA+4B,sBAAsB,GAAtBA,sBAAsB;IACtB,KAAAt9B,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAC,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAC,kBAAkB,GAAlBA,kBAAkB;IAtC5B,KAAAC,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAC,UAAU,GAAWb,qEAAS,CAAC+9B,QAAQ;IAItB,KAAAC,0BAA0B,GAA6B;MACtEC,WAAW,EAAEh0B,sEAAW;MACxBsF,iBAAiB,EAAExF,6EAAkB,CAACm0B,YAAY,CAACC,QAAQ;MAC3DC,iBAAiB,EAAEV,gFAAqB,CAACQ,YAAY,CAACG,eAAe,CAACC,MAAM;MAC5EC,iBAAiB,EAAEb,gFAAqB,CAACQ,YAAY,CAACG,eAAe,CAAC5oB;KACvE;IAEgB,KAAA+oB,mCAAmC,GAAiC;MACnFC,aAAa,EAAEA,CAACxoB,SAAiB,EAAEK,UAAe,KAAI;QACpD,IAAI,CAACI,UAAU,CAACT,SAAS,EAAEK,UAAU,CAAC;MACxC;KACD;IAEgB,KAAAooB,4BAA4B,GAAiC;MAC5ED,aAAa,EAAEA,CAACxoB,SAAiB,EAAEK,UAAe,KAAI;QACpD,IAAI,CAACI,UAAU,CAACT,SAAS,EAAEK,UAAU,CAAC;QACtC,IAAI,CAACqoB,sCAAsC,EAAE;MAC/C;KACD;IAuaO,KAAAA,sCAAsC,GAAIC,gBAA6B,IAAI;MACjF,MAAMC,qBAAqB,GAAGD,gBAAgB,GAAGA,gBAAgB,GAAG,MAAK;QACvE,IAAI,CAACE,eAAe,CAACp6B,qEAAU,CAACw5B,YAAY,CAACG,eAAe,EAAE,IAAI,CAACU,yBAAyB,EAAE,IAAI,EAAE,IAAI,CAACf,0BAA0B,CAAC;MACtI,CAAC;MAEDtf,UAAU,CAAC,MAAK;QACd,MAAMsgB,mBAAmB,GAAG,IAAI,CAACz+B,iBAAiB,CAAC0+B,mCAAmC,CAACh1B,sEAAW,EAAEF,6EAAkB,CAACm0B,YAAY,CAACC,QAAQ,EAAE,IAAI,CAACH,0BAA0B,CAACO,iBAAiB,CAAC;QAChM,IAAI,CAACh+B,iBAAiB,CAAC2+B,sBAAsB,CAACF,mBAAmB,EAAE,OAAO,EAAEH,qBAAqB,CAAC;QAElG,MAAMM,wBAAwB,GAAG,IAAI,CAAC5+B,iBAAiB,CAAC6+B,uCAAuC,CAACn1B,sEAAW,EAAEF,6EAAkB,CAACm0B,YAAY,CAACC,QAAQ,EAAE,uBAAuB,CAAC;QAC/K,IAAI,CAAC59B,iBAAiB,CAAC2+B,sBAAsB,CAACC,wBAAwB,EAAE,OAAO,EAAEN,qBAAqB,CAAC;QAEvG,IAAI,CAACt+B,iBAAiB,CAAC2+B,sBAAsB,CAACC,wBAAwB,EAAE,SAAS,EAAGx9B,KAAoB,IAAI;UAC1G,IAAIA,KAAK,CAACK,GAAG,KAAK,OAAO,EAAE;YACzB68B,qBAAqB,EAAE;;QAE3B,CAAC,CAAC;QAEF,IAAI,CAACt+B,iBAAiB,CAAC2+B,sBAAsB,CAACzW,QAAQ,EAAE,SAAS,EAAG9mB,KAAoB,IAAI;UAC1F,IAAIA,KAAK,CAACK,GAAG,KAAK,QAAQ,EAAE;YAC1B68B,qBAAqB,EAAE;;QAE3B,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC;IAtaC,IAAI,CAAC99B,UAAU,CACb,CAACpB,wEAAa,CAACu+B,YAAY,CAAC/mC,KAAK,EAAEyI,sEAAW,CAACs+B,YAAY,CAAC/mC,KAAK,CAAC,EAClE,MAAM5F,4EAAY,CAAC2P,SAAS,CAACm+B,mBAAmB,EAChD;MACE90B,aAAa,EAAEA,CAAA,KAAMP,yEAAc,CAACm0B,QAAQ;MAC5C1zB,WAAW,EAAE,CAAC9K,wEAAa,CAACu+B,YAAY,CAAC/mC,KAAK,EAAEyI,sEAAW,CAACs+B,YAAY,CAAC/mC,KAAK,EAAEwN,uEAAY,CAACu5B,YAAY,CAAC5uC,IAAI,CAAC;MAC/Gob,kBAAkB,EAAE7K,wEAAa,CAACq+B,YAAY,CAACoB,UAAU;MACzD10B,kBAAkB,EAAE/K,wEAAa,CAACq+B,YAAY,CAACqB,UAAU;MACzDz0B,sBAAsB,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,yCAAyC,CAAC;MACzHC,0BAA0B,EAAEA,CAACC,WAAgB,EAAEC,WAAgB,MAAM;QACnEC,UAAU,EAAEF,WAAW;QACvBza,WAAW,EAAE0a,WAAW,GAAGnB,8EAAmB,CAACo0B,YAAY,CAACsB,qBAAqB,CAAC;QAClFn0B,WAAW,EAAEJ,WAAW,GAAGnB,8EAAmB,CAACo0B,YAAY,CAACuB,qBAAqB,CAAC;QAClF1rB,KAAK,EAAE9I,WAAW,GAAGnB,8EAAmB,CAACo0B,YAAY,CAACwB,wBAAwB,CAAC;QAC/EpvC,YAAY,EAAE2a,WAAW,GAAGnB,8EAAmB,CAACo0B,YAAY,CAACyB,sBAAsB,CAAC;QACpFC,uCAAuC,EAAE30B,WAAW,GAAGnB,8EAAmB,CAACo0B,YAAY,CAAC2B,iDAAiD;OAC1I,CAAC;MACFp0B,uBAAuB,EAAEA,CAAA,KAAM,IAAI;MACnC2I,sBAAsB,EAAE;QACtBC,kBAAkB,EAAE,CAAC1U,wEAAa,CAACu+B,YAAY,CAAC/mC,KAAK,EAAEyI,sEAAW,CAACs+B,YAAY,CAAC/mC,KAAK,EAAEwN,uEAAY,CAACu5B,YAAY,CAAC5uC,IAAI,EAAEuQ,wEAAa,CAACq+B,YAAY,CAACqB,UAAU,CAAC;QAC7JjrB,kCAAkC,EAAE,CAACxK,8EAAmB,CAACo0B,YAAY,CAACsB,qBAAqB,CAAC;QAC5FjrB,qCAAqC,EAAE,CAAC,CAACzK,8EAAmB,CAACo0B,YAAY,CAACuB,qBAAqB,CAAC,EAAE,CAAC31B,8EAAmB,CAACo0B,YAAY,CAACwB,wBAAwB,CAAC;;KAEhK,CAAC;EACN;EAEArtC,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACqK,aAAa,CAACC,uBAAuB,EAAE;EAC9C;EAEAjK,QAAQA,CAACC,KAAU;IACjB,IAAI,CAACE,sBAAsB,CAAC,IAAI,CAAC6J,aAAa,CAACE,uBAAuB,EAAE,CAAC;IACzE,IAAI,IAAI,CAACF,aAAa,CAACG,2BAA2B,CAAC,IAAI,CAACH,aAAa,CAACE,uBAAuB,EAAE,CAAC,EAAE;MAChG,IAAI,CAACrL,iBAAiB,CAACuL,kBAAkB,CAAC7B,sEAAW,EAAEF,6EAAkB,CAACm0B,YAAY,CAACC,QAAQ,EAAEj0B,+EAAoB,CAACg0B,YAAY,CAAC;;EAEvI;EAEAnyB,UAAUA,CAACpK,KAAU;IACnB,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAACq+B,YAAY,CAACoB,UAAU;MAC1C,KAAKz/B,wEAAa,CAACq+B,YAAY,CAACqB,UAAU;QAAE;UAC1C,IAAI,CAACv8B,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACM,iBAAiB,CAACrK,KAAK,CAACsK,MAAM,CAAC,CAAC;UACrE;;;EAGN;EAEAC,mBAAmBA,CAACvK,KAAU;IAE5B,MAAMsG,YAAY,GAAG,IAAI,CAACA,YAAY;IACtC,OAAO,IAAI,CAACA,YAAY;IAExB,MAAM63B,iCAAiC,GAAGA,CAAC93B,OAAe,EAAE+3B,KAAa,EAAEC,kBAA8B,KACvG,IAAI,CAAClB,eAAe,CAACp6B,qEAAU,CAACw5B,YAAY,CAAC+B,qBAAqB,EAChE,IAAI,EACJ;MAAEC,aAAa,EAAEl4B;IAAO,CAAE,EAC1B,IAAI,EACJ,MAAM,IAAI,CAAC22B,sCAAsC,CAACqB,kBAAkB,CAAC,EACrE,IAAI,EACJ;MAAEG,WAAW,EAAEJ;IAAK,CAAE,CAAC;IAE3B,QAAQ93B,YAAY;MAClB,KAAKvD,qEAAU,CAACw5B,YAAY,CAACkC,sBAAsB;QAAE;UACnD,QAAQz+B,KAAK,EAAE0+B,0BAA0B;YACvC,KAAKvoB,yEAAc,CAAComB,YAAY,CAACoC,0BAA0B,CAACC,WAAW;cAAE;gBACvE,IAAI,CAACzC,sBAAsB,CAAC0C,wBAAwB,CAAC,IAAI,CAAChC,mCAAmC,EAAE78B,KAAK,CAAC0+B,0BAA0B,EAAE1+B,KAAK,CAAC8+B,2BAA2B,EAAEX,iCAAiC,CAAC;gBACtM;;YAEF,KAAKhoB,yEAAc,CAAComB,YAAY,CAACoC,0BAA0B,CAACI,QAAQ;cAAE;gBACpE,IAAI,CAAC5C,sBAAsB,CAAC6C,6BAA6B,CAAC,IAAI,CAACnC,mCAAmC,EAAE78B,KAAK,CAAC0+B,0BAA0B,EAAE1+B,KAAK,CAAC8+B,2BAA2B,EAAEX,iCAAiC,CAAC;gBAC3M;;;UAGJ;;MAEF,KAAKp7B,qEAAU,CAACw5B,YAAY,CAACG,eAAe;QAAE;UAC5C,IAAI,CAACU,yBAAyB,GAAGp9B,KAAK;UACtC,QAAQA,KAAK,EAAEi/B,mBAAmB;YAChC,KAAK9oB,yEAAc,CAAComB,YAAY,CAAC2C,mBAAmB,CAACC,YAAY;cAAE;gBACjE,MAAMxqB,UAAU,GAAG;kBAAEyqB,sBAAsB,EAAEjpB,yEAAc,CAAComB,YAAY,CAAC8C,sBAAsB,CAACC;gBAAY,CAAE;gBAC9G,IAAI,CAACnC,eAAe,CAACp6B,qEAAU,CAACw5B,YAAY,CAACgD,kBAAkB,EAAE5qB,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAACqoB,sCAAsC,EAAE,CAAC;gBAC7I;;YAEF,KAAK7mB,yEAAc,CAAComB,YAAY,CAAC2C,mBAAmB,CAACM,QAAQ;cAAE;gBAC7D,MAAM7qB,UAAU,GAAG;kBAAE8qB,kBAAkB,EAAEtpB,yEAAc,CAAComB,YAAY,CAACmD,kBAAkB,CAACC;gBAAQ,CAAE;gBAClG,IAAI,CAACxC,eAAe,CAACp6B,qEAAU,CAACw5B,YAAY,CAACqD,cAAc,EAAEjrB,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAACqoB,sCAAsC,EAAE,CAAC;gBACzI;;YAEF,KAAK7mB,yEAAc,CAAComB,YAAY,CAAC2C,mBAAmB,CAACW,OAAO;cAAE;gBAC5D,MAAMlrB,UAAU,GAAG;kBAAEmrB,iBAAiB,EAAE3pB,yEAAc,CAAComB,YAAY,CAACwD,iBAAiB,CAAC9vB;gBAAI,CAAE;gBAC5F,IAAI,CAACktB,eAAe,CAACp6B,qEAAU,CAACw5B,YAAY,CAACyD,aAAa,EAAErrB,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAACqoB,sCAAsC,EAAE,CAAC;gBACxI;;;UAGJ;;MAEF,KAAKj6B,qEAAU,CAACw5B,YAAY,CAACgD,kBAAkB;QAAE;UAC/C,QAAQv/B,KAAK,EAAEo/B,sBAAsB;YACnC,KAAKjpB,yEAAc,CAAComB,YAAY,CAAC8C,sBAAsB,CAACC,YAAY;cAAE;gBACpE,IAAI,CAACnD,sBAAsB,CAAC8D,sBAAsB,CAAC,IAAI,CAAClD,4BAA4B,EAAE/8B,KAAK,CAACo/B,sBAAsB,EAAEp/B,KAAK,CAACkgC,uBAAuB,EAAE/B,iCAAiC,CAAC;gBACrL;;YAEF,KAAKhoB,yEAAc,CAAComB,YAAY,CAAC8C,sBAAsB,CAACc,aAAa;cAAE;gBACrE,IAAI,CAAChE,sBAAsB,CAACiE,uBAAuB,CAAC,IAAI,CAACrD,4BAA4B,EAAE/8B,KAAK,CAACo/B,sBAAsB,EAAEp/B,KAAK,CAACkgC,uBAAuB,EAAE/B,iCAAiC,CAAC;gBACtL;;YAEF,KAAKhoB,yEAAc,CAAComB,YAAY,CAAC8C,sBAAsB,CAACgB,oBAAoB;cAAE;gBAC5E,IAAI,CAAClE,sBAAsB,CAACmE,8BAA8B,CAAC,IAAI,CAACvD,4BAA4B,EAAE/8B,KAAK,CAACo/B,sBAAsB,EAAEp/B,KAAK,CAACkgC,uBAAuB,EAAE/B,iCAAiC,CAAC;gBAC7L;;YAEF,KAAKhoB,yEAAc,CAAComB,YAAY,CAAC8C,sBAAsB,CAACkB,mBAAmB;cAAE;gBAC3E,IAAI,CAACpE,sBAAsB,CAACqE,6BAA6B,CAAC,IAAI,CAACzD,4BAA4B,EAAE/8B,KAAK,CAACo/B,sBAAsB,EAAEp/B,KAAK,CAACkgC,uBAAuB,EAAE/B,iCAAiC,CAAC;gBAC5L;;;UAGJ;;MAEF,KAAKp7B,qEAAU,CAACw5B,YAAY,CAACqD,cAAc;QAAE;UAC3C,QAAQ5/B,KAAK,EAAEy/B,kBAAkB;YAC/B,KAAKtpB,yEAAc,CAAComB,YAAY,CAACmD,kBAAkB,CAACC,QAAQ;YAC5D,KAAKxpB,yEAAc,CAAComB,YAAY,CAACmD,kBAAkB,CAACe,iBAAiB;cAAE;gBACrE,IAAI,CAACtE,sBAAsB,CAACuE,kBAAkB,CAAC,IAAI,CAAC3D,4BAA4B,EAAE/8B,KAAK,CAACy/B,kBAAkB,EAAEz/B,KAAK,CAAC2gC,4BAA4B,EAAE3gC,KAAK,CAAC4gC,mBAAmB,EAAEzC,iCAAiC,CAAC;gBAC7M;;YAEF,KAAKhoB,yEAAc,CAAComB,YAAY,CAACmD,kBAAkB,CAACmB,SAAS;cAAE;gBAC7D,IAAI,CAAC1E,sBAAsB,CAAC2E,mBAAmB,CAAC,IAAI,CAAC/D,4BAA4B,EAAE/8B,KAAK,CAACy/B,kBAAkB,EAAEz/B,KAAK,CAAC2gC,4BAA4B,EAAE3gC,KAAK,CAAC4gC,mBAAmB,EAAEzC,iCAAiC,CAAC;gBAC9M;;;UAGJ;;MAEF,KAAKp7B,qEAAU,CAACw5B,YAAY,CAACyD,aAAa;QAAE;UAC1C,QAAQhgC,KAAK,EAAE8/B,iBAAiB;YAC9B,KAAK3pB,yEAAc,CAAComB,YAAY,CAACwD,iBAAiB,CAAC9vB,IAAI;cAAE;gBACvD,IAAI,CAACksB,sBAAsB,CAAC4E,iBAAiB,CAAC,IAAI,CAAChE,4BAA4B,EAAE/8B,KAAK,CAAC8/B,iBAAiB,EAAE9/B,KAAK,CAACghC,2BAA2B,EAAEhhC,KAAK,CAACihC,kBAAkB,EAAE9C,iCAAiC,CAAC;gBACzM;;YAEF,KAAKhoB,yEAAc,CAAComB,YAAY,CAACwD,iBAAiB,CAACmB,KAAK;cAAE;gBACxD,IAAI,CAAC/E,sBAAsB,CAACgF,kBAAkB,CAAC,IAAI,CAACpE,4BAA4B,EAAE/8B,KAAK,CAAC8/B,iBAAiB,EAAE9/B,KAAK,CAACghC,2BAA2B,EAAEhhC,KAAK,CAACihC,kBAAkB,EAAE9C,iCAAiC,CAAC;gBAC1M;;YAEF,KAAKhoB,yEAAc,CAAComB,YAAY,CAACwD,iBAAiB,CAACqB,MAAM;cAAE;gBACzD,IAAI,CAACjF,sBAAsB,CAACkF,mBAAmB,CAAC,IAAI,CAACtE,4BAA4B,EAAE/8B,KAAK,CAAC8/B,iBAAiB,EAAE9/B,KAAK,CAACghC,2BAA2B,EAAEhhC,KAAK,CAACihC,kBAAkB,EAAE9C,iCAAiC,CAAC;gBAC3M;;;UAGJ;;MAEF,KAAKp7B,qEAAU,CAACw5B,YAAY,CAAC+E,kBAAkB;QAAE;UAC/C,IAAIthC,KAAK,EAAEuhC,0BAA0B,EAAE;YACrC,IAAI,CAACC,wBAAwB,CAACxhC,KAAK,CAACuhC,0BAA0B,CAAC;;UAEjE;;MAEF,KAAKx+B,qEAAU,CAACw5B,YAAY,CAAC/G,gBAAgB;QAAE;UAC7C,MAAMiM,6BAA6B,GAAG,IAAI,CAACC,gCAAgC,EAAE;UAC7E,QAAQ1hC,KAAK,EAAE21B,cAAc;YAC3B,KAAKxf,yEAAc,CAAComB,YAAY,CAAC3G,cAAc,CAACC,QAAQ;cAAE;gBACxD,IAAI,CAACh3B,kBAAkB,CAAC8iC,iBAAiB,CAACF,6BAA6B,CAAC;gBACxE;;YAEF,KAAKtrB,yEAAc,CAAComB,YAAY,CAAC3G,cAAc,CAACgM,qBAAqB;cAAE;gBACrE,IAAI,CAAChjC,iBAAiB,CAACijC,UAAU,CAC/B,CAAC,OAAO,EAAE,MAAM,CAAC,EACjBC,IAAI,IAAI,IAAI,CAACC,+CAA+C,CAACD,IAAI,EAAE9hC,KAAK,CAAC,EACzE,MAAM,IAAI,CAAC+U,UAAU,CAAChS,qEAAU,CAACw5B,YAAY,CAAC/G,gBAAgB,EAAEx1B,KAAK,CAAC,CAAC;gBACzE;;YAEF,KAAKmW,yEAAc,CAAComB,YAAY,CAAC3G,cAAc,CAACG,gBAAgB;cAAE;gBAChE,IAAI,CAACl3B,kBAAkB,CAACmjC,iCAAiC,CAACP,6BAA6B,CAAC;gBACxF;;;UAGJ;;MAEF,KAAK1+B,qEAAU,CAACw5B,YAAY,CAAC0F,qBAAqB;QAAE;UAClD,IAAIjiC,KAAK,EAAEkiC,MAAM,IAAIliC,KAAK,EAAEmiC,SAAS,EAAE;YACrC,QAAQniC,KAAK,EAAEoiC,8BAA8B;cAC3C,KAAKjsB,yEAAc,CAAComB,YAAY,CAAC8F,UAAU,CAACC,YAAY;gBAAE;kBACxD,IAAI,CAACC,SAAS,CAACviC,KAAK,CAACkiC,MAAM,EAAEliC,KAAK,CAACmiC,SAAS,EAAEnG,qEAAa,CAACwG,oBAAoB,CAAC;kBACjF;;cAEF,KAAKrsB,yEAAc,CAAComB,YAAY,CAAC8F,UAAU,CAACI,MAAM;gBAAE;kBAClD,IAAI,CAACF,SAAS,CAACviC,KAAK,CAACkiC,MAAM,EAAEliC,KAAK,CAACmiC,SAAS,EAAEnG,qEAAa,CAAC0G,UAAU,CAAC;kBACvE;;cAEF;gBAAS;kBACP,IAAI,CAACH,SAAS,CAACviC,KAAK,CAACkiC,MAAM,EAAEliC,KAAK,CAACmiC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;;;;UAI3D;;MAEF,KAAKp/B,qEAAU,CAACw5B,YAAY,CAACoG,oBAAoB;QAAE;UACjD,IAAI3iC,KAAK,EAAEkiC,MAAM,IAAIliC,KAAK,EAAEmiC,SAAS,EAAE;YACrC,IAAI,CAACS,QAAQ,CAAC5iC,KAAK,CAACkiC,MAAM,EAAEliC,KAAK,CAACmiC,SAAS,CAAC;;UAE9C;;;EAGN;EAEAhiC,mBAAmBA,CAACH,KAAU;IAC5B,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAACq+B,YAAY,CAACsG,eAAe;QAAE;UAC/C,QAAQ7iC,KAAK,CAACA,KAAK,CAACO,IAAI;YACtB,KAAKxC,sEAAW,CAACw+B,YAAY,CAAC/7B,IAAI;YAClC,KAAKzC,sEAAW,CAACw+B,YAAY,CAAC97B,IAAI;cAAE;gBAClC,IAAI,CAACjC,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC8B,IAAI,CAACQ,MAAM,EAAE6R,KAAK,CAACA,KAAK,CAACW,IAAI,CAAClB,EAAE,CAAC,CAAC;gBAC5E;;YAEF,KAAK1B,sEAAW,CAACw+B,YAAY,CAAC1C,KAAK;cAAE;gBACnC,MAAMlsC,IAAI,GAAGqS,KAAK,CAACA,KAAK,CAACW,IAAI;gBAC7B,MAAMgU,UAAU,GAAG;kBAAEutB,MAAM,EAAEv0C,IAAI,CAAC8R,EAAE;kBAAE0iC,SAAS,EAAEx0C,IAAI,CAAC8rB;gBAAK,CAAE;gBAC7D,MAAM7E,wBAAwB,GAAG;kBAAEutB,SAAS,EAAEx0C,IAAI,CAAC8rB;gBAAK,CAAE;gBAC1D,IAAI,CAAC1E,UAAU,CAAChS,qEAAU,CAACw5B,YAAY,CAAC0F,qBAAqB,EAAEttB,UAAU,EAAEC,wBAAwB,CAAC;gBACpG;;YAEF,KAAK7W,sEAAW,CAACw+B,YAAY,CAACuG,IAAI;cAAE;gBAClC,MAAMn1C,IAAI,GAAGqS,KAAK,CAACA,KAAK,CAACW,IAAI;gBAC7B,MAAMgU,UAAU,GAAG;kBAAEutB,MAAM,EAAEv0C,IAAI,CAAC8R,EAAE;kBAAE0iC,SAAS,EAAEx0C,IAAI,CAAC8rB;gBAAK,CAAE;gBAC7D,MAAM7E,wBAAwB,GAAG;kBAAEutB,SAAS,EAAEx0C,IAAI,CAAC8rB;gBAAK,CAAE;gBAC1D,IAAI,CAAC1E,UAAU,CAAChS,qEAAU,CAACw5B,YAAY,CAACoG,oBAAoB,EAAEhuB,UAAU,EAAEC,wBAAwB,CAAC;gBACnG;;YAEF,KAAK7W,sEAAW,CAACw+B,YAAY,CAAC7xB,MAAM;cAAE;gBACpC,QAAQ1K,KAAK,CAACA,KAAK,CAACW,IAAI,CAACgK,UAAU;kBACjC,KAAK1C,4EAAiB,CAACs0B,YAAY,CAAC3xB,GAAG;oBAAE;sBACvC,IAAI,CAACpM,MAAM,CAACgD,QAAQ,CAAC,CAAC,GAAG,EAAE3V,sEAAc,CAAC8B,IAAI,CAACQ,MAAM,CAAC,CAAC;sBACvD;;kBAEF,KAAK8Z,4EAAiB,CAACs0B,YAAY,CAACkC,sBAAsB;oBAAE;sBAC1D,MAAM9pB,UAAU,GAAG;wBAAE+pB,0BAA0B,EAAEvoB,yEAAc,CAAComB,YAAY,CAACoC,0BAA0B,CAACC;sBAAW,CAAE;sBACrH,IAAI,CAAC7pB,UAAU,CAAChS,qEAAU,CAACw5B,YAAY,CAACkC,sBAAsB,EAAE9pB,UAAU,CAAC;sBAC3E;;kBAEF,KAAK1M,4EAAiB,CAACs0B,YAAY,CAACG,eAAe;oBAAE;sBACnD,MAAM/nB,UAAU,GAAG;wBAAEsqB,mBAAmB,EAAE9oB,yEAAc,CAAComB,YAAY,CAAC2C,mBAAmB,CAACW;sBAAO,CAAE;sBACnG,IAAI,CAAC9qB,UAAU,CAAChS,qEAAU,CAACw5B,YAAY,CAACG,eAAe,EAAE/nB,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC0nB,0BAA0B,CAAC;sBAC3G;;kBAEF,KAAKp0B,4EAAiB,CAACs0B,YAAY,CAACwG,cAAc;oBAAE;sBAClD,IAAI,CAAChuB,UAAU,CAAChS,qEAAU,CAACw5B,YAAY,CAAC+E,kBAAkB,CAAC;sBAC3D;;kBAEF,KAAKr5B,4EAAiB,CAACs0B,YAAY,CAACrG,oBAAoB;oBAAE;sBACxD,MAAMvhB,UAAU,GAAG;wBAAEghB,cAAc,EAAExf,yEAAc,CAAComB,YAAY,CAAC3G,cAAc,CAACC;sBAAQ,CAAE;sBAC1F,IAAI,CAAC9gB,UAAU,CAAChS,qEAAU,CAACw5B,YAAY,CAAC/G,gBAAgB,EAAE7gB,UAAU,CAAC;sBACrE;;kBAEF,KAAK1M,4EAAiB,CAACs0B,YAAY,CAAC1xB,UAAU;oBAAE;sBAC9C,MAAM42B,6BAA6B,GAAG,IAAI,CAACC,gCAAgC,EAAE;sBAC7E,IAAI,CAAC7iC,kBAAkB,CAAC8iC,iBAAiB,CAACF,6BAA6B,CAAC;sBACxE;;kBAEF,KAAKx5B,4EAAiB,CAACs0B,YAAY,CAACtxB,UAAU;oBAAE;sBAC9C,IAAI,CAAC+3B,mBAAmB,EAAE;sBAC1B;;kBAEF,KAAK/6B,4EAAiB,CAACs0B,YAAY,CAAC0G,SAAS;oBAAE;sBAC7C,IAAI,CAACC,kBAAkB,EAAE;sBACzB;;kBAEF,KAAKj7B,4EAAiB,CAACs0B,YAAY,CAAC4G,QAAQ;oBAAE;sBAC5C,IAAI,CAACC,iBAAiB,EAAE;sBACxB;;;gBAGJ;;;UAGJ;;;EAGN;EAEAJ,mBAAmBA,CAAA;IACjB,IAAI,CAAClkC,kBAAkB,CAACkkC,mBAAmB,EAAE,CAC1ChtC,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAACuQ,iBAAiB,IAAG;MAC7B,IAAI,CAACA,iBAAiB,CAACC,WAAW,EAAE;QAClC,IAAI,CAACC,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACoB,gBAAgB,EAAE,CAAC;;IAE5D,CAAC,CAAC;EACN;EAEA+3B,kBAAkBA,CAAA;IAEhB,MAAMG,sBAAsB,GAAGA,CAAA,KAC7B,IAAI,CAAC3kC,aAAa,CAAC8c,WAAW,CAAC,uBAAuB,CAAC;IAEzD,MAAM8nB,sBAAsB,GAAIC,aAA0C,IACxE,IAAI,CAAC7kC,aAAa,CAAC8c,WAAW,CAAC,uBAAuB,EAAE;MAAEgoB,OAAO,EAAE,IAAI,CAACC,sBAAsB,CAACF,aAAa,CAACC,OAAO;IAAC,CAAE,CAAC;IAE1H,MAAME,mBAAmB,GAAGA,CAACvX,QAAgB,EAAEoX,aAA0C,KACvF,IAAI,CAAC7kC,aAAa,CAAC8c,WAAW,CAAC,oBAAoB,EAAE;MAAE2Q,QAAQ;MAAEqX,OAAO,EAAE,IAAI,CAACC,sBAAsB,CAACF,aAAa,CAACC,OAAO;IAAC,CAAE,CAAC;IAEjI,MAAMG,SAAS,GAAIJ,aAA0C,IAAI;MAC/D,MAAMpX,QAAQ,GAAG,IAAI,CAACttB,kBAAkB,CAAC+kC,sBAAsB,CAACL,aAAa,CAACM,cAAc,EAAE,YAAY,CAAC;MAC3GH,mBAAmB,CAACvX,QAAQ,EAAEoX,aAAa,CAAC,CACzCvtC,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC,MAAK;QACd,IAAI,CAACyQ,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACoB,gBAAgB,EAAE,CAAC;MAC1D,CAAC,CAAC;IACN,CAAC;IAED,MAAM24B,QAAQ,GAAGA,CAAA,KACf/mB,UAAU,CAAC,MAAM,IAAI,CAACmmB,kBAAkB,EAAE,EAAEpH,oFAAyB,CAAC;IAExEuH,sBAAsB,EAAE,CACrBrtC,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAACopB,YAAY,IAAG;MACxB,QAAQA,YAA4B;QAClC,KAAK/D,oDAAY,CAACyF,QAAQ;UAAE;YAC1B,IAAI,CAAC9c,iBAAiB,CAACijC,UAAU,CAC/B,CAAC,OAAO,EAAE,MAAM,CAAC,EACjBC,IAAI,IAAI,IAAI,CAAChjC,kBAAkB,CAACokC,kBAAkB,CAACpB,IAAI,EAAEwB,sBAAsB,CAAC,CAC7EttC,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC;cACT4wB,IAAI,EAAE+hB,aAAa,IAAII,SAAS,CAACJ,aAAa,CAAC;cAC/Cl0B,KAAK,EAAEA,CAAA,KAAMy0B,QAAQ;aACtB,CAAC,EACJ,MAAMA,QAAQ,EAAE,CAAC;YACnB;;QAEF,KAAK7tB,oDAAY,CAAC6F,QAAQ;UAAE;YAC1B;;;IAGN,CAAC,CAAC;EACN;EAEAsnB,iBAAiBA,CAAA;IAEf,MAAMC,sBAAsB,GAAGA,CAAA,KAC7B,IAAI,CAAC3kC,aAAa,CAAC8c,WAAW,CAAC,sBAAsB,CAAC;IAExD,MAAM8nB,sBAAsB,GAAIS,YAAwC,IACtE,IAAI,CAACrlC,aAAa,CAAC8c,WAAW,CAAC,sBAAsB,EAAE;MAAEgoB,OAAO,EAAE,IAAI,CAACQ,qBAAqB,CAACD,YAAY,CAACP,OAAO;IAAC,CAAE,CAAC;IAEvH,MAAME,mBAAmB,GAAGA,CAACvX,QAAgB,EAAE4X,YAAwC,KACrF,IAAI,CAACrlC,aAAa,CAAC8c,WAAW,CAAC,mBAAmB,EAAE;MAAE2Q,QAAQ;MAAEqX,OAAO,EAAE,IAAI,CAACQ,qBAAqB,CAACD,YAAY,CAACP,OAAO;IAAC,CAAE,CAAC;IAE9H,MAAMG,SAAS,GAAII,YAAwC,IAAI;MAC7D,MAAM5X,QAAQ,GAAG,IAAI,CAACttB,kBAAkB,CAAC+kC,sBAAsB,CAACG,YAAY,CAACF,cAAc,EAAE,UAAU,CAAC;MACxGH,mBAAmB,CAACvX,QAAQ,EAAE4X,YAAY,CAAC,CACxC/tC,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC,MAAK;QACd,IAAI,CAACyQ,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACoB,gBAAgB,EAAE,CAAC;MAC1D,CAAC,CAAC;IACN,CAAC;IAED,MAAM24B,QAAQ,GAAGA,CAAA,KACf/mB,UAAU,CAAC,MAAM,IAAI,CAACqmB,iBAAiB,EAAE,EAAEtH,oFAAyB,CAAC;IAEvEuH,sBAAsB,EAAE,CACrBrtC,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAACopB,YAAY,IAAG;MACxB,QAAQA,YAA4B;QAClC,KAAK/D,oDAAY,CAACyF,QAAQ;UAAE;YAC1B,IAAI,CAAC9c,iBAAiB,CAACijC,UAAU,CAC/B,CAAC,OAAO,EAAE,MAAM,CAAC,EACjBC,IAAI,IAAI,IAAI,CAAChjC,kBAAkB,CAACskC,iBAAiB,CAACtB,IAAI,EAAEwB,sBAAsB,CAAC,CAC5EttC,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC;cACT4wB,IAAI,EAAEuiB,YAAY,IAAIJ,SAAS,CAACI,YAAY,CAAC;cAC7C10B,KAAK,EAAEA,CAAA,KAAMy0B,QAAQ;aACtB,CAAC,EACJ,MAAMA,QAAQ,EAAE,CAAC;YACnB;;QAEF,KAAK7tB,oDAAY,CAAC6F,QAAQ;UAAE;YAC1B;;;IAGN,CAAC,CAAC;EACN;EAEAimB,+CAA+CA,CAACD,IAAU,EAAEmC,0BAA+B;IACzF,IAAI,CAACnlC,kBAAkB,CAAColC,cAAc,CAACpC,IAAI,CAAC,CACzC9rC,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC;MACT4wB,IAAI,EAAE2iB,MAAM,IAAG;QACb,MAAM1C,6BAA6B,GAA8B;UAAE3gC,SAAS,EAAEqjC;QAAM,CAAE;QACtF,IAAI,CAACtlC,kBAAkB,CAACulC,8BAA8B,CAAC3C,6BAA6B,CAAC;MACvF,CAAC;MACDpyB,KAAK,EAAEA,KAAK,IAAG;QACb,IAAI,CAAC8tB,eAAe,CAACp6B,qEAAU,CAACw5B,YAAY,CAAC/G,gBAAgB,EAAEyO,0BAA0B,CAAC;MAC5F;KACD,CAAC;EACN;EAgCQlvB,UAAUA,CAACT,SAAiB,EAAEK,UAAgB,EAAEC,wBAA8C,EAAEyvB,WAAsC,EAAEC,kBAA4B,EAAEC,wBAA8C;IAC1N,IAAI,CAACj+B,YAAY,GAAGgO,SAAS;IAC7B,IAAI+vB,WAAW,EAAE;MACf,IAAI,CAACjhC,mBAAmB,CAACohC,iCAAiC,CAACH,WAAW,CAAC;;IAEzE,IAAI,CAAC3lC,aAAa,CAAC+G,UAAU,CAAC6O,SAAS,EAAEK,UAAU,EAAEC,wBAAwB,EAAE0vB,kBAAkB,EAAE,IAAI,EAAEC,wBAAwB,CAAC;EACpI;EAEQpH,eAAeA,CAAC7oB,SAAiB,EAAEK,UAAgB,EAAEC,wBAA8C,EAAEyvB,WAAsC,EAAEI,oBAAiC,EAAEH,kBAA4B,EAAEC,wBAA8C;IAClQxnB,UAAU,CAAC,MAAK;MACd,IAAI,CAAChI,UAAU,CAACT,SAAS,EAAEK,UAAU,EAAEC,wBAAwB,EAAEyvB,WAAW,EAAEC,kBAAkB,EAAEC,wBAAwB,CAAC;MAC3HE,oBAAoB,GAAE,CAAE;IAC1B,CAAC,EAAE3I,oFAAyB,CAAC;EAC/B;EAEQyG,SAASA,CAACL,MAAc,EAAEC,SAAiB,EAAEuC,aAA4B;IAC/E,IAAI,CAACjmC,cAAc,CAACqH,WAAW,EAAE;IACjC,MAAMD,OAAO,GAAqB;MAAEq8B,MAAM;MAAEwC;IAAa,CAAE;IAC3D,IAAI,CAAC10C,cAAc,CAAC8F,IAAI,CAAClG,4EAAY,CAAC4C,eAAe,CAACmyC,KAAK,EAAE9+B,OAAO,CAAC,CAClE7P,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAE+P,IAAqB,IAAI;MACnC,IAAI,CAAClC,cAAc,CAACuH,WAAW,EAAE;MACjC,QAAQrF,IAAI,EAAEmO,MAAM;QAClB,KAAKmtB,0FAAqB,CAAC2I,OAAO;UAAE;YAClC,IAAI,CAAClmC,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAACw5B,YAAY,CAACsI,gBAAgB,EAAE,IAAI,EAAE;cAAE1C;YAAS,CAAE,CAAC;YAC5F,IAAI,CAAC9gC,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACoB,gBAAgB,EAAE,CAAC;YACxD;;QAEF,KAAK8wB,0FAAqB,CAAC6I,KAAK;UAAE;YAChC,IAAI,CAACpmC,aAAa,CAAC+G,UAAU,CAAC,GAAG1C,qEAAU,CAACw5B,YAAY,CAACwI,cAAc,GAAGpkC,IAAI,CAACqkC,SAAS,EAAE,EAAE,IAAI,EAAE;cAAE,GAAGrkC,IAAI,CAACskC,SAAS;cAAE9C;YAAS,CAAE,CAAC;YACnI;;QAEF;UAAS;YACP,IAAI,CAACzjC,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC2C,MAAM,CAACw/B,WAAW,CAAC;YAC5D;;;IAGN,CAAC,CAAC;EACN;EAEQtC,QAAQA,CAACV,MAAc,EAAEC,SAAiB;IAChD,IAAI,CAAC1jC,cAAc,CAACqH,WAAW,EAAE;IACjC,MAAMD,OAAO,GAAoB;MAAEq8B;IAAM,CAAE;IAC3C,IAAI,CAAClyC,cAAc,CAAC8F,IAAI,CAAClG,4EAAY,CAAC4C,eAAe,CAAC2yC,IAAI,EAAEt/B,OAAO,CAAC,CACjE7P,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAE+P,IAAoB,IAAI;MAClC,IAAI,CAAClC,cAAc,CAACuH,WAAW,EAAE;MACjC,QAAQrF,IAAI,EAAEmO,MAAM;QAClB,KAAKotB,wFAAoB,CAAC0I,OAAO;UAAE;YACjC,IAAI,CAAClmC,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAACw5B,YAAY,CAAC6I,eAAe,EAAE,IAAI,EAAE;cAAEjD;YAAS,CAAE,CAAC;YAC3F,IAAI,CAAC9gC,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACoB,gBAAgB,EAAE,CAAC;YACxD;;QAEF,KAAK+wB,wFAAoB,CAAC4I,KAAK;UAAE;YAC/B,IAAI,CAACpmC,aAAa,CAAC+G,UAAU,CAAC,GAAG1C,qEAAU,CAACw5B,YAAY,CAAC8I,aAAa,GAAG1kC,IAAI,CAACqkC,SAAS,EAAE,EAAE,IAAI,EAAE;cAAE,GAAGrkC,IAAI,CAACskC,SAAS;cAAE9C;YAAS,CAAE,CAAC;YAClI;;QAEF;UAAS;YACP,IAAI,CAACzjC,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC2C,MAAM,CAACw/B,WAAW,CAAC;YAC5D;;;IAGN,CAAC,CAAC;EACN;EAEQxD,gCAAgCA,CAAA;IACtC,MAAMt2B,QAAQ,GAAG,IAAI,CAACC,gBAAgB,CACpC,IAAI,CAACrH,QAAQ,CAACC,KAAK,EACnBjG,wEAAa,CAACu+B,YAAY,CAAC/mC,KAAK,EAChCyI,sEAAW,CAACs+B,YAAY,CAAC/mC,KAAK,EAC9BwN,uEAAY,CAACu5B,YAAY,CAAC5uC,IAAI,EAC9BuQ,wEAAa,CAACq+B,YAAY,CAACsG,eAAe,CAAC;IAC7C,MAAM/hC,SAAS,GAAGsK,QAAQ,CAACE,GAAG,CAACC,MAAM,IAAIA,MAAM,CAAC9L,EAAE,CAAC;IACnD,MAAMgiC,6BAA6B,GAA8B;MAAE3gC;IAAS,CAAE;IAC9E,OAAO2gC,6BAA6B;EACtC;EAEQD,wBAAwBA,CAAC/nB,KAAa;IAC5C,MAAM5T,OAAO,GAA+B;MAAE4T,KAAK,EAAEA;IAAK,CAAE;IAC5D,IAAI,CAACzpB,cAAc,CAAC8F,IAAI,CAAClG,4EAAY,CAAC4C,eAAe,CAAC8yC,cAAc,EAAEz/B,OAAO,CAAC,CAC3E7P,IAAI,CAACrG,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC+P,IAAI,IAAG;MAChB,IAAIA,IAAI,EAAE;QACR,IAAI,CAAClC,cAAc,CAACuH,WAAW,EAAE;QACjC,MAAMsO,SAAS,GAAG3T,IAAI,CAAC4kC,OAAO,GAC1BxiC,qEAAU,CAACw5B,YAAY,CAACiJ,+BAA+B,GACvDziC,qEAAU,CAACw5B,YAAY,CAACkJ,2BAA2B;QACvD,IAAI,CAAC/mC,aAAa,CAAC+G,UAAU,CAAC6O,SAAS,CAAC;;IAE5C,CAAC,CAAC;EACN;EAEQmvB,sBAAsBA,CAACD,OAAmC;IAEhE,MAAMkC,UAAU,GAAGlC,OAAO,EAAEkC,UAAU,EAAE5wB,QAAQ,EAAE;IAClD,MAAM6wB,iBAAiB,GAAGnC,OAAO,EAAEmC,iBAAiB,EAAE7wB,QAAQ,EAAE;IAChE,MAAM8wB,iBAAiB,GAAGpC,OAAO,EAAEoC,iBAAiB,EAAE9wB,QAAQ,EAAE;IAEhE,MAAMzQ,MAAM,GAAsC,EAAE;IACpD,MAAMwhC,kBAAkB,GAAIzlC,KAAsC,IAAI;MACpE,IAAIA,KAAK,CAACmlB,KAAK,EAAE;QACflhB,MAAM,CAACyhC,IAAI,CAAC1lC,KAAK,CAAC;;IAEtB,CAAC;IACDylC,kBAAkB,CAAC;MAAExoC,IAAI,EAAE,sBAAsB;MAAEkoB,KAAK,EAAEmgB;IAAU,CAAE,CAAC;IACvEG,kBAAkB,CAAC;MAAExoC,IAAI,EAAE,iBAAiB;MAAEkoB,KAAK,EAAEogB;IAAiB,CAAE,CAAC;IACzEE,kBAAkB,CAAC;MAAExoC,IAAI,EAAE,gBAAgB;MAAEkoB,KAAK,EAAEqgB;IAAiB,CAAE,CAAC;IAExE,IAAIvhC,MAAM,CAACkQ,MAAM,KAAK,CAAC,EAAE;MACvB,OAAO,EAAE;;IAEX,MAAMwxB,WAAW,GACf,IAAI,CAACnnC,iBAAiB,CAAConC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,GAClD,IAAI,CAACpnC,iBAAiB,CAACqnC,YAAY,CAAC5hC,MAAM,CAAC;IAC7C,OAAO0hC,WAAW;EACpB;EAEQ/B,qBAAqBA,CAACR,OAAkC;IAE9D,MAAMkC,UAAU,GAAGlC,OAAO,EAAEkC,UAAU,EAAE5wB,QAAQ,EAAE;IAClD,MAAM6wB,iBAAiB,GAAGnC,OAAO,EAAEmC,iBAAiB,EAAE7wB,QAAQ,EAAE;IAChE,MAAM8wB,iBAAiB,GAAGpC,OAAO,EAAEoC,iBAAiB,EAAE9wB,QAAQ,EAAE;IAEhE,MAAMzQ,MAAM,GAAsC,EAAE;IACpD,MAAMwhC,kBAAkB,GAAIzlC,KAAsC,IAAI;MACpE,IAAIA,KAAK,CAACmlB,KAAK,EAAE;QACflhB,MAAM,CAACyhC,IAAI,CAAC1lC,KAAK,CAAC;;IAEtB,CAAC;IACDylC,kBAAkB,CAAC;MAAExoC,IAAI,EAAE,sBAAsB;MAAEkoB,KAAK,EAAEmgB;IAAU,CAAE,CAAC;IACvEG,kBAAkB,CAAC;MAAExoC,IAAI,EAAE,iBAAiB;MAAEkoB,KAAK,EAAEogB;IAAiB,CAAE,CAAC;IACzEE,kBAAkB,CAAC;MAAExoC,IAAI,EAAE,gBAAgB;MAAEkoB,KAAK,EAAEqgB;IAAiB,CAAE,CAAC;IAExE,IAAIvhC,MAAM,CAACkQ,MAAM,KAAK,CAAC,EAAE;MACvB,OAAO,EAAE;;IAEX,MAAMwxB,WAAW,GACf,IAAI,CAACnnC,iBAAiB,CAAConC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,GAClD,IAAI,CAACpnC,iBAAiB,CAACqnC,YAAY,CAAC5hC,MAAM,CAAC;IAC7C,OAAO0hC,WAAW;EACpB;EAAC,QAAA32C,CAAA;qBAvmBUjD,iBAAiB,EAAAmK,gEAAA,CAAA7G,4DAAA,GAAA6G,gEAAA,CAAA7G,oDAAA,GAAA6G,gEAAA,CAAAG,sDAAA,GAAAH,gEAAA,CAAAG,qDAAA,GAAAH,gEAAA,CAAAK,oFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,uEAAA,GAAA1L,gEAAA,CAAA2L,iFAAA,GAAA3L,gEAAA,CAAA6L,uFAAA,GAAA7L,gEAAA,CAAA+L,+EAAA,GAAA/L,gEAAA,CAAAmR,+EAAA,GAAAnR,gEAAA,CAAAoR,+EAAA;EAAA;EAAA,QAAArY,EAAA;UAAjBlD,iBAAiB;IAAAkL,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAA0uC,2BAAAxuC,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCvC9BrB,6DAAA,iCAOyD;QAAhCA,yDAHA,wBAAA8vC,yEAAAzjC,MAAA;UAAA,OAAc/K,GAAA,CAAAmI,QAAA,CAAA4C,MAAA,CAAgB;QAAA,EAAC,4BAAA0jC,6EAAA1jC,MAAA;UAAA,OACb/K,GAAA,CAAA2S,mBAAA,CAAA5H,MAAA,CAA2B;QAAA,EAAC,iCAAA2jC,kFAAA3jC,MAAA;UAAA,OACvB/K,GAAA,CAAAuI,mBAAA,CAAAwC,MAAA,CAA2B;QAAA,EAAC,sBAAA4jC,uEAAA5jC,MAAA;UAAA,OACvC/K,GAAA,CAAAwS,UAAA,CAAAzH,MAAA,CAAkB;QAAA,EAAC;QACxDrM,2DAAA,EAA0B;;;QALDA,yDAHA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACApB;AAE0E;AAE4J;AAC3L;AACP;AAee;;;;;;;;;;AAazE,MAAO1W,wBAAyB,SAAQkS,uFAA+C;EAM3FvO,YACYwO,KAAqB,EACrBC,MAAc,EACdC,cAA8B,EAC9BC,aAA4B,EAC5BC,qBAA4C,EAC5CC,iBAAoC,EACpC5O,cAA8B,EAChC6O,kBAAsC,EACtCmN,wBAAkD,EAClDjN,kBAAsC;IAE9C,KAAK,CACHR,KAAK,EACLC,MAAM,EACNC,cAAc,EACdC,aAAa,EACbC,qBAAqB,EACrBC,iBAAiB,EACjB5O,cAAc,CAAC;IAlBP,KAAAuO,KAAK,GAALA,KAAK;IACL,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAC,cAAc,GAAdA,cAAc;IACd,KAAAC,aAAa,GAAbA,aAAa;IACb,KAAAC,qBAAqB,GAArBA,qBAAqB;IACrB,KAAAC,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAA5O,cAAc,GAAdA,cAAc;IAChB,KAAA6O,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAAmN,wBAAwB,GAAxBA,wBAAwB;IACxB,KAAAjN,kBAAkB,GAAlBA,kBAAkB;IAd5B,KAAAC,qBAAqB,GAAGlB,oEAA4B,CAACmB,wCAAwC;IAE7F,KAAAC,UAAU,GAAWb,qEAAS,CAACmoC,eAAe;IAuB5C,IAAI,CAACpnC,UAAU,CACb,CAACpB,wEAAa,CAACyoC,mBAAmB,CAACxvB,YAAY,EAAEhZ,sEAAW,CAACwoC,mBAAmB,CAACxvB,YAAY,CAAC,EAC9F,MAAMrnB,4EAAY,CAAC2P,SAAS,CAACmnC,eAAe,EAC5C;MACE99B,aAAa,EAAEA,CAAA,KAAMP,yEAAc,CAACs+B,eAAe;MACnD79B,WAAW,EAAE,CAAC9K,wEAAa,CAACyoC,mBAAmB,CAACxvB,YAAY,EAAEhZ,sEAAW,CAACwoC,mBAAmB,CAACxvB,YAAY,EAAEjU,uEAAY,CAACyjC,mBAAmB,CAACxvB,YAAY,CAAC;MAC1JlO,kBAAkB,EAAE7K,wEAAa,CAACuoC,mBAAmB,CAACG,iBAAiB;MACvE39B,kBAAkB,EAAE/K,wEAAa,CAACuoC,mBAAmB,CAACI,iBAAiB;MACvE19B,sBAAsB,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,CAAC;MAC3GC,0BAA0B,EAAEA,CAACC,WAAgB,EAAEC,WAAgB,MAAM;QACnEC,UAAU,EAAEF,WAAW;QACvBy9B,gBAAgB,EAAEx9B,WAAW,GAAGnB,8EAAmB,CAACs+B,mBAAmB,CAACM,kCAAkC,CAAC;QAC3GzpC,KAAK,EAAEgM,WAAW,GAAGnB,8EAAmB,CAACs+B,mBAAmB,CAACO,wBAAwB,CAAC;QACtFp4C,WAAW,EAAE0a,WAAW,GAAGnB,8EAAmB,CAACs+B,mBAAmB,CAACQ,wBAAwB,CAAC;QAC5Fv9B,WAAW,EAAEJ,WAAW,GAAGnB,8EAAmB,CAACs+B,mBAAmB,CAACS,wBAAwB,CAAC;QAC5F90B,KAAK,EAAE9I,WAAW,GAAGnB,8EAAmB,CAACs+B,mBAAmB,CAACU,2BAA2B,CAAC;QACzFx4C,YAAY,EAAE2a,WAAW,GAAGnB,8EAAmB,CAACs+B,mBAAmB,CAACW,yBAAyB;OAC9F,CAAC;MACFt9B,uBAAuB,EAAEA,CAAA,KAAM,IAAI;MACnC2I,sBAAsB,EAAE;QACtBC,kBAAkB,EAAE,CAAC1U,wEAAa,CAACyoC,mBAAmB,CAACxvB,YAAY,EAAEhZ,sEAAW,CAACwoC,mBAAmB,CAACxvB,YAAY,EAAEjU,uEAAY,CAACyjC,mBAAmB,CAACxvB,YAAY,EAAE/Y,wEAAa,CAACuoC,mBAAmB,CAACI,iBAAiB,CAAC;QACtNl0B,kCAAkC,EAAE,CAACxK,8EAAmB,CAACs+B,mBAAmB,CAACQ,wBAAwB,CAAC;QACtGr0B,qCAAqC,EAAE,CAAC,CAACzK,8EAAmB,CAACs+B,mBAAmB,CAACS,wBAAwB,CAAC,EAAE,CAAC/+B,8EAAmB,CAACs+B,mBAAmB,CAACU,2BAA2B,CAAC;;KAEpL,CAAC;EACN;EAEAz2C,QAAQA,CAAA;IACN,IAAI,CAACqO,kBAAkB,CAACW,+BAA+B,EAAE;IAEzD,IAAI,CAACqK,aAAa,CAACC,uBAAuB,EAAE;EAC9C;EAEAjK,QAAQA,CAACC,KAAU;IACjB,IAAI,CAACE,sBAAsB,CAAC,IAAI,CAAC6J,aAAa,CAACE,uBAAuB,EAAE,CAAC;IACzE,IAAI,IAAI,CAACF,aAAa,CAACG,2BAA2B,CAAC,IAAI,CAACH,aAAa,CAACE,uBAAuB,EAAE,CAAC,EAAE;MAChG,IAAI,CAACrL,iBAAiB,CAACuL,kBAAkB,CAAC7B,sEAAW,EAAEF,6EAAkB,CAACq+B,mBAAmB,CAACE,eAAe,EAAEp+B,+EAAoB,CAACk+B,mBAAmB,CAAC;;EAE5J;EAEAr8B,UAAUA,CAACpK,KAAU;IACnB,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAACuoC,mBAAmB,CAACG,iBAAiB;MACxD,KAAK1oC,wEAAa,CAACuoC,mBAAmB,CAACI,iBAAiB;QAAE;UACxD,IAAI,CAACxlC,YAAY,CAAC,IAAI,CAAC0I,aAAa,CAACM,iBAAiB,CAACrK,KAAK,CAACsK,MAAM,CAAC,CAAC;UACrE;;;EAGN;EAEAC,mBAAmBA,CAACvK,KAAU;IAC5B;EAAA;EAGFG,mBAAmBA,CAACH,KAAU;IAC5B,IAAI,CAACmT,qBAAqB,CAACnT,KAAK,CAAC;IACjC,QAAQA,KAAK,CAACI,KAAK,CAACC,GAAG;MACrB,KAAKnC,wEAAa,CAACuoC,mBAAmB,CAACY,sBAAsB;QAC3D,QAAQrnC,KAAK,CAACA,KAAK,CAACO,IAAI;UACtB,KAAKxC,sEAAW,CAAC0oC,mBAAmB,CAACpzB,OAAO;YAAE;cAC5C,MAAMxN,OAAO,GAAG7F,KAAK,CAACA,KAAK,CAACW,IAAI;cAChC,MAAM2S,gBAAgB,GAAG;gBAAEC,iBAAiB,EAAE1N,OAAO,CAAC0N,iBAAiB;gBAAE9T,EAAE,EAAEoG,OAAO,CAACpG;cAAE,CAAE;cACzF,IAAI,CAACgU,sBAAsB,CAACH,gBAAgB,CAAC;cAC7C;;UAEF,KAAKvV,sEAAW,CAAC0oC,mBAAmB,CAAC/7B,MAAM;YAAE;cAC3C,QAAQ1K,KAAK,CAACA,KAAK,CAACW,IAAI,CAACgK,UAAU;gBACjC,KAAK1C,4EAAiB,CAACw+B,mBAAmB,CAACa,eAAe;kBAAE;oBAC1D,MAAM3zB,aAAa,GAAG,IAAI,CAACC,gBAAgB,CAAC5T,KAAK,CAAC;oBAClD,MAAMunC,iBAAiB,GAAG5zB,aAAa,CAACrI,GAAG,CAACzF,OAAO,KAAK;sBAAE0N,iBAAiB,EAAE1N,OAAO,CAAC0N,iBAAiB;sBAAE9T,EAAE,EAAEoG,OAAO,CAACpG;oBAAE,CAAE,CAAC,CAAC;oBAC1H,IAAI,CAAC+nC,0BAA0B,CAACD,iBAAiB,CAAC;oBAClD;;gBAEF,KAAKt/B,4EAAiB,CAACw+B,mBAAmB,CAACgB,KAAK;kBAAE;oBAChD,MAAM9zB,aAAa,GAAG,IAAI,CAACC,gBAAgB,CAAC5T,KAAK,CAAC;oBAClD,MAAMunC,iBAAiB,GAAG5zB,aAAa,CAACrI,GAAG,CAACzF,OAAO,KAAK;sBAAE0N,iBAAiB,EAAE1N,OAAO,CAAC0N,iBAAiB;sBAAE9T,EAAE,EAAEoG,OAAO,CAACpG;oBAAE,CAAE,CAAC,CAAC;oBAC1H,IAAI,CAACioC,iBAAiB,CAACH,iBAAiB,CAAC;oBACzC;;gBAEF,KAAKt/B,4EAAiB,CAACw+B,mBAAmB,CAACkB,MAAM;kBAAE;oBACjD,MAAMh0B,aAAa,GAAG,IAAI,CAACC,gBAAgB,CAAC5T,KAAK,CAAC;oBAClD,MAAMunC,iBAAiB,GAAG5zB,aAAa,CAACrI,GAAG,CAACzF,OAAO,KAAK;sBAAE0N,iBAAiB,EAAE1N,OAAO,CAAC0N,iBAAiB;sBAAE9T,EAAE,EAAEoG,OAAO,CAACpG;oBAAE,CAAE,CAAC,CAAC;oBAC1H,IAAI,CAACmoC,kBAAkB,CAACL,iBAAiB,CAAC;oBAC1C;;gBAEF,KAAKt/B,4EAAiB,CAACw+B,mBAAmB,CAAC57B,UAAU;kBAAE;oBACrD,MAAMg9B,oCAAoC,GAAG,IAAI,CAACC,uCAAuC,EAAE;oBAC3F,IAAI,CAACjpC,kBAAkB,CAACkpC,wBAAwB,CAACF,oCAAoC,CAAC;oBACtF;;;cAGJ;;;QAGJ;;EAEN;EAEQp0B,sBAAsBA,CAACH,gBAAsC;IACnE,IAAI,CAACtjB,cAAc,CAAC8F,IAAI,CAAClG,4EAAY,CAACrB,WAAW,CAACwhB,UAAU,EAAEuD,gBAAgB,CAAC,CAC5Etd,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAEqF,QAAuC,IAAI;MACrD,IAAI,CAACyI,aAAa,CAACyV,eAAe,CAAC,IAAI,CAACnI,wBAAwB,CAACoI,4BAA4B,CAACne,QAAQ,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC;IACtI,CAAC,CAAC;EACN;EAEQuxC,0BAA0BA,CAACD,iBAAyC;IAC1E,MAAMt7B,QAAQ,GAA0B;MACtC+7B,gBAAgB,EAAEjlC,qEAAU,CAAC0jC,mBAAmB,CAACwB,mCAAmC;MACpFjzB,WAAW,EAAEplB,4EAAY,CAACrB,WAAW,CAAC25C,eAAe;MACrDC,cAAc,EAAE,iBAAiB;MACjCC,gBAAgB,EAAE;KACnB;IACD,IAAI,CAAChzB,oBAAoB,CAACmyB,iBAAiB,EAAEt7B,QAAQ,CAAC;EACxD;EAEQy7B,iBAAiBA,CAACH,iBAAyC;IACjE,MAAMt7B,QAAQ,GAA0B;MACtC+7B,gBAAgB,EAAEjlC,qEAAU,CAAC0jC,mBAAmB,CAAC4B,yBAAyB;MAC1ErzB,WAAW,EAAEplB,4EAAY,CAACrB,WAAW,CAAC+5C,KAAK;MAC3CH,cAAc,EAAE,OAAO;MACvBC,gBAAgB,EAAE;KACnB;IACD,IAAI,CAAChzB,oBAAoB,CAACmyB,iBAAiB,EAAEt7B,QAAQ,CAAC;EACxD;EAEQ27B,kBAAkBA,CAACL,iBAAyC;IAClE,MAAMt7B,QAAQ,GAA0B;MACtC+7B,gBAAgB,EAAEjlC,qEAAU,CAAC0jC,mBAAmB,CAAC8B,0BAA0B;MAC3EvzB,WAAW,EAAEplB,4EAAY,CAACrB,WAAW,CAACi6C,MAAM;MAC5CL,cAAc,EAAE,QAAQ;MACxBC,gBAAgB,EAAE;KACnB;IACD,IAAI,CAAChzB,oBAAoB,CAACmyB,iBAAiB,EAAEt7B,QAAQ,CAAC;EACxD;EAEQmJ,oBAAoBA,CAC1BmyB,iBAAyC,EACzCt7B,QAA+B;IAE/B,IAAIs7B,iBAAiB,CAAChzB,MAAM,KAAK,CAAC,EAAE;MAClC,IAAI,CAAC7V,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC0jC,mBAAmB,CAACgC,oBAAoB,CAAC;MAClF;;IAGF,MAAM9zC,yBAAyB,GAAG,IAAI,CAAC3E,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAAC8E,yBAAyB,CAAC;IACvG,IAAI4yC,iBAAiB,CAAChzB,MAAM,GAAGE,QAAQ,CAAC9f,yBAAyB,EAAE,EAAE,CAAC,EAAE;MACtE,IAAI,CAAC+J,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC0jC,mBAAmB,CAACiC,yBAAyB,EAAE,IAAI,EAAE;QAAE/zC;MAAyB,CAAE,CAAC;MAC5H;;IAGF,MAAMkgB,SAAS,GAAG0yB,iBAAiB,CAAChzB,MAAM,CAACO,QAAQ,EAAE;IACrD,IAAI,CAACpW,aAAa,CACf8c,WAAW,CAACvP,QAAQ,CAAC+7B,gBAAgB,EAAE;MAAEnzB;IAAS,CAAE,CAAC,CACrD7e,IAAI,CAACrG,2CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC+P,IAAI,IAAG;MAChB,QAAQA,IAAoB;QAC1B,KAAKsV,oDAAY,CAACyF,QAAQ;UAAE;YAC1B,IAAI,CAAC7c,kBAAkB,CAAC8pC,YAAY,CAClC18B,QAAQ,CAAC+I,WAAW,EACpB;cAAElU,SAAS,EAAEymC;YAAiB,CAAE,EAChCt7B,QAAQ,CAACk8B,cAAc,EACvBlyC,QAAQ,IAAIA,QAAQ,CAAC4tC,cAAc,EACnC,CAAC5tC,QAAQ,EAAEk2B,QAAQ,KAAI;cACrB,MAAMqX,OAAO,GAAG,IAAI,CAACoF,0BAA0B,CAAC3yC,QAAQ,CAACutC,OAAO,CAAC;cACjE,MAAM9tB,UAAU,GAAGA,CAAA,KAAM,IAAI,CAAChX,aAAa,CAAC+G,UAAU,CAAC1C,qEAAU,CAAC0jC,mBAAmB,CAACoC,sBAAsB,EAAE,IAAI,EAAE;gBAAE1c,QAAQ;gBAAEqX;cAAO,CAAE,CAAC;cAC1I,IAAIv3B,QAAQ,CAACm8B,gBAAgB,EAAE;gBAC7B,IAAI,CAACzyB,qBAAqB,CAAC,IAAI,CAAC5L,aAAa,CAACoB,gBAAgB,EAAE,EAAEuK,UAAU,CAAC;eAC9E,MACI;gBACHA,UAAU,EAAE;;YAEhB,CAAC,CAAC;YACJ;;QAEF,KAAKO,oDAAY,CAAC6F,QAAQ;UAAE;YAC1B;;;IAGN,CAAC,CAAC;EACN;EAEQ8sB,0BAA0BA,CAACE,gBAAiD;IAClF,MAAMpD,UAAU,GAAGoD,gBAAgB,EAAEpD,UAAU,EAAE5wB,QAAQ,EAAE;IAC3D,MAAM6wB,iBAAiB,GAAGmD,gBAAgB,EAAEnD,iBAAiB,EAAE7wB,QAAQ,EAAE;IACzE,MAAM8wB,iBAAiB,GAAGkD,gBAAgB,EAAElD,iBAAiB,EAAE9wB,QAAQ,EAAE;IACzE,MAAMi0B,uBAAuB,GAAGD,gBAAgB,EAAEC,uBAAuB,EAAEj0B,QAAQ,EAAE;IACrF,IAAI,CAAC4wB,UAAU,IAAI,CAACC,iBAAiB,IAAI,CAACC,iBAAiB,IAAI,CAACmD,uBAAuB,EAAE;MACvF,OAAO,EAAE;;IAEX,MAAMvF,OAAO,GACX,IAAI,CAAC5kC,iBAAiB,CAAConC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,GAClD,IAAI,CAACpnC,iBAAiB,CAACqnC,YAAY,CAAC,CAClC;MAAE5oC,IAAI,EAAE,sBAAsB;MAAEkoB,KAAK,EAAEmgB;IAAU,CAAE,EACnD;MAAEroC,IAAI,EAAE,iBAAiB;MAAEkoB,KAAK,EAAEogB;IAAiB,CAAE,EACrD;MAAEtoC,IAAI,EAAE,gBAAgB;MAAEkoB,KAAK,EAAEqgB;IAAiB,CAAE,EACpD;MAAEvoC,IAAI,EAAE,sBAAsB;MAAEkoB,KAAK,EAAEwjB;IAAuB,CAAE,CACjE,CAAC;IACJ,OAAOvF,OAAO;EAChB;EAEQsE,uCAAuCA,CAAA;IAC7C,MAAM18B,QAAQ,GAAG,IAAI,CAACC,gBAAgB,CACpC,IAAI,CAACrH,QAAQ,CAACC,KAAK,EACnBjG,wEAAa,CAACyoC,mBAAmB,CAACxvB,YAAY,EAC9ChZ,sEAAW,CAACwoC,mBAAmB,CAACxvB,YAAY,EAC5CjU,uEAAY,CAACyjC,mBAAmB,CAACxvB,YAAY,EAC7C/Y,wEAAa,CAACuoC,mBAAmB,CAACY,sBAAsB,CAAC;IAC3D,MAAMvmC,SAAS,GAAGsK,QAAQ,CAACE,GAAG,CAACC,MAAM,KAAK;MAAEgI,iBAAiB,EAAEhI,MAAM,CAACgI,iBAAiB;MAAE9T,EAAE,EAAE8L,MAAM,CAAC9L;IAAE,CAAE,CAAC,CAAC;IAC1G,MAAMooC,oCAAoC,GAAoD;MAAE/mC;IAAS,CAAE;IAC3G,OAAO+mC,oCAAoC;EAC7C;EAAC,QAAAz4C,CAAA;qBA9OUhD,wBAAwB,EAAAkK,gEAAA,CAAA7G,4DAAA,GAAA6G,gEAAA,CAAA7G,oDAAA,GAAA6G,gEAAA,CAAAG,sDAAA,GAAAH,gEAAA,CAAAG,qDAAA,GAAAH,gEAAA,CAAAK,oFAAA,GAAAL,gEAAA,CAAAO,4EAAA,GAAAP,gEAAA,CAAA0L,sEAAA,GAAA1L,gEAAA,CAAA2L,8EAAA,GAAA3L,gEAAA,CAAA6L,2FAAA,GAAA7L,gEAAA,CAAA+L,8EAAA;EAAA;EAAA,QAAAhT,EAAA;UAAxBjD,wBAAwB;IAAAiL,SAAA;IAAAkL,QAAA,GAAAjM,yEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAuxC,kCAAArxC,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCrCrCrB,6DAAA,iCAOyD;QAAhCA,yDAHA,wBAAA2yC,gFAAAtmC,MAAA;UAAA,OAAc/K,GAAA,CAAAmI,QAAA,CAAA4C,MAAA,CAAgB;QAAA,EAAC,4BAAAumC,oFAAAvmC,MAAA;UAAA,OACb/K,GAAA,CAAA2S,mBAAA,CAAA5H,MAAA,CAA2B;QAAA,EAAC,iCAAAwmC,yFAAAxmC,MAAA;UAAA,OACvB/K,GAAA,CAAAuI,mBAAA,CAAAwC,MAAA,CAA2B;QAAA,EAAC,sBAAAymC,8EAAAzmC,MAAA;UAAA,OACvC/K,GAAA,CAAAwS,UAAA,CAAAzH,MAAA,CAAkB;QAAA,EAAC;QACxDrM,2DAAA,EAA0B;;;QALDA,yDAHA,0BAAAsB,GAAA,CAAAoH,qBAAA,CAA+C,wBAAApH,GAAA,CAAAiI,mBAAA,CACJ,eAAAjI,GAAA,CAAAsH,UAAA,CAClB,cAAAtH,GAAA,CAAAkL,SAAA,CACF;;;;;;;;;;;;;;;;;;;;;;;;;ACDqC;;;;AAQ/E,MAAO3V,+BAA+B;EAI1C4C,YACUC,cAA8B;IAA9B,KAAAA,cAAc,GAAdA,cAAc;EACxB;EAEAU,QAAQA,CAAA;IACN,IAAI,CAACmE,sBAAsB,GAAG,IAAI,CAAC7E,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACgF,sBAAsB,CAAC;EAClG;EAAC,QAAAzF,CAAA;qBAVUjC,+BAA+B,EAAAmJ,+DAAA,CAAA7G,sEAAA;EAAA;EAAA,QAAAJ,EAAA;UAA/BlC,+BAA+B;IAAAkK,SAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAA4xC,yCAAA1xC,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCV5CrB,4DAAA,SAAI;QAAAA,oDAAA,oCAA6B;QAAAA,0DAAA,EAAK;QACtCA,4DAAA,aAAQ;QACNA,uDAAA,aACM;QACRA,0DAAA,EAAS;;;QAFaA,uDAAA,GAAoC;QAApCA,wDAAA,cAAAsB,GAAA,CAAA/C,sBAAA,EAAAyB,4DAAA,CAAoC;;;;;;;;;;;;;;;;;;;;;;ACFnD,MAAM8H,eAAe,GAAG;EAC7B3M,aAAa,EAAE,eAAe;EAC9BG,iCAAiC,EAAE,mCAAmC;EACtEG,+BAA+B,EAAE,iCAAiC;EAClED,gCAAgC,EAAE,kCAAkC;EACpEE,wCAAwC,EAAE,0CAA0C;EACpFC,yCAAyC,EAAE,2CAA2C;EACtFC,oCAAoC,EAAE,sCAAsC;EAC5EC,4CAA4C,EAAE,8CAA8C;EAC5FG,+BAA+B,EAAE,iCAAiC;EAClEC,wCAAwC,EAAE,0CAA0C;EACpFG,mCAAmC,EAAE,qCAAqC;EAC1EC,0BAA0B,EAAE,4BAA4B;EACxDC,oCAAoC,EAAE,sCAAsC;EAC5EE,wCAAwC,EAAE,0CAA0C;EACpFE,+BAA+B,EAAE,iCAAiC;EAClEC,yCAAyC,EAAE,2CAA2C;EACtFE,0CAA0C,EAAE,4CAA4C;EACxFC,+CAA+C,EAAE;CAClD;AAEM,MAAMxD,YAAY,GAAG;EAC1B0/B,cAAc,EAAE;IACdL,MAAM,EAAE;GACT;EACDv9B,aAAa,EAAE;IACbC,OAAO,EAAE;GACV;EACDzC,IAAI,EAAE;IACJs8B,iBAAiB,EAAE,wBAAwB;IAC3CO,0BAA0B,EAAE;GAC7B;EACDx4B,OAAO,EAAE;IACPC,MAAM,EAAE,gBAAgB;IACxBE,GAAG,EAAE;GACN;EACD8B,KAAK,EAAE;IACLD,eAAe,EAAE;GAClB;EACD+zC,GAAG,EAAE;IACHC,SAAS,EAAE;GACZ;EACDhqC,SAAS,EAAE;IACTm+B,mBAAmB,EAAE,+BAA+B;IACpDgJ,eAAe,EAAE,2BAA2B;IAC5C70B,gCAAgC,EAAE,4CAA4C;IAC9EqhB,0BAA0B,EAAE,sCAAsC;IAClEpC,gBAAgB,EAAE,4BAA4B;IAC9CnoB,eAAe,EAAE,2BAA2B;IAC5CnJ,0BAA0B,EAAE,sCAAsC;IAClE21B,oBAAoB,EAAE,gCAAgC;IACtD2C,kBAAkB,EAAE,8BAA8B;IAClDD,2BAA2B,EAAE;GAC9B;EACD2R,eAAe,EAAE;IACf3K,wBAAwB,EAAE,0CAA0C;IACpEkC,iBAAiB,EAAE,mCAAmC;IACtDI,kBAAkB,EAAE,oCAAoC;IACxDE,mBAAmB,EAAE,qCAAqC;IAC1DrC,6BAA6B,EAAE,+CAA+C;IAC9EiB,sBAAsB,EAAE,wCAAwC;IAChEG,uBAAuB,EAAE,yCAAyC;IAClEE,8BAA8B,EAAE,gDAAgD;IAChFE,6BAA6B,EAAE,+CAA+C;IAC9EE,kBAAkB,EAAE,oCAAoC;IACxDI,mBAAmB,EAAE;GACtB;EACDtuC,eAAe,EAAE;IACfC,yBAAyB,EAAE,2CAA2C;IACtEZ,oBAAoB,EAAE,sCAAsC;IAC5Dc,0BAA0B,EAAE,4CAA4C;IACxEE,gCAAgC,EAAE,sDAAsD;IACxFE,yBAAyB,EAAE,2CAA2C;IACtEC,+BAA+B,EAAE,iDAAiD;IAClFE,qCAAqC,EAAE,2DAA2D;IAClG88B,2BAA2B,EAAE,6CAA6C;IAC1ElR,sBAAsB,EAAE,wCAAwC;IAChEmR,yBAAyB,EAAE,2CAA2C;IACtE0U,KAAK,EAAE,uBAAuB;IAC9BQ,IAAI,EAAE,sBAAsB;IAC5BxtB,sBAAsB,EAAE,wCAAwC;IAChED,+BAA+B,EAAE,iDAAiD;IAClF5S,IAAI,EAAE,sBAAsB;IAC5B+S,aAAa,EAAE,+BAA+B;IAC9CvI,sBAAsB,EAAE,wCAAwC;IAChEg2B,cAAc,EAAE,yCAAyC;IACzDpB,cAAc,EAAE,gCAAgC;IAChDuF,kBAAkB,EAAE,oCAAoC;IACxDC,+BAA+B,EAAE,iDAAiD;IAClFC,kCAAkC,EAAE,oDAAoD;IACxFC,oBAAoB,EAAE,sCAAsC;IAC5DC,mBAAmB,EAAE,qCAAqC;IAC1DC,kBAAkB,EAAE;GACrB;EACDz7C,sBAAsB,EAAE;IACtBwD,oBAAoB,EAAE,6CAA6C;IACnEwB,yBAAyB,EAAE,kDAAkD;IAC7EyR,IAAI,EAAE;GACP;EACDvW,WAAW,EAAE;IACXwhB,UAAU,EAAE,uCAAuC;IACnDC,QAAQ,EAAE,qCAAqC;IAC/Ck4B,eAAe,EAAE,4CAA4C;IAC7DI,KAAK,EAAE,mCAAmC;IAC1CE,MAAM,EAAE,oCAAoC;IAC5CiB,kBAAkB,EAAE;GACrB;EACDj7C,QAAQ,EAAE;IACRymB,OAAO,EAAE,uCAAuC;IAChDK,MAAM,EAAE,sCAAsC;IAC9Cm0B,kBAAkB,EAAE;GACrB;EACDr3C,cAAc,EAAE;IACdC,6BAA6B,EAAE,8CAA8C;IAC7E0d,UAAU,EAAE,yCAAyC;IACrDuqB,mBAAmB,EAAE,kDAAkD;IACvErlB,OAAO,EAAE,uCAAuC;IAChD0lB,IAAI,EAAE,oCAAoC;IAC1C8O,kBAAkB,EAAE,mCAAmC;IACvDM,2BAA2B,EAAE;GAC9B;EACDr7C,aAAa,EAAE;IACbmD,oBAAoB,EAAE,oCAAoC;IAC1DiT,IAAI,EAAE,oBAAoB;IAC1B2kC,kBAAkB,EAAE,kCAAkC;IACtDG,oBAAoB,EAAE;GACvB;EACDj7C,YAAY,EAAE;IACZkD,oBAAoB,EAAE,mCAAmC;IACzDiT,IAAI,EAAE,mBAAmB;IACzB2kC,kBAAkB,EAAE,iCAAiC;IACrDG,oBAAoB,EAAE;GACvB;EACDh7C,WAAW,EAAE;IACXiD,oBAAoB,EAAE,kCAAkC;IACxDiT,IAAI,EAAE,kBAAkB;IACxB2kC,kBAAkB,EAAE,gCAAgC;IACpDG,oBAAoB,EAAE;GACvB;EACD/6C,oBAAoB,EAAE;IACpBgD,oBAAoB,EAAE;GACvB;EACD/C,sBAAsB,EAAE;IACtB+C,oBAAoB,EAAE,4CAA4C;IAClE43C,kBAAkB,EAAE,0CAA0C;IAC9DG,oBAAoB,EAAE,4CAA4C;IAClE9kC,IAAI,EAAE;GACP;EACD/V,gBAAgB,EAAE;IAChB8C,oBAAoB,EAAE,uCAAuC;IAC7DiT,IAAI,EAAE,uBAAuB;IAC7B6kC,kCAAkC,EAAE,qDAAqD;IACzFF,kBAAkB,EAAE,qCAAqC;IACzDG,oBAAoB,EAAE;GACvB;EACD36C,WAAW,EAAE;IACX8G,iBAAiB,EAAE,+BAA+B;IAClDlE,oBAAoB,EAAE,kCAAkC;IACxDiT,IAAI,EAAE;;CAET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChKmC;AAE4B;AAIhE;AACA;AACO,MAAMg3B,yBAAyB,GAAG,GAAG;AAE5C;AACA;AACA;AACA;AACO,MAAM1lB,wBAAwB,GAAG,GAAG;AAEpC,MAAM6zB,mBAAmB,GAAG;EACjC7L,KAAK,EAAE,yCAAyC;EAChD8L,IAAI,EAAE,6BAA6B;EACnC3nB,GAAG,EAAE;CACN;AAEM,MAAM4H,kBAAkB,GAAG;EAChCiU,KAAK,EAAE,sBAAsB;EAC7B7b,GAAG,EAAE;CACN;AAEM,MAAM2H,sCAAsC,GAAG;EACpDkU,KAAK,EAAE,8CAA8C;EACrD7b,GAAG,EAAE;CACN;AAEM,MAAM4nB,UAAU,GAAG;EACxBC,MAAM,EAAE;CACT;AAEM,MAAMv6C,WAAW,GAAG;EACzBqzB,aAAa,EAAE,eAAe;EAC9BqJ,WAAW,EAAE,aAAa;EAC1Bp2B,cAAc,EAAE,gBAAgB;EAChC0pB,wBAAwB,EAAE,0BAA0B;EAEpD;EACAxrB,gBAAgB,EAAE,kBAAkB;EACpCC,cAAc,EAAE,gBAAgB;EAChCC,eAAe,EAAE,iBAAiB;EAClCC,wBAAwB,EAAE,0BAA0B;EACpDC,sBAAsB,EAAE,wBAAwB;EAChDC,eAAe,EAAE,iBAAiB;EAClCC,yBAAyB,EAAE,2BAA2B;EACtDC,sBAAsB,EAAE,wBAAwB;EAChDC,sBAAsB,EAAE,wBAAwB;EAChDC,4BAA4B,EAAE,8BAA8B;EAC5DC,gCAAgC,EAAE,kCAAkC;EACpEC,+BAA+B,EAAE,iCAAiC;EAClEC,kCAAkC,EAAE,oCAAoC;EACxEC,+BAA+B,EAAE,iCAAiC;EAClEC,8BAA8B,EAAE,gCAAgC;EAChEC,qBAAqB,EAAE;CACxB;AAEM,MAAMkT,WAAW,GAAG,UAAU;AAE9B,MAAM+hC,cAAc,GAAG,sBAAsB;AAC7C,MAAMC,wBAAwB,GAAG,0BAA0B;AAE3D,MAAMC,uBAAuB,GAAG,aAAa;AAE7C,MAAMtmB,uBAAuB,GAAG,oBAAoB;AAEpD,MAAM7b,kBAAkB,GAAG;EAChCm0B,YAAY,EAAE;IACZC,QAAQ,EAAE;GACX;EACDjvB,QAAQ,EAAE;IACR0C,IAAI,EAAE,uBAAuB;IAC7BpC,gBAAgB,EAAE,oCAAoC;IACtDqiB,MAAM,EAAE;GACT;EACDjhB,oBAAoB,EAAE;IACpBu7B,gBAAgB,EAAE;GACnB;EACDpP,0BAA0B,EAAE;IAC1BqP,sBAAsB,EAAE;GACzB;EACDhE,mBAAmB,EAAE;IACnBE,eAAe,EAAE;GAClB;EACDh1B,gBAAgB,EAAE;IAChBG,YAAY,EAAE;GACf;EACD6lB,cAAc,EAAE;IACdK,UAAU,EAAE;GACb;EACDvvB,mBAAmB,EAAE;IACnBI,eAAe,EAAE;GAClB;EACDxJ,wBAAwB,EAAE;IACxBqrC,oBAAoB,EAAE;GACvB;EACDz5B,eAAe,EAAE;IACf05B,WAAW,EAAE;GACd;EACDjmC,0BAA0B,EAAE;IAC1BkmC,sBAAsB,EAAE;GACzB;EACDha,oBAAoB,EAAE;IACpBG,gBAAgB,EAAE;GACnB;EACDyB,gBAAgB,EAAE;IAChBqY,YAAY,EAAE;GACf;EACD5X,qBAAqB,EAAE;IACrBE,iBAAiB,EAAE;GACpB;EACDsB,iBAAiB,EAAE;IACjBqW,aAAa,EAAE;GAChB;EACD7V,wBAAwB,EAAE;IACxBG,oBAAoB,EAAE;GACvB;EACDwB,oBAAoB,EAAE;IACpBmU,gBAAgB,EAAE;GACnB;EACDpiB,eAAe,EAAE;IACfqiB,WAAW,EAAE;GACd;EACDC,KAAK,EAAE;IACLC,OAAO,EAAE,cAAc;IACvBC,IAAI,EAAE,WAAW;IACjBC,iBAAiB,EAAE,yBAAyB;IAC5CC,sBAAsB,EAAE,gCAAgC;IACxDC,4BAA4B,EAAE;;CAEjC;AAEM,MAAMjjC,cAAc,GAAG;EAC5Bm0B,QAAQ,EAAE,UAAU;EACpBmK,eAAe,EAAE,iBAAiB;EAClC70B,YAAY,EAAE,cAAc;EAC5BkmB,UAAU,EAAE,YAAY;EACxB7E,iBAAiB,EAAE,mBAAmB;EACtCpC,gBAAgB,EAAE,kBAAkB;EACpCloB,eAAe,EAAE,iBAAiB;EAClCusB,oBAAoB,EAAE,sBAAsB;EAC5C2C,mBAAmB,EAAE;CACtB;AAEM,MAAMh6B,WAAW,GAAG;EACzBw+B,YAAY,EAAE;IACZ/7B,IAAI,EAAE,YAAY;IAClBC,IAAI,EAAE,YAAY;IAClBo5B,KAAK,EAAE,OAAO;IACdiJ,IAAI,EAAE,MAAM;IACZp4B,MAAM,EAAE;GACT;EACD6C,QAAQ,EAAE;IACR8F,OAAO,EAAE,SAAS;IAClByH,QAAQ,EAAE;GACX;EACD2rB,mBAAmB,EAAE;IACnBpzB,OAAO,EAAE,SAAS;IAClB3I,MAAM,EAAE;GACT;EACDiH,gBAAgB,EAAE;IAChB0B,OAAO,EAAE,SAAS;IAClB3I,MAAM,EAAE;GACT;EACDitB,cAAc,EAAE;IACdtkB,OAAO,EAAE,SAAS;IAClB3I,MAAM,EAAE;GACT;EACDjC,mBAAmB,EAAE;IACnBjI,IAAI,EAAE,YAAY;IAClBC,IAAI,EAAE,YAAY;IAClBgK,kBAAkB,EAAE,oBAAoB;IACxCC,MAAM,EAAE;GACT;EACDrL,wBAAwB,EAAE;IACxBmB,IAAI,EAAE,YAAY;IAClBC,IAAI,EAAE,YAAY;IAClBG,MAAM,EAAE,QAAQ;IAChBG,MAAM,EAAE;GACT;EACD6vB,oBAAoB,EAAE;IACpBpwB,IAAI,EAAE,YAAY;IAClBC,IAAI,EAAE,YAAY;IAClBiK,MAAM,EAAE;GACT;EACDuoB,qBAAqB,EAAE;IACrBzyB,IAAI,EAAE,YAAY;IAClBC,IAAI,EAAE,YAAY;IAClBiK,MAAM,EAAE;GACT;EACDuqB,wBAAwB,EAAE;IACxBz0B,IAAI,EAAE,YAAY;IAClBC,IAAI,EAAE,YAAY;IAClBiK,MAAM,EAAE;GACT;EACDksB,oBAAoB,EAAE;IACpBp2B,IAAI,EAAE;;CAET;AAEM,MAAMyH,iBAAiB,GAAG;EAC/Bs0B,YAAY,EAAE;IACZ3xB,GAAG,EAAE,WAAW;IAChB6zB,sBAAsB,EAAE,wBAAwB;IAChD/B,eAAe,EAAE,iBAAiB;IAClCqG,cAAc,EAAE,gBAAgB;IAChC7M,oBAAoB,EAAE,sBAAsB;IAC5CrrB,UAAU,EAAE,YAAY;IACxBI,UAAU,EAAE,YAAY;IACxBg4B,SAAS,EAAE,WAAW;IACtBE,QAAQ,EAAE;GACX;EACDsD,mBAAmB,EAAE;IACnBa,eAAe,EAAE,iBAAiB;IAClCG,KAAK,EAAE,OAAO;IACdE,MAAM,EAAE,QAAQ;IAChB98B,UAAU,EAAE;GACb;EACD8G,gBAAgB,EAAE;IAChB+B,OAAO,EAAE,SAAS;IAClBI,MAAM,EAAE,QAAQ;IAChBjJ,UAAU,EAAE;GACb;EACD8sB,cAAc,EAAE;IACdjkB,OAAO,EAAE,SAAS;IAClBimB,IAAI,EAAE,MAAM;IACZE,KAAK,EAAE,OAAO;IACdhvB,UAAU,EAAE;GACb;EACDpC,mBAAmB,EAAE;IACnBmC,GAAG,EAAE,WAAW;IAChBC,UAAU,EAAE,YAAY;IACxBI,UAAU,EAAE;GACb;EACD2lB,oBAAoB,EAAE;IACpBhmB,GAAG,EAAE,WAAW;IAChBC,UAAU,EAAE,YAAY;IACxBI,UAAU,EAAE;GACb;EACDgoB,qBAAqB,EAAE;IACrBroB,GAAG,EAAE,WAAW;IAChBC,UAAU,EAAE,YAAY;IACxBI,UAAU,EAAE;GACb;EACDgqB,wBAAwB,EAAE;IACxBrqB,GAAG,EAAE,WAAW;IAChBsrB,oBAAoB,EAAE,sBAAsB;IAC5CrrB,UAAU,EAAE,YAAY;IACxBI,UAAU,EAAE;;CAEf;AAEM,MAAMkL,cAAc,GAAG;EAC5BomB,YAAY,EAAE;IACZoC,0BAA0B,EAAE;MAC1BC,WAAW,EAAE,aAAa;MAC1BG,QAAQ,EAAE;KACX;IACDG,mBAAmB,EAAE;MACnBW,OAAO,EAAE,SAAS;MAClBV,YAAY,EAAE,cAAc;MAC5BK,QAAQ,EAAE;KACX;IACDH,sBAAsB,EAAE;MACtBC,YAAY,EAAE,cAAc;MAC5Ba,aAAa,EAAE,eAAe;MAC9BE,oBAAoB,EAAE,sBAAsB;MAC5CE,mBAAmB,EAAE;KACtB;IACDb,kBAAkB,EAAE;MAClBC,QAAQ,EAAE,UAAU;MACpBc,iBAAiB,EAAE,mBAAmB;MACtCI,SAAS,EAAE;KACZ;IACDd,iBAAiB,EAAE;MACjB9vB,IAAI,EAAE,MAAM;MACZixB,KAAK,EAAE,OAAO;MACdE,MAAM,EAAE;KACT;IACDxL,cAAc,EAAE;MACdC,QAAQ,EAAE,UAAU;MACpB+L,qBAAqB,EAAG,uBAAuB;MAC/C7L,gBAAgB,EAAE;KACnB;IACDsM,UAAU,EAAE;MACVI,MAAM,EAAE,QAAQ;MAChBH,YAAY,EAAE;;GAEjB;EACD/0B,QAAQ,EAAE;IACR6O,KAAK,EAAE;MACLC,GAAG,EAAE,KAAK;MACVkvB,EAAE,EAAE;KACL;IACDptB,WAAW,EAAE;MACXC,aAAa,EAAE;KAChB;IACDC,IAAI,EAAE;MACJD,aAAa,EAAE;;GAElB;EACDuZ,cAAc,EAAE;IACd6T,kBAAkB,EAAE;MAClBnvB,GAAG,EAAE,KAAK;MACVkvB,EAAE,EAAE;;GAEP;EACD9iC,mBAAmB,EAAE;IACnBgjC,uBAAuB,EAAE;MACvBpvB,GAAG,EAAE,KAAK;MACVkvB,EAAE,EAAE;;GAEP;EACD3a,oBAAoB,EAAE;IACpB8a,wBAAwB,EAAE;MACxBrvB,GAAG,EAAE,KAAK;MACVkvB,EAAE,EAAE;;GAEP;EACDtY,qBAAqB,EAAE;IACrB0Y,yBAAyB,EAAE;MACzBtvB,GAAG,EAAE,KAAK;MACVkvB,EAAE,EAAE;;GAEP;EACDtW,wBAAwB,EAAE;IACxB2W,4BAA4B,EAAE;MAC5BvvB,GAAG,EAAE,KAAK;MACVkvB,EAAE,EAAE;KACL;IACD3V,cAAc,EAAE;MACdC,QAAQ,EAAE,UAAU;MACpBE,gBAAgB,EAAE;;;CAGvB;AAEM,MAAM8V,eAAe,GAAG;EAC7BjV,oBAAoB,EAAE;IACpBxa,KAAK,EAAE;MACLC,GAAG,EAAE,KAAK;MACVkvB,EAAE,EAAE;;;CAGT;AAEM,MAAMxoC,UAAU,GAAG;EACxB2C,MAAM,EAAE;IACNomC,WAAW,EAAE7hB,8CAAO,CAAC8hB,YAAY;IACjC7G,WAAW,EAAEjb,8CAAO,CAACqC,YAAY;IACjC3mB,eAAe,EAAEskB,8CAAO,CAAC+hB;GAC1B;EACDzP,YAAY,EAAE;IACZ0F,qBAAqB,EAAE,uBAAuB;IAC9C4C,gBAAgB,EAAE,kBAAkB;IACpCE,cAAc,EAAE,gBAAgB;IAChCpC,oBAAoB,EAAE,sBAAsB;IAC5CyC,eAAe,EAAE,iBAAiB;IAClCC,aAAa,EAAE,eAAe;IAC9B5G,sBAAsB,EAAE,wBAAwB;IAChD/B,eAAe,EAAE,iBAAiB;IAClC4B,qBAAqB,EAAE,uBAAuB;IAC9CiB,kBAAkB,EAAE,oBAAoB;IACxCK,cAAc,EAAE,gBAAgB;IAChCI,aAAa,EAAE,eAAe;IAC9BsB,kBAAkB,EAAE,oBAAoB;IACxC9L,gBAAgB,EAAE,kBAAkB;IACpCgQ,+BAA+B,EAAE,iCAAiC;IAClEC,2BAA2B,EAAE;GAC9B;EACDl4B,QAAQ,EAAE;IACRkO,+BAA+B,EAAE,iCAAiC;IAClEf,6BAA6B,EAAE,+BAA+B;IAC9DT,wBAAwB,EAAE,0BAA0B;IACpDQ,6BAA6B,EAAE,+BAA+B;IAC9DD,uBAAuB,EAAE,yBAAyB;IAClDjU,cAAc,EAAE,gBAAgB;IAChCiH,0BAA0B,EAAE,4BAA4B;IACxDuiB,oBAAoB,EAAE;GACvB;EACD9gB,oBAAoB,EAAE;IACpBM,qBAAqB,EAAE;GACxB;EACD6rB,0BAA0B,EAAE;IAC1B70B,cAAc,EAAE;GACjB;EACDkgC,mBAAmB,EAAE;IACnBgC,oBAAoB,EAAE,sBAAsB;IAC5CC,yBAAyB,EAAE,2BAA2B;IACtDG,sBAAsB,EAAE,wBAAwB;IAChDZ,mCAAmC,EAAE,qCAAqC;IAC1EI,yBAAyB,EAAE,2BAA2B;IACtDE,0BAA0B,EAAE;GAC7B;EACD52B,gBAAgB,EAAE;IAChB6C,qBAAqB,EAAE,uBAAuB;IAC9CE,qBAAqB,EAAE,uBAAuB;IAC9C7B,6BAA6B,EAAE,+BAA+B;IAC9DG,8BAA8B,EAAE,gCAAgC;IAChEmC,0BAA0B,EAAE,4BAA4B;IACxDI,2BAA2B,EAAE;GAC9B;EACDoiB,cAAc,EAAE;IACd6C,kBAAkB,EAAE,oBAAoB;IACxCC,kBAAkB,EAAE,oBAAoB;IACxCvB,0BAA0B,EAAE,4BAA4B;IACxDG,wBAAwB,EAAE,0BAA0B;IACpDqB,uBAAuB,EAAE,yBAAyB;IAClDE,qBAAqB,EAAE,uBAAuB;IAC9CZ,sBAAsB,EAAE;GACzB;EACD/E,wBAAwB,EAAE;IACxBO,gBAAgB,EAAE;GACnB;EACDvkB,eAAe,EAAE;IACf1K,cAAc,EAAE;GACjB;EACD7B,0BAA0B,EAAE;IAC1B6B,cAAc,EAAE;GACjB;EACDisB,gBAAgB,EAAE;IAChBjsB,cAAc,EAAE;GACjB;EACDkuB,iBAAiB,EAAE;IACjBluB,cAAc,EAAE;GACjB;EACDqwB,oBAAoB,EAAE;IACpBrwB,cAAc,EAAE;GACjB;EACDoiB,eAAe,EAAE;IACfpiB,cAAc,EAAE;;CAEnB;AAEM,MAAMw1B,qBAAqB,GAAG;EACnCQ,YAAY,EAAE;IACZG,eAAe,EAAE;MACfC,MAAM,EAAE,SAAS;MACjB7oB,MAAM,EAAE;;;CAGb;AAEM,MAAM7Q,qBAAqB,GAAG;EACnCq4B,qBAAqB,EAAE,CACrB,yBAAyB,EACzB,mCAAmC,EACnC,kCAAkC,EAClC,mCAAmC,EACnC,yCAAyC,EACzC,gDAAgD,EAChD,yCAAyC,CAC1C;EACDrgB,QAAQ,EAAE,CACR,2BAA2B,EAC3B,kBAAkB,EAClB,8BAA8B,EAC9BlY,UAAU,CAACwK,QAAQ,CAACkN,6BAA6B,EACjD1X,UAAU,CAACwK,QAAQ,CAACiN,uBAAuB,EAC3C,6BAA6B,EAC7B,wCAAwC,EACxC,oDAAoD,EACpD,kDAAkD,EAClD,uDAAuD,EACvD,iDAAiD,CAClD;EACDtJ,eAAe,EAAE,CACf,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,mCAAmC,EACnC,qCAAqC,EACrC,6BAA6B,EAC7B,6BAA6B,EAC7B,qEAAqE,EACrE,qFAAqF,EACrF,oEAAoE,EACpE,oFAAoF,EACpF,iBAAiB,EACjB,0BAA0B,CAC3B;EACD/K,0BAA0B,EAAE,CAC1B,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,kCAAkC,EAClC,mCAAmC,EACnC,6CAA6C,EAC7C,6BAA6B,EAC7B,+BAA+B,EAC/B,iCAAiC,EACjC,2CAA2C,EAC3C,2BAA2B,EAC3B,oBAAoB,EACpB,aAAa,EACb,uDAAuD,EACvD,0DAA0D,EAC1D,kCAAkC,EAClC,2CAA2C,EAC3C,6CAA6C,EAC7C,sDAAsD,EACtD,8CAA8C,EAC9C,uDAAuD,EACvD,4BAA4B,EAC5B,sCAAsC,EACtC,gCAAgC,CACjC;EACDssB,gBAAgB,EAAE,CAChB,eAAe,EACf,eAAe,EACf,gCAAgC,EAChC,0CAA0C,EAC1C,2BAA2B,EAC3B,8BAA8B,EAC9B,8BAA8B,EAC9B,wCAAwC,EACxC,4BAA4B,EAC5B,eAAe,EACf,8BAA8B,EAC9B,8BAA8B,EAC9B,mCAAmC,EACnC,6CAA6C,EAC7C,8BAA8B,EAC9B,iCAAiC,EACjC,iCAAiC,EACjC,2CAA2C,EAC3C,+BAA+B,EAC/B,kEAAkE,EAClE,uDAAuD,EACvD,oDAAoD,EACpD,uDAAuD,EACvD,uCAAuC,EACvC,wCAAwC,EACxC,6CAA6C,EAC7C,iBAAiB,EACjB,2BAA2B,CAC5B;EACDiC,iBAAiB,EAAE,CACjB,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gCAAgC,CACjC;EACDsC,oBAAoB,EAAE,CACpB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,eAAe,EACf,kCAAkC,CACnC;EACDtN,eAAe,EAAE,CACf,mCAAmC,EACnC,iCAAiC,EACjC,gCAAgC;CAEnC;AAEM,MAAM1rB,aAAa,GAAG;EAC3Bu+B,YAAY,EAAE;IACZ/mC,KAAK,EAAE;GACR;EACD+X,QAAQ,EAAE;IACR0+B,cAAc,EAAE,CAAC;IACjB1f,WAAW,EAAE,CAAC;IACdnR,iBAAiB,EAAE,CAAC;IACpBnE,YAAY,EAAE,CAAC;IACfi1B,oBAAoB,EAAE;GACvB;EACDj9B,oBAAoB,EAAE;IACpBi9B,oBAAoB,EAAE;GACvB;EACD9Q,0BAA0B,EAAE;IAC1B6Q,cAAc,EAAE,CAAC;IACjBC,oBAAoB,EAAE;GACvB;EACDzF,mBAAmB,EAAE;IACnBxvB,YAAY,EAAE;GACf;EACDtF,gBAAgB,EAAE;IAChBC,SAAS,EAAE;GACZ;EACD+lB,cAAc,EAAE;IACdsU,cAAc,EAAE,CAAC;IACjBrU,OAAO,EAAE,CAAC;IACVsU,oBAAoB,EAAE;GACvB;EACDzjC,mBAAmB,EAAE;IACnBC,YAAY,EAAE;GACf;EACDrJ,wBAAwB,EAAE;IACxB4sC,cAAc,EAAE,CAAC;IACjB3sC,YAAY,EAAE,CAAC;IACf4sC,oBAAoB,EAAE;GACvB;EACDj7B,eAAe,EAAE;IACfg7B,cAAc,EAAE,CAAC;IACjBE,kBAAkB,EAAE,CAAC;IACrBC,eAAe,EAAE,CAAC;IAClBlX,iBAAiB,EAAE,CAAC;IACpBgX,oBAAoB,EAAE;GACvB;EACDxnC,0BAA0B,EAAE;IAC1BunC,cAAc,EAAE,CAAC;IACjBviC,WAAW,EAAE,CAAC;IACd9C,qCAAqC,EAAE,CAAC;IACxCG,IAAI,EAAE,CAAC;IACPmlC,oBAAoB,EAAE;GACvB;EACDtb,oBAAoB,EAAE;IACpBC,aAAa,EAAE;GAChB;EACD2B,gBAAgB,EAAE;IAChByZ,cAAc,EAAE,CAAC;IACjBI,mBAAmB,EAAE,CAAC;IACtBC,gBAAgB,EAAE,CAAC;IACnBC,yBAAyB,EAAE,CAAC;IAC5BrX,iBAAiB,EAAE,CAAC;IACpBgX,oBAAoB,EAAE;GACvB;EACDjZ,qBAAqB,EAAE;IACrBvkC,aAAa,EAAE;GAChB;EACD+lC,iBAAiB,EAAE;IACjBwX,cAAc,EAAE,CAAC;IACjBO,eAAe,EAAE,CAAC;IAClBC,YAAY,EAAE,CAAC;IACfP,oBAAoB,EAAE;GACvB;EACDjX,wBAAwB,EAAE;IACxBC,iBAAiB,EAAE;GACpB;EACD0B,oBAAoB,EAAE;IACpBqV,cAAc,EAAE,CAAC;IACjBS,uBAAuB,EAAE,CAAC;IAC1BR,oBAAoB,EAAE;GACvB;EACDvjB,eAAe,EAAE;IACfsjB,cAAc,EAAE,CAAC;IACjBziB,UAAU,EAAE,CAAC;IACb0iB,oBAAoB,EAAE;;CAEzB;AAEM,MAAMjuC,WAAW,GAAG;EACzBs+B,YAAY,EAAE;IACZ/mC,KAAK,EAAE;GACR;EACD+X,QAAQ,EAAE;IACR0+B,cAAc,EAAE,CAAC;IACjBU,OAAO,EAAE,CAAC;IACVvxB,iBAAiB,EAAE,CAAC;IACpBnE,YAAY,EAAE,CAAC;IACfi1B,oBAAoB,EAAE;GACvB;EACDj9B,oBAAoB,EAAE;IACpBi9B,oBAAoB,EAAE;GACvB;EACD9Q,0BAA0B,EAAE;IAC1B6Q,cAAc,EAAE,CAAC;IACjBC,oBAAoB,EAAE;GACvB;EACDzF,mBAAmB,EAAE;IACnBxvB,YAAY,EAAE;GACf;EACDtF,gBAAgB,EAAE;IAChBC,SAAS,EAAE;GACZ;EACD+lB,cAAc,EAAE;IACdsU,cAAc,EAAE,CAAC;IACjBrU,OAAO,EAAE,CAAC;IACVsU,oBAAoB,EAAE;GACvB;EACDzjC,mBAAmB,EAAE;IACnBC,YAAY,EAAE;GACf;EACDrJ,wBAAwB,EAAE;IACxB4sC,cAAc,EAAE,CAAC;IACjB3sC,YAAY,EAAE,CAAC;IACf4sC,oBAAoB,EAAE;GACvB;EACDj7B,eAAe,EAAE;IACfg7B,cAAc,EAAE,CAAC;IACjBE,kBAAkB,EAAE,CAAC;IACrBC,eAAe,EAAE,CAAC;IAClBlX,iBAAiB,EAAE,CAAC;IACpBgX,oBAAoB,EAAE;GACvB;EACDxnC,0BAA0B,EAAE;IAC1BunC,cAAc,EAAE,CAAC;IACjBviC,WAAW,EAAE,CAAC;IACd9C,qCAAqC,EAAE,CAAC;IACxCG,IAAI,EAAE,CAAC;IACPmlC,oBAAoB,EAAE;GACvB;EACDtb,oBAAoB,EAAE;IACpBC,aAAa,EAAE;GAChB;EACD2B,gBAAgB,EAAE;IAChByZ,cAAc,EAAE,CAAC;IACjBI,mBAAmB,EAAE,CAAC;IACtBC,gBAAgB,EAAE,CAAC;IACnBC,yBAAyB,EAAE,CAAC;IAC5BrX,iBAAiB,EAAE,CAAC;IACpBgX,oBAAoB,EAAE;GACvB;EACDjZ,qBAAqB,EAAE;IACrBvkC,aAAa,EAAE;GAChB;EACD+lC,iBAAiB,EAAE;IACjBwX,cAAc,EAAE,CAAC;IACjBO,eAAe,EAAE,CAAC;IAClBC,YAAY,EAAE,CAAC;IACfP,oBAAoB,EAAE;GACvB;EACDjX,wBAAwB,EAAE;IACxBC,iBAAiB,EAAE;GACpB;EACD0B,oBAAoB,EAAE;IACpBqV,cAAc,EAAE,CAAC;IACjBS,uBAAuB,EAAE,CAAC;IAC1BR,oBAAoB,EAAE;GACvB;EACDvjB,eAAe,EAAE;IACfsjB,cAAc,EAAE,CAAC;IACjBziB,UAAU,EAAE,CAAC;IACb0iB,oBAAoB,EAAE;;CAEzB;AAEM,MAAMlpC,YAAY,GAAG;EAC1Bu5B,YAAY,EAAE;IACZ5uC,IAAI,EAAE;GACP;EACD4f,QAAQ,EAAE;IACRq/B,eAAe,EAAE,iBAAiB;IAClCC,uBAAuB,EAAE,yBAAyB;IAClDtgB,WAAW,EAAE,aAAa;IAC1BugB,eAAe,EAAE,iBAAiB;IAClCzxB,cAAc,EAAE,gBAAgB;IAChC0xB,qBAAqB,EAAE,uBAAuB;IAC9C91B,YAAY,EAAE;GACf;EACDwvB,mBAAmB,EAAE;IACnBxvB,YAAY,EAAE;GACf;EACDtF,gBAAgB,EAAE;IAChBC,SAAS,EAAE;GACZ;EACD+lB,cAAc,EAAE;IACdC,OAAO,EAAE;GACV;EACDnvB,mBAAmB,EAAE;IACnB7Z,WAAW,EAAE;GACd;EACDqiB,eAAe,EAAE;IACf+7B,sBAAsB,EAAE,wBAAwB;IAChDb,kBAAkB,EAAE,oBAAoB;IACxCC,eAAe,EAAE,iBAAiB;IAClClX,iBAAiB,EAAE;GACpB;EACDxwB,0BAA0B,EAAE;IAC1BuoC,eAAe,EAAE,iBAAiB;IAClCvjC,WAAW,EAAE,aAAa;IAC1B1C,0BAA0B,EAAE,4BAA4B;IACxDJ,qCAAqC,EAAE;GACxC;EACDgqB,oBAAoB,EAAE;IACpBjiC,YAAY,EAAE;GACf;EACD6jC,gBAAgB,EAAE;IAChB0a,uBAAuB,EAAE,yBAAyB;IAClDb,mBAAmB,EAAE,qBAAqB;IAC1CC,gBAAgB,EAAE,kBAAkB;IACpCC,yBAAyB,EAAE,2BAA2B;IACtDrX,iBAAiB,EAAE;GACpB;EACDjC,qBAAqB,EAAE;IACrBpiC,MAAM,EAAE;GACT;EACD4jC,iBAAiB,EAAE;IACjB0Y,mBAAmB,EAAE,qBAAqB;IAC1CX,eAAe,EAAE,iBAAiB;IAClCC,YAAY,EAAE;GACf;EACDxX,wBAAwB,EAAE;IACxBlmC,gBAAgB,EAAE;GACnB;EACD6nC,oBAAoB,EAAE;IACpBwW,2BAA2B,EAAE,6BAA6B;IAC1DV,uBAAuB,EAAE,yBAAyB;IAClDW,wBAAwB,EAAE,0BAA0B;IACpDC,wBAAwB,EAAE;GAC3B;EACD3kB,eAAe,EAAE;IACfa,UAAU,EAAE;;CAEf;AAEM,MAAMtrB,aAAa,GAAG;EAC3Bq+B,YAAY,EAAE;IACZsG,eAAe,EAAE,iBAAiB;IAClClF,UAAU,EAAE,YAAY;IACxBC,UAAU,EAAE;GACb;EACDrwB,QAAQ,EAAE;IACRggC,mBAAmB,EAAE,qBAAqB;IAC1CC,gBAAgB,EAAE,kBAAkB;IACpCrL,SAAS,EAAE,WAAW;IACtBsL,cAAc,EAAE,gBAAgB;IAChCC,aAAa,EAAE,eAAe;IAC9BC,iBAAiB,EAAE,mBAAmB;IACtCC,cAAc,EAAE,gBAAgB;IAChCC,aAAa,EAAE,eAAe;IAC9BC,eAAe,EAAE,iBAAiB;IAClCC,mBAAmB,EAAE,qBAAqB;IAC1CzwB,OAAO,EAAE,SAAS;IAClBE,QAAQ,EAAE,UAAU;IACpBL,eAAe,EAAG,iBAAiB;IACnCtC,eAAe,EAAE;GAClB;EACD4rB,mBAAmB,EAAE;IACnBY,sBAAsB,EAAE,oBAAoB;IAC5CT,iBAAiB,EAAE,eAAe;IAClCC,iBAAiB,EAAE;GACpB;EACDl1B,gBAAgB,EAAE;IAChByB,mBAAmB,EAAE,qBAAqB;IAC1CrB,cAAc,EAAE,gBAAgB;IAChCC,cAAc,EAAE;GACjB;EACD2lB,cAAc,EAAE;IACd6B,iBAAiB,EAAE,mBAAmB;IACtCvB,YAAY,EAAE,cAAc;IAC5BC,YAAY,EAAE;GACf;EACDzvB,mBAAmB,EAAE;IACnB+B,sBAAsB,EAAE,wBAAwB;IAChDxB,iBAAiB,EAAE,mBAAmB;IACtCE,iBAAiB,EAAE;GACpB;EACD7J,wBAAwB,EAAE;IACxBiB,sBAAsB,EAAE;GACzB;EACD2Q,eAAe,EAAE;IACfkM,eAAe,EAAE,iBAAiB;IAClC7d,YAAY,EAAE,cAAc;IAC5B0uC,kBAAkB,EAAE,oBAAoB;IACxCC,QAAQ,EAAE;GACX;EACDvpC,0BAA0B,EAAE;IAC1ByY,eAAe,EAAE,iBAAiB;IAClC5oB,eAAe,EAAE,iBAAiB;IAClC05C,QAAQ,EAAE,QAAQ;IAClBC,+BAA+B,EAAE,iCAAiC;IAClErnC,mCAAmC,EAAE,qCAAqC;IAC1EI,wBAAwB,EAAE;GAC3B;EACD2pB,oBAAoB,EAAE;IACpBO,uBAAuB,EAAE,yBAAyB;IAClDH,kBAAkB,EAAE,oBAAoB;IACxCC,kBAAkB,EAAE;GACrB;EACDuB,gBAAgB,EAAE;IAChBn1B,IAAI,EAAE,MAAM;IACZ8wC,qBAAqB,EAAE,cAAc;IACrCC,+BAA+B,EAAE,wBAAwB;IACzDH,QAAQ,EAAE;GACX;EACDhb,qBAAqB,EAAE;IACrBM,wBAAwB,EAAE,0BAA0B;IACpDH,mBAAmB,EAAE,qBAAqB;IAC1CC,mBAAmB,EAAE;GACtB;EACDoB,iBAAiB,EAAE;IACjB4Z,qBAAqB,EAAE,cAAc;IACrCC,yBAAyB,EAAE;GAC5B;EACDrZ,wBAAwB,EAAE;IACxBgB,2BAA2B,EAAE,6BAA6B;IAC1DZ,sBAAsB,EAAE,wBAAwB;IAChDC,sBAAsB,EAAE;GACzB;EACDsB,oBAAoB,EAAE;IACpBv5B,IAAI,EAAE,MAAM;IACZ4wC,QAAQ,EAAE,QAAQ;IAClBM,SAAS,EAAE,WAAW;IACtBC,cAAc,EAAE,gBAAgB;IAChCC,WAAW,EAAE,aAAa;IAC1BC,mBAAmB,EAAE,qBAAqB;IAC1CC,wBAAwB,EAAE,0BAA0B;IACpDC,gCAAgC,EAAE,kCAAkC;IACpE/X,2BAA2B,EAAE;GAC9B;EACDlO,eAAe,EAAE;IACfC,0BAA0B,EAAE,4BAA4B;IACxDC,iBAAiB,EAAE,mBAAmB;IACtCC,gCAAgC,EAAE,kCAAkC;IACpEC,kCAAkC,EAAE,oCAAoC;IACxEC,+BAA+B,EAAE,iCAAiC;IAClEC,qCAAqC,EAAE,uCAAuC;IAC9EC,0BAA0B,EAAE,4BAA4B;IACxDC,yBAAyB,EAAE,2BAA2B;IACtDC,0BAA0B,EAAE,4BAA4B;IACxDC,yBAAyB,EAAE,2BAA2B;IACtDC,8BAA8B,EAAE;;CAEnC;AAEM,MAAMnhB,mBAAmB,GAAG;EACjCo0B,YAAY,EAAE;IACZsB,qBAAqB,EAAE,uBAAuB;IAC9CC,qBAAqB,EAAE,uBAAuB;IAC9CC,wBAAwB,EAAE,0BAA0B;IACpDC,sBAAsB,EAAE,wBAAwB;IAChDE,iDAAiD,EAAE;GACpD;EACDuI,mBAAmB,EAAE;IACnBM,kCAAkC,EAAE,oCAAoC;IACxEC,wBAAwB,EAAE,0BAA0B;IACpDC,wBAAwB,EAAE,0BAA0B;IACpDC,wBAAwB,EAAE,0BAA0B;IACpDC,2BAA2B,EAAE,6BAA6B;IAC1DC,yBAAyB,EAAE;GAC5B;EACDz1B,gBAAgB,EAAE;IAChBk9B,2BAA2B,EAAE,6BAA6B;IAC1D58B,yBAAyB,EAAE,2BAA2B;IACtDC,yBAAyB,EAAE,2BAA2B;IACtDC,yBAAyB,EAAE,2BAA2B;IACtDE,4BAA4B,EAAE,8BAA8B;IAC5DC,0BAA0B,EAAE,4BAA4B;IACxDE,6BAA6B,EAAE;GAChC;EACDmlB,cAAc,EAAE;IACdQ,kBAAkB,EAAE,oBAAoB;IACxCE,oBAAoB,EAAE,sBAAsB;IAC5CE,kBAAkB,EAAE,oBAAoB;IACxCE,sBAAsB,EAAE,wBAAwB;IAChDC,uBAAuB,EAAE,yBAAyB;IAClDC,uBAAuB,EAAE,yBAAyB;IAClDC,0BAA0B,EAAE,4BAA4B;IACxDC,wBAAwB,EAAE,0BAA0B;IACpDE,2BAA2B,EAAE;GAC9B;EACDtwB,mBAAmB,EAAE;IACnBgB,uBAAuB,EAAE,yBAAyB;IAClDE,4BAA4B,EAAE,8BAA8B;IAC5DE,mCAAmC,EAAE;GACtC;EACD+mB,oBAAoB,EAAE;IACpBM,wBAAwB,EAAE;GAC3B;EACD+B,qBAAqB,EAAE;IACrBK,yBAAyB,EAAE;GAC5B;EACD2B,wBAAwB,EAAE;IACxBM,4BAA4B,EAAE;;CAEjC;AAEM,MAAMrtB,sBAAsB,GAAG;EACpCyvB,cAAc,EAAE;IACdsB,qBAAqB,EAAE,CAAC+Q,yEAAoB,CAAC8E,WAAW,CAAC;IACzD9V,8BAA8B,EAAE;GACjC;EACDvwB,mBAAmB,EAAE;IACnBgB,uBAAuB,EAAE0M,cAAc,CAAC1N,mBAAmB,CAACgjC,uBAAuB,CAACpvB;GACrF;EACDuU,oBAAoB,EAAE;IACpBM,wBAAwB,EAAE/a,cAAc,CAACya,oBAAoB,CAAC8a,wBAAwB,CAACrvB;GACxF;EACD4W,qBAAqB,EAAE;IACrBK,yBAAyB,EAAEnd,cAAc,CAAC8c,qBAAqB,CAAC0Y,yBAAyB,CAACtvB;GAC3F;EACD4Y,wBAAwB,EAAE;IACxBM,4BAA4B,EAAEpf,cAAc,CAAC8e,wBAAwB,CAAC2W,4BAA4B,CAACvvB;;CAEtG;AAEM,MAAM9T,oBAAoB,GAAG;EAClCg0B,YAAY,EAAE,QAAQ;EACtBkK,mBAAmB,EAAE,QAAQ;EAC7B90B,gBAAgB,EAAE,QAAQ;EAC1BgmB,cAAc,EAAE,QAAQ;EACxBlvB,mBAAmB,EAAE,QAAQ;EAC7BmoB,oBAAoB,EAAE,QAAQ;EAC9BqC,qBAAqB,EAAE,QAAQ;EAC/BgC,wBAAwB,EAAE;CAC3B;AAEM,MAAM8Z,qBAAqB,GAAG;EACnCxhC,QAAQ,EAAE;IACRzN,MAAM,EAAE;GACT;EACDmP,oBAAoB,EAAE;IACpBnP,MAAM,EAAE;GACT;EACDs7B,0BAA0B,EAAE;IAC1Bt7B,MAAM,EAAE;GACT;EACD63B,cAAc,EAAE;IACd73B,MAAM,EAAE;GACT;EACDmR,eAAe,EAAE;IACfnR,MAAM,EAAE,iBAAiB;IACzBgR,kBAAkB,EAAE;GACrB;EACDzR,wBAAwB,EAAE;IACxBS,MAAM,EAAE;GACT;EACD4E,0BAA0B,EAAE;IAC1B5E,MAAM,EAAE;GACT;EACD0yB,gBAAgB,EAAE;IAChB1yB,MAAM,EAAE;GACT;EACD20B,iBAAiB,EAAE;IACjB30B,MAAM,EAAE;GACT;EACD82B,oBAAoB,EAAE;IACpB92B,MAAM,EAAE;GACT;EACD6oB,eAAe,EAAE;IACf7oB,MAAM,EAAE;;CAEX;AAEM,MAAM3B,+BAA+B,GAA+C;EACzFoP,QAAQ,EAAE,CACR,CAACvP,aAAa,CAACuP,QAAQ,CAAC0+B,cAAc,EAAEhuC,WAAW,CAACsP,QAAQ,CAAC0+B,cAAc,EAAE8C,qBAAqB,CAACxhC,QAAQ,CAACzN,MAAM,CAAC,EACnH,CAAC9B,aAAa,CAACuP,QAAQ,CAAC2+B,oBAAoB,EAAEjuC,WAAW,CAACsP,QAAQ,CAAC2+B,oBAAoB,EAAE6C,qBAAqB,CAACxhC,QAAQ,CAACzN,MAAM,CAAC,CAChI;EACDmP,oBAAoB,EAAE,CACpB,CAACjR,aAAa,CAACiR,oBAAoB,CAACi9B,oBAAoB,EAAEjuC,WAAW,CAACgR,oBAAoB,CAACi9B,oBAAoB,EAAE6C,qBAAqB,CAAC9/B,oBAAoB,CAACnP,MAAM,CAAC,CACpK;EACDs7B,0BAA0B,EAAE,CAC1B,CAACp9B,aAAa,CAACo9B,0BAA0B,CAAC6Q,cAAc,EAAEhuC,WAAW,CAACm9B,0BAA0B,CAAC6Q,cAAc,EAAE8C,qBAAqB,CAAC3T,0BAA0B,CAACt7B,MAAM,CAAC,EACzK,CAAC9B,aAAa,CAACo9B,0BAA0B,CAAC8Q,oBAAoB,EAAEjuC,WAAW,CAACm9B,0BAA0B,CAAC8Q,oBAAoB,EAAE6C,qBAAqB,CAAC3T,0BAA0B,CAACt7B,MAAM,CAAC,CACtL;EACD63B,cAAc,EAAE,CACd,CAAC35B,aAAa,CAAC25B,cAAc,CAACsU,cAAc,EAAEhuC,WAAW,CAAC05B,cAAc,CAACsU,cAAc,EAAE8C,qBAAqB,CAACpX,cAAc,CAAC73B,MAAM,CAAC,EACrI,CAAC9B,aAAa,CAAC25B,cAAc,CAACuU,oBAAoB,EAAEjuC,WAAW,CAAC05B,cAAc,CAACuU,oBAAoB,EAAE6C,qBAAqB,CAACpX,cAAc,CAAC73B,MAAM,CAAC,CAClJ;EACDT,wBAAwB,EAAE,CACxB,CAACrB,aAAa,CAACqB,wBAAwB,CAAC4sC,cAAc,EAAEhuC,WAAW,CAACoB,wBAAwB,CAAC4sC,cAAc,EAAE8C,qBAAqB,CAAC1vC,wBAAwB,CAACS,MAAM,CAAC,EACnK,CAAC9B,aAAa,CAACqB,wBAAwB,CAAC6sC,oBAAoB,EAAEjuC,WAAW,CAACoB,wBAAwB,CAAC6sC,oBAAoB,EAAE6C,qBAAqB,CAAC1vC,wBAAwB,CAACS,MAAM,CAAC,CAChL;EACDmR,eAAe,EAAE,CACf,CAACjT,aAAa,CAACiT,eAAe,CAACg7B,cAAc,EAAEhuC,WAAW,CAACgT,eAAe,CAACg7B,cAAc,EAAE8C,qBAAqB,CAAC99B,eAAe,CAACnR,MAAM,CAAC,EACxI,CAAC9B,aAAa,CAACiT,eAAe,CAACg7B,cAAc,EAAEhuC,WAAW,CAACgT,eAAe,CAACg7B,cAAc,EAAE8C,qBAAqB,CAAC99B,eAAe,CAACH,kBAAkB,CAAC,EACpJ,CAAC9S,aAAa,CAACiT,eAAe,CAACi7B,oBAAoB,EAAEjuC,WAAW,CAACgT,eAAe,CAACi7B,oBAAoB,EAAE6C,qBAAqB,CAAC99B,eAAe,CAACnR,MAAM,CAAC,EACpJ,CAAC9B,aAAa,CAACiT,eAAe,CAACi7B,oBAAoB,EAAEjuC,WAAW,CAACgT,eAAe,CAACi7B,oBAAoB,EAAE6C,qBAAqB,CAAC99B,eAAe,CAACH,kBAAkB,CAAC,CACjK;EACDpM,0BAA0B,EAAE,CAC1B,CAAC1G,aAAa,CAAC0G,0BAA0B,CAACunC,cAAc,EAAEhuC,WAAW,CAACyG,0BAA0B,CAACunC,cAAc,EAAE8C,qBAAqB,CAACrqC,0BAA0B,CAAC5E,MAAM,CAAC,EACzK,CAAC9B,aAAa,CAAC0G,0BAA0B,CAACwnC,oBAAoB,EAAEjuC,WAAW,CAACyG,0BAA0B,CAACwnC,oBAAoB,EAAE6C,qBAAqB,CAACrqC,0BAA0B,CAAC5E,MAAM,CAAC,CACtL;EACD0yB,gBAAgB,EAAE,CAChB,CAACx0B,aAAa,CAACw0B,gBAAgB,CAACyZ,cAAc,EAAEhuC,WAAW,CAACu0B,gBAAgB,CAACyZ,cAAc,EAAE8C,qBAAqB,CAACvc,gBAAgB,CAAC1yB,MAAM,CAAC,EAC3I,CAAC9B,aAAa,CAACw0B,gBAAgB,CAAC0Z,oBAAoB,EAAEjuC,WAAW,CAACu0B,gBAAgB,CAAC0Z,oBAAoB,EAAE6C,qBAAqB,CAACvc,gBAAgB,CAAC1yB,MAAM,CAAC,CACxJ;EACD20B,iBAAiB,EAAE,CACjB,CAACz2B,aAAa,CAACy2B,iBAAiB,CAACwX,cAAc,EAAEhuC,WAAW,CAACw2B,iBAAiB,CAACwX,cAAc,EAAE8C,qBAAqB,CAACta,iBAAiB,CAAC30B,MAAM,CAAC,EAC9I,CAAC9B,aAAa,CAACy2B,iBAAiB,CAACyX,oBAAoB,EAAEjuC,WAAW,CAACw2B,iBAAiB,CAACyX,oBAAoB,EAAE6C,qBAAqB,CAACta,iBAAiB,CAAC30B,MAAM,CAAC,CAC3J;EACD82B,oBAAoB,EAAE,CACpB,CAAC54B,aAAa,CAAC44B,oBAAoB,CAACqV,cAAc,EAAEhuC,WAAW,CAAC24B,oBAAoB,CAACqV,cAAc,EAAE8C,qBAAqB,CAACnY,oBAAoB,CAAC92B,MAAM,CAAC,EACvJ,CAAC9B,aAAa,CAAC44B,oBAAoB,CAACsV,oBAAoB,EAAEjuC,WAAW,CAAC24B,oBAAoB,CAACsV,oBAAoB,EAAE6C,qBAAqB,CAACnY,oBAAoB,CAAC92B,MAAM,CAAC,CACpK;EACD6oB,eAAe,EAAE,CACf,CAAC3qB,aAAa,CAAC2qB,eAAe,CAACsjB,cAAc,EAAEhuC,WAAW,CAAC0qB,eAAe,CAACsjB,cAAc,EAAE8C,qBAAqB,CAACpmB,eAAe,CAAC7oB,MAAM,CAAC,EACxI,CAAC9B,aAAa,CAAC2qB,eAAe,CAACujB,oBAAoB,EAAEjuC,WAAW,CAAC0qB,eAAe,CAACujB,oBAAoB,EAAE6C,qBAAqB,CAACpmB,eAAe,CAAC7oB,MAAM,CAAC;CAEvJ;AAEM,MAAMokB,qBAAqB,GAAG;EACnC8B,cAAc,EAAE;CACjB;;;;;;;;;;;;;;;AChkCM,IAAK7B,YAIX;AAJD,WAAYA,YAAY;EACtBA,YAAA,iCAA6B;EAC7BA,YAAA,iCAA6B;EAC7BA,YAAA,qBAAiB;AACnB,CAAC,EAJWA,YAAY,KAAZA,YAAY;AAIvB;;;;;;;;;;;;;;;ACJM,IAAKkE,uBASX;AATD,WAAYA,uBAAuB;EACjCA,uBAAA,CAAAA,uBAAA,wCAAiB;EACjBA,uBAAA,CAAAA,uBAAA,sDAAwB;EACxBA,uBAAA,CAAAA,uBAAA,4BAAW;EACXA,uBAAA,CAAAA,uBAAA,sCAAgB;EAChBA,uBAAA,CAAAA,uBAAA,sCAAgB;EAChBA,uBAAA,CAAAA,uBAAA,sCAAgB;EAChBA,uBAAA,CAAAA,uBAAA,wCAAiB;EACjBA,uBAAA,CAAAA,uBAAA,sDAAwB;AAC1B,CAAC,EATWA,uBAAuB,KAAvBA,uBAAuB;AASlC;;;;;;;;;;;;;;;ACTM,IAAK2hB,oBAIX;AAJD,WAAYA,oBAAoB;EAC9BA,oBAAA,+BAA2B;EAC3BA,oBAAA,uBAAmB;EACnBA,oBAAA,iBAAa;AACf,CAAC,EAJWA,oBAAoB,KAApBA,oBAAoB;AAI/B;;;;;;;;;;;;;;;ACJM,MAAMn+C,cAAc,GAAG;EAC5B6B,kBAAkB,EAAE;IAClBC,IAAI,EAAE,+BAA+B;IACrCC,UAAU,EAAE;GACb;EACDD,IAAI,EAAE;IACJG,MAAM,EAAE,QAAQ;IAChBE,QAAQ,EAAE,cAAc;IACxBC,MAAM,EAAE,SAAS;IACjBC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE,aAAa;IACrBC,IAAI,EAAE;GACP;EACDC,sBAAsB,EAAE;IACtBD,IAAI,EAAE,+BAA+B;IACrCE,SAAS,EAAE;GACZ;EACDC,WAAW,EAAE;IACXL,IAAI,EAAE;GACP;EACDM,QAAQ,EAAE;IACRN,IAAI,EAAE;GACP;EACDO,MAAM,EAAE;IACNP,IAAI,EAAE;GACP;EACDQ,aAAa,EAAE;IACbR,IAAI,EAAE,qBAAqB;IAC3BC,MAAM,EAAE,uBAAuB;IAC/BC,IAAI,EAAE;GACP;EACDO,YAAY,EAAE;IACZT,IAAI,EAAE,mBAAmB;IACzBC,MAAM,EAAE,qBAAqB;IAC7BC,IAAI,EAAE;GACP;EACDQ,WAAW,EAAE;IACXV,IAAI,EAAE,kBAAkB;IACxBC,MAAM,EAAE,oBAAoB;IAC5BC,IAAI,EAAE,wBAAwB;IAC9BS,oBAAoB,EAAE,gEAAgE;IACtFC,sBAAsB,EAAE,iFAAiF;IACzGsY,4BAA4B,EAAE,8BAA8B;IAC5D3F,8BAA8B,EAAE;GACjC;EACD5S,oBAAoB,EAAE;IACpBV,MAAM,EAAE,8BAA8B;IACtCC,IAAI,EAAE;GACP;EACDU,sBAAsB,EAAE;IACtBX,MAAM,EAAE,gCAAgC;IACxCC,IAAI,EAAE;GACP;EACDW,gBAAgB,EAAE;IAChBb,IAAI,EAAE,wBAAwB;IAC9BC,MAAM,EAAE,0BAA0B;IAClCC,IAAI,EAAE,8BAA8B;IACpCY,oBAAoB,EAAE,uGAAuG;IAC7H8nC,8BAA8B,EAAE,0BAA0B;IAC1DC,0BAA0B,EAAE;GAC7B;EACD9nC,WAAW,EAAE;IACXb,IAAI,EAAE;GACP;EACDP,MAAM,EAAE,QAAQ;EAChBqB,IAAI,EAAE;CACP;;;;;;;;;;;;;;;;AClEM,MAAMmP,SAAS,GAAG;EACvB1Q,IAAI,EAAE,CAAC;EACPgB,YAAY,EAAE,CAAC;EACfD,aAAa,EAAE,CAAC;EAChBE,WAAW,EAAE,CAAC;EACdE,sBAAsB,EAAE,CAAC;EACzBD,oBAAoB,EAAE,CAAC;EACvBmkC,iBAAiB,EAAE,CAAC;EACpBgc,IAAI,EAAE,CAAC;EACP5S,QAAQ,EAAE,CAAC;EACXoK,eAAe,EAAE,EAAE;EACnB90B,YAAY,EAAE,EAAE;EAChBlJ,eAAe,EAAE,EAAE;EACnBmoB,gBAAgB,EAAE,EAAE;EACpB4G,UAAU,EAAE,EAAE;EACd7oB,gBAAgB,EAAE,EAAE;EACpBsmB,oBAAoB,EAAE,EAAE;EACxBjmC,gBAAgB,EAAE,EAAE;EACpBV,sBAAsB,EAAE,EAAE;EAC1BY,WAAW,EAAE;CACd;AAEM,MAAMiU,QAAQ,GAAG;EACtBvR,OAAO,EAAE,CAAC;EACV8R,MAAM,EAAE;CACT;;;;;;;;;;;;;;;ACzBM,IAAKu4B,aAGX;AAHD,WAAYA,aAAa;EACvBA,aAAA,iDAA6C;EAC7CA,aAAA,6BAAyB;AAC3B,CAAC,EAHWA,aAAa,KAAbA,aAAa;AAGxB;;;;;;;;;;;;;;;ACHM,IAAKvqB,iBAGX;AAHD,WAAYA,iBAAiB;EAC3BA,iBAAA,qBAAiB;EACjBA,iBAAA,qBAAiB;AACnB,CAAC,EAHWA,iBAAiB,KAAjBA,iBAAiB;AAG5B;;;;;;;;;;;;;;;;ACHM,IAAKwqB,qBAGX;AAHD,WAAYA,qBAAqB;EAC/BA,qBAAA,uBAAmB;EACnBA,qBAAA,mBAAe;AACjB,CAAC,EAHWA,qBAAqB,KAArBA,qBAAqB;AAGhC;AAEM,IAAKgT,kBA+BX;AA/BD,WAAYA,kBAAkB;EAC5BA,kBAAA,yCAAqC;EAErCA,kBAAA,2DAAuD;EACvDA,kBAAA,+CAA2C;EAC3CA,kBAAA,mFAA+E;EAC/EA,kBAAA,6FAAyF;EACzFA,kBAAA,6FAAyF;EACzFA,kBAAA,iFAA6E;EAC7EA,kBAAA,6EAAyE;EACzEA,kBAAA,6GAAyG;EACzGA,kBAAA,uHAAmH;EAEnHA,kBAAA,6DAAyD;EACzDA,kBAAA,uDAAmD;EACnDA,kBAAA,+DAA2D;EAC3DA,kBAAA,6CAAyC;EACzCA,kBAAA,6EAAyE;EACzEA,kBAAA,uFAAmF;EACnFA,kBAAA,+DAA2D;EAE3DA,kBAAA,qFAAiF;EACjFA,kBAAA,qCAAiC;EAEjCA,kBAAA,uGAAmG;EACnGA,kBAAA,qFAAiF;EACjFA,kBAAA,iGAA6F;EAE7FA,kBAAA,yDAAqD;EAErDA,kBAAA,2CAAuC;AACzC,CAAC,EA/BWA,kBAAkB,KAAlBA,kBAAkB;AA+B7B;AAMA;;;;;;;;;;;;;;;;AC1CM,IAAK/S,oBAGX;AAHD,WAAYA,oBAAoB;EAC9BA,oBAAA,uBAAmB;EACnBA,oBAAA,mBAAe;AACjB,CAAC,EAHWA,oBAAoB,KAApBA,oBAAoB;AAG/B;AAEM,IAAKgT,iBAkBX;AAlBD,WAAYA,iBAAiB;EAC3BA,iBAAA,yCAAqC;EAErCA,iBAAA,2DAAuD;EACvDA,iBAAA,+CAA2C;EAE3CA,iBAAA,6DAAyD;EACzDA,iBAAA,+DAA2D;EAC3DA,iBAAA,2EAAuE;EAEvEA,iBAAA,qFAAiF;EACjFA,iBAAA,yEAAqE;EAErEA,iBAAA,iGAA6F;EAE7FA,iBAAA,qDAAiD;EAEjDA,iBAAA,2CAAuC;AACzC,CAAC,EAlBWA,iBAAiB,KAAjBA,iBAAiB;AAkB5B;AAMA;;;;;;;;;;;;;;;;;;;;;;;AC1BuC;AAEA;AAEoC;AAEd;;;;;AASxD,MAAO14C,cAAe,SAAQ44C,iDAAU;EAI5Cr/C,YAAsBs/C,UAAsB,EAClCC,WAAgC,EAChC7wC,cAA8B,EAC9B8wC,qBAA4C;IACpD,KAAK,CAACF,UAAU,EAAEC,WAAW,CAACE,MAAM,GAAG,KAAK,CAAC;IAJzB,KAAAH,UAAU,GAAVA,UAAU;IACtB,KAAAC,WAAW,GAAXA,WAAW;IACX,KAAA7wC,cAAc,GAAdA,cAAc;IACd,KAAA8wC,qBAAqB,GAArBA,qBAAqB;IAL/B,KAAAE,OAAO,GAA2B,EAAE;EAOpC;EAEOt7C,UAAUA,CAACkM,GAAW,EAAEklB,KAAU;IACvC,IAAI,CAACkqB,OAAO,CAACpvC,GAAG,CAAC,GAAGklB,KAAK;EAC3B;EAEOlwB,UAAUA,CAACgL,GAAW;IAC3B,OAAO,IAAI,CAACovC,OAAO,CAACpvC,GAAG,CAAC;EAC1B;EAEOqvC,WAAWA,CAACC,WAAmB,EAAEC,YAAY,GAAG,IAAI;IACzD,MAAMrtB,GAAG,GAAG,IAAI,CAACstB,MAAM,CAACF,WAAW,CAAC;IAEpC,IAAI,CAACN,UAAU,CACZv5C,IAAI,CAACysB,GAAG,EAAE,IAAI,EAAE;MAAEutB,YAAY,EAAE,MAAM;MAAEC,OAAO,EAAE;IAAU,CAAE,CAAC,CAC9Dn/C,SAAS,CACRqF,QAAQ,IAAG;MACT,MAAMg2B,iBAAiB,GAAGh2B,QAAQ,CAACi2B,OAAO,CAACtsB,GAAG,CAAC,qBAAqB,CAAC;MACrE,IAAI,CAACqsB,iBAAiB,EAAE;QACtB,MAAM,IAAI6Y,KAAK,CAAC,yCAAyC,CAAC;;MAG5D;MACA;MACA;MACA;MACA;MACE;MACA,IAAI8K,YAAY,KAAK,IAAI,EAAE;QACzB,MAAMI,CAAC,GAAGlpB,QAAQ,CAACmpB,aAAa,CAAC,GAAG,CAAC;QACrCD,CAAC,CAACE,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC;QACxCppB,QAAQ,CAACuF,IAAI,CAAC8jB,WAAW,CAACH,CAAC,CAAC;QAC5BA,CAAC,CAAChkB,QAAQ,GAAGC,iBAAiB,CAACrK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACrD,IAAI,EAAE,CAACqD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjEouB,CAAC,CAAC/tB,IAAI,GAAGmuB,GAAG,CAACC,eAAe,CAACp6C,QAAQ,CAACo2B,IAAI,CAAC;QAC3C2jB,CAAC,CAACM,MAAM,GAAG,QAAQ;QACnBN,CAAC,CAACO,KAAK,EAAE;QACTzpB,QAAQ,CAACuF,IAAI,CAACmkB,WAAW,CAACR,CAAC,CAAC;OAC7B,MAAM;QACL,MAAMS,OAAO,GAAGL,GAAG,CAACC,eAAe,CAACp6C,QAAQ,CAACo2B,IAAI,CAAC;QAClD52B,MAAM,CAACC,IAAI,CAAC+6C,OAAO,EAAE,cAAc,CAAC;;MAExC;IACF,CAAC,EACDC,GAAG,IAAG;MACJ,MAAMA,GAAG;IACX,CAAC,CACF;EACL;EAEOtkB,kBAAkBA,CAACukB,wBAAgC;IACxD,MAAMC,KAAK,GAAaD,wBAAwB,CAAC/uB,KAAK,CAAC,GAAG,CAAC;IAC3D,MAAMuK,QAAQ,GAAGykB,KAAK,CAAC,CAAC,CAAC,CAAChvB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvC,OAAOuK,QAAQ,CAAC0kB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;EACvC;EAEO/6C,IAAIA,CAAIg7C,QAAgB,EAAEjrC,OAAU;IACzC,OAAO,IAAI,CAACkrC,YAAY,CAAID,QAAQ,EAAEjrC,OAAO,CAAC;EAChD;EAEOmrC,SAASA,CAACF,QAAgB;IAC/B,OAAO,IAAI,CAACC,YAAY,CAAMD,QAAQ,EAAE,EAAE,CAAC;EAC7C;EAEOG,MAAMA,CAACtB,WAAmB,EAAEuB,WAAgB,EAAEC,eAAuB,EAAExN,SAAiE;IAC7I,MAAMphB,GAAG,GAAG,IAAI,CAACstB,MAAM,CAACF,WAAW,CAAC;IAEpC,IAAI,CAAClxC,cAAc,CAACqH,WAAW,EAAE;IACjC,IAAI,CAACupC,UAAU,CACZv5C,IAAI,CAACysB,GAAG,EAAE2uB,WAAW,EAAE;MAAEpB,YAAY,EAAE,MAAM;MAAEC,OAAO,EAAE;IAAU,CAAE,CAAC,CACrEn/C,SAAS,CAAC;MACT4wB,IAAI,EAAEvrB,QAAQ,IAAG;QACf,IAAI,CAACwI,cAAc,CAACuH,WAAW,EAAE;QACjC,MAAMorC,QAAQ,GAAG30B,IAAI,CAACwG,KAAK,CAAChtB,QAAQ,CAACi2B,OAAO,CAACtsB,GAAG,CAAC,IAAI,CAACvK,UAAU,CAACxF,sEAAW,CAACsF,8BAA8B,CAAC,CAAC,CAAC;QAC9G,MAAMk8C,aAAa,GAAG,iFAAiF;QACvG,MAAM1wC,IAAI,GAAG,IAAI2wC,IAAI,CAAC,CAACr7C,QAAQ,CAACo2B,IAAI,CAAC,EAAE;UAAE9rB,IAAI,EAAE8wC;QAAa,CAAE,CAAC;QAC/D,MAAMllB,QAAQ,GAAG,GAAGglB,eAAe,IAAI,IAAII,IAAI,EAAE,CAACC,OAAO,EAAE,MAAM;QACjErC,8CAAgB,CAACxuC,IAAI,EAAEwrB,QAAQ,CAAC;QAChCwX,SAAS,GAAGhjC,IAAI,EAAEwrB,QAAQ,EAAEilB,QAAQ,CAAC;MACvC,CAAC;MACD/hC,KAAK,EAAEqhC,GAAG,IAAG;QACX,MAAMA,GAAG;MACX;KACD,CAAC;EACN;EAEOgB,eAAeA,CAA2B18B,WAAmB,EAAEnP,OAAwC,EAAE89B,SAA6D;IAC3K,IAAI,CAAC7tC,IAAI,CAACkf,WAAW,EAAEnP,OAAO,CAAC,CAC5B7P,IAAI,CAACrG,0CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAEqF,QAAmB,IAAK0tC,SAAS,CAAC1tC,QAAQ,EAAE,IAAI,CAAC07C,cAAc,EAAE,CAAC,CAAC;EACnF;EAEOA,cAAcA,CAAA;IACnB,OAAO,GAAG,IAAIJ,IAAI,EAAE,CAACC,OAAO,EAAE,EAAE;EAClC;EAEOp9C,2BAA2BA,CAACw9C,SAAiB,EAAEC,aAAqB;IACzE,OAAO/qB,QAAQ,CAACgrB,cAAc,CAACF,SAAS,CAAC,EAAEG,UAAU,CAACF,aAAa,CAAC,EAAEtsB,KAAK;EAC7E;EAEOb,qBAAqBA,CAAerkB,GAAS;IAClD,OAAO,IAAI,CAACkvC,qBAAqB,CAAC3vC,GAAG,CAAeS,GAAG,CAAC;EAC1D;EAEO0kB,qBAAqBA,CAAe1kB,GAAS,EAAEklB,KAAa;IACjE,IAAI,CAACgqB,qBAAqB,CAACyC,GAAG,CAAe3xC,GAAG,EAAEklB,KAAK,CAAC;EAC1D;EAAC,QAAAn2B,CAAA;qBAlHUoH,cAAc,EAAAF,sDAAA,CAAA7G,4DAAA,GAAA6G,sDAAA,CAAAG,0DAAA,GAAAH,sDAAA,CAAAG,qDAAA,GAAAH,sDAAA,CAAAK,2EAAA;EAAA;EAAA,QAAAtH,EAAA;WAAdmH,cAAc;IAAA67C,OAAA,EAAd77C,cAAc,CAAA87C,IAAA;IAAAC,UAAA,EAFb;EAAM;;;;;;;;;;;;;;;;;;;;ACdmH;;;;AAWjI,MAAOxkC,sBAAsB;EAEjChe,YACUC,cAA8B,EAC9B2O,qBAA4C;IAD5C,KAAA3O,cAAc,GAAdA,cAAc;IACd,KAAA2O,qBAAqB,GAArBA,qBAAqB;EAC/B;EAEAmb,mBAAmBA,CAAC7V,KAAU;IAC5B,MAAMuuC,uCAAuC,GAAI90B,YAAoB,IACnE,IAAI,CAAC/e,qBAAqB,CAACknB,iBAAiB,CAC1C5hB,KAAK,EACLjG,wEAAa,CAACuP,QAAQ,CAACgf,WAAW,EAClCtuB,sEAAW,CAACsP,QAAQ,CAACo/B,OAAO,EAC5B,IAAI,EACJ3pC,uEAAY,CAACuK,QAAQ,CAACs/B,uBAAuB,EAC7C,IAAI,EACJnvB,YAAY,CAAC;IACjB,MAAM6vB,mBAAmB,GAAGiF,uCAAuC,CAACt0C,wEAAa,CAACqP,QAAQ,CAACggC,mBAAmB,CAAC;IAC/G,MAAMC,gBAAgB,GAAGgF,uCAAuC,CAACt0C,wEAAa,CAACqP,QAAQ,CAACigC,gBAAgB,CAAC;IAEzG,MAAMz2B,cAAc,GAAGw2B,mBAAmB,KAAKp3B,yEAAc,CAAC5I,QAAQ,CAAC6O,KAAK,CAACmvB,EAAE,GAC3E,IAAI,CAACv7C,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACqF,+BAA+B,CAAC,GAC3Eq4C,mBAAmB,KAAKp3B,yEAAc,CAAC5I,QAAQ,CAAC6O,KAAK,CAACC,GAAG,GACvDmxB,gBAAgB,EAAExvB,IAAI,GACtB,IAAI;IAEV,OAAO;MACLnH,eAAe,EAAE02B,mBAAmB,GAAGA,mBAAmB,GAAG,IAAI;MACjEz2B,oBAAoB,EAAE02B,gBAAgB,GAAGA,gBAAgB,GAAG,IAAI;MAChEz2B,cAAc,EAAEA,cAAc,GAAGA,cAAc,GAAG;KACnD;EACH;EAEAuH,YAAYA,CAACra,KAAU;IACrB,OAAO,IAAI,CAACwuC,2BAA2B,CAACxuC,KAAK,EAAE/F,wEAAa,CAACqP,QAAQ,CAAC40B,SAAS,CAAC;EAClF;EAEAuQ,gBAAgBA,CAACzuC,KAAU;IACzB,OAAO,IAAI,CAACwuC,2BAA2B,CAACxuC,KAAK,EAAE/F,wEAAa,CAACqP,QAAQ,CAACmgC,aAAa,CAAC;EACtF;EAEAiF,iBAAiBA,CAAC1uC,KAAU;IAC1B,OAAO,IAAI,CAACwuC,2BAA2B,CAACxuC,KAAK,EAAE/F,wEAAa,CAACqP,QAAQ,CAACkgC,cAAc,CAAC;EACvF;EAEAzuB,kBAAkBA,CAAC/a,KAAU;IAC3B,OAAO,IAAI,CAACyuC,gBAAgB,CAACzuC,KAAK,CAAC,IAAI,IAAI,CAAC0uC,iBAAiB,CAAC1uC,KAAK,CAAC;EACtE;EAEAsU,uBAAuBA,CAACtU,KAAU,EAAEH,YAAoB;IACtD,IAAI,CAACA,YAAY,IAAIA,YAAY,KAAK,CAAC,EAAE;MACvC,OAAO,IAAI;;IAGb,MAAM8uC,YAAY,GAAG,IAAI,CAACC,gCAAgC,CAAC5uC,KAAK,EAAEH,YAAY,CAAC;IAC/E,IAAI,CAAC8uC,YAAY,EAAE;MACjB,OAAO,IAAI;;IAGb,MAAME,iCAAiC,GAAGF,YAAY,CAAC10C,wEAAa,CAACqP,QAAQ,CAAC+P,OAAO,CAAC,CAAC,CAAC;IACxF,IAAI,CAACw1B,iCAAiC,EAAE;MACtC,OAAO,IAAI;;IAGb,MAAMC,kBAAkB,GAAGH,YAAY,CAAC10C,wEAAa,CAACqP,QAAQ,CAACiQ,QAAQ,CAAC,CAAC,CAAC;IAC1E,IAAI,CAACu1B,kBAAkB,EAAE;MACvB,OAAO,IAAI;;IAGb,MAAMC,gBAAgB,GAAG,GAAGF,iCAAiC,IAAIC,kBAAkB,EAAE,CAAC,CAAC;IAEvF,OAAOC,gBAAgB;EACzB;EAEA91B,oBAAoBA,CAACjZ,KAAU;IAC7B,MAAM2uC,YAAY,GAAG,IAAI,CAACC,gCAAgC,CAAC5uC,KAAK,CAAC;IACjE,MAAMgZ,iBAAiB,GAAG21B,YAAY,CAACK,IAAI,CAACjD,CAAC,IAAIA,CAAC,CAACkD,SAAS,CAAC;IAC7D,OAAOj2B,iBAAiB;EAC1B;EAEAuC,kBAAkBA,CAACvb,KAAU,EAAEsoB,WAA2C;IACxE,MAAM4mB,+BAA+B,GAAGA,CAACz1B,YAAoB,EAAEoI,gBAAqB,KAClF,IAAI,CAACnnB,qBAAqB,CAAConB,oBAAoB,CAC7C9hB,KAAK,EACLjG,wEAAa,CAACuP,QAAQ,CAACgf,WAAW,EAClCtuB,sEAAW,CAACsP,QAAQ,CAACo/B,OAAO,EAC5B,IAAI,EACJ3pC,uEAAY,CAACuK,QAAQ,CAACgf,WAAW,EACjC,IAAI,EACJ7O,YAAY,EACZoI,gBAAgB,CAAC;IACrB,MAAMyf,OAAO,GACX4N,+BAA+B,CAACj1C,wEAAa,CAACqP,QAAQ,CAACmgC,aAAa,EAAEnhB,WAAW,CAAC6mB,SAAS,CAAC,IAC5FD,+BAA+B,CAACj1C,wEAAa,CAACqP,QAAQ,CAACkgC,cAAc,EAAElhB,WAAW,CAAC8mB,UAAU,CAAC,IAC9FF,+BAA+B,CAACj1C,wEAAa,CAACqP,QAAQ,CAACogC,iBAAiB,EAAE,IAAI,CAAC,IAC/EwF,+BAA+B,CAACj1C,wEAAa,CAACqP,QAAQ,CAACqgC,cAAc,EAAE,IAAI,CAAC,IAC5EuF,+BAA+B,CAACj1C,wEAAa,CAACqP,QAAQ,CAACsgC,aAAa,EAAEthB,WAAW,CAAC+mB,SAAS,CAAC,IAC5FH,+BAA+B,CAACj1C,wEAAa,CAACqP,QAAQ,CAACugC,eAAe,EAAEvhB,WAAW,CAACgnB,WAAW,CAAC;IAClG,OAAOhO,OAAO;EAChB;EAEA5pB,sBAAsBA,CAAC1X,KAAU,EAAE2X,oBAAyB;IAC1D,MAAM2pB,OAAO,GAAG,IAAI,CAAC5mC,qBAAqB,CAAConB,oBAAoB,CAC7D9hB,KAAK,EACLjG,wEAAa,CAACuP,QAAQ,CAAC0J,YAAY,EACnChZ,sEAAW,CAACsP,QAAQ,CAAC0J,YAAY,EACjC,IAAI,EACJjU,uEAAY,CAACuK,QAAQ,CAAC0J,YAAY,EAClC,IAAI,EACJ/Y,wEAAa,CAACqP,QAAQ,CAACsN,eAAe,EACtCe,oBAAoB,CAAC;IACvB,OAAO2pB,OAAO;EAChB;EAEAr+B,mCAAmCA,CAACmd,QAAmB,EAAEkD,QAA8B;IACrF,MAAMisB,+BAA+B,GAAiB,CACpDx1C,wEAAa,CAACuP,QAAQ,CAACgf,WAAW,EAClCtuB,sEAAW,CAACsP,QAAQ,CAACo/B,OAAO,EAC5B3pC,uEAAY,CAACuK,QAAQ,CAACu/B,eAAe,EACrC5uC,wEAAa,CAACqP,QAAQ,CAACwgC,mBAAmB,CAC3C;IACD,IAAI,CAACpvC,qBAAqB,CAACuI,mCAAmC,CAC5Dmd,QAAQ,EACRkD,QAAQ,EACR,CACEisB,+BAA+B,CAChC,CAAC;EACN;EAEAt3B,6BAA6BA,CAACjY,KAAU,EAAEwvC,kBAA0B,EAAE74B,sBAA8B;IAElG,MAAM84B,sBAAsB,GAAG,IAAI,CAACb,gCAAgC,CAAC5uC,KAAK,EAAEwvC,kBAAkB,CAAC;IAC/F,IAAI,CAACC,sBAAsB,EAAE;MAC3B,OAAO,KAAK;;IAEd,MAAMC,2BAA2B,GAAG;MAAE/4B,sBAAsB;MAAE,GAAG84B;IAAsB,CAAE;IAEzF,MAAME,sBAAsB,GAC1B,CAAC51C,wEAAa,CAACuP,QAAQ,CAAC6N,iBAAiB,EAAEnd,sEAAW,CAACsP,QAAQ,CAAC6N,iBAAiB,EAAE,IAAI,EAAEpY,uEAAY,CAACuK,QAAQ,CAACw/B,qBAAqB,EAAE,IAAI,CAAC;IAE7I,MAAM8G,uBAAuB,GAAU,IAAI,CAACl1C,qBAAqB,CAACm1C,gBAAgB,CAAC7vC,KAAK,EAAE,GAAG2vC,sBAAsB,CAAC,IAAI,EAAE;IAE1HC,uBAAuB,CAAC/N,IAAI,CAAC6N,2BAA2B,CAAC;IAEzD,MAAMpO,OAAO,GAAG,IAAI,CAAC5mC,qBAAqB,CAACo1C,mBAAmB,CAAC9vC,KAAK,EAAE,GAAG2vC,sBAAsB,EAAEC,uBAAuB,CAAC;IAEzH,OAAOtO,OAAO;EAChB;EAEQkN,2BAA2BA,CAACxuC,KAAU,EAAEyZ,YAAoB;IAClE,MAAMs2B,wBAAwB,GAAG,IAAI,CAACr1C,qBAAqB,CAACknB,iBAAiB,CAC3E5hB,KAAK,EACLjG,wEAAa,CAACuP,QAAQ,CAACgf,WAAW,EAClCtuB,sEAAW,CAACsP,QAAQ,CAACo/B,OAAO,EAC5B,IAAI,EACJ3pC,uEAAY,CAACuK,QAAQ,CAACgf,WAAW,EACjC,IAAI,EACJ7O,YAAY,CAAC;IACf,OAAOs2B,wBAAwB;EACjC;EAEQnB,gCAAgCA,CAAC5uC,KAAU,EAAEH,YAAA,GAAuB,IAAI;IAC9E,MAAM8uC,YAAY,GAAG,IAAI,CAACj0C,qBAAqB,CAACm1C,gBAAgB,CAC9D7vC,KAAK,EACLjG,wEAAa,CAACuP,QAAQ,CAAC6N,iBAAiB,EACxCnd,sEAAW,CAACsP,QAAQ,CAAC6N,iBAAiB,EACtC,IAAI,EACJpY,uEAAY,CAACuK,QAAQ,CAAC8N,cAAc,EACpCvX,YAAY,CAAC;IACf,OAAO8uC,YAAY;EACrB;EAAC,QAAAxjD,CAAA;qBA1KU2e,sBAAsB,EAAAzX,sDAAA,CAAA7G,6DAAA,GAAA6G,sDAAA,CAAAG,2EAAA;EAAA;EAAA,QAAApH,EAAA;WAAtB0e,sBAAsB;IAAAskC,OAAA,EAAtBtkC,sBAAsB,CAAAukC,IAAA;IAAAC,UAAA,EAFrB;EAAM;;;;;;;;;;;;;;;;;;ACNd,MAAO0B,iBAAiB;EAE5BC,OAAOA,CAA0BC,KAAY,EAAEC,KAAY,EAAEC,kBAAqD;IAChH,MAAMC,gBAAgB,GAAGD,kBAAkB,CAACF,KAAK,CAAC;IAClD,MAAMI,gBAAgB,GAAGF,kBAAkB,CAACD,KAAK,CAAC;IAClD,IAAIE,gBAAgB,GAAGC,gBAAgB,EAAE;MACvC,OAAO,CAAC,CAAC;;IAEX,IAAID,gBAAgB,GAAGC,gBAAgB,EAAE;MACvC,OAAO,CAAC;;IAEV,OAAO,CAAC;EACV;EAEAC,OAAOA,CAA0BC,KAAc,EAAEJ,kBAAqD;IACpG,OAAOI,KAAK,EACRC,KAAK,EAAE,CAAC;IAAA,EACRC,IAAI,CAAC,CAACR,KAAK,EAAEC,KAAK,KAAK,IAAI,CAACF,OAAO,CAACC,KAAK,EAAEC,KAAK,EAAEC,kBAAkB,CAAC,CAAC;EAC5E;EAAC,QAAAjlD,CAAA;qBAlBU6kD,iBAAiB;EAAA;EAAA,QAAA5kD,EAAA;WAAjB4kD,iBAAiB;IAAA5B,OAAA,EAAjB4B,iBAAiB,CAAA3B,IAAA;IAAAC,UAAA,EAFhB;EAAM;;;;;;;;;;;;;;;;;;;ACAiB;AAE4B;;;AAGjE;AAIM,MAAOllD,4BAA4B;EAEvC0C,YACU2O,aAA4B;IAA5B,KAAAA,aAAa,GAAbA,aAAa;IAGvB;IACA,KAAA3Q,aAAa,GAAIN,SAA4B,IAC3CA,SAAS,CAACM,aAAa,EAAE,GACrB,IAAI,GACJ,IAAI,CAAC6mD,iBAAiB,EAAE;IAE9B;IACA;IACQ,KAAAA,iBAAiB,GAAG,MAAM,IAAI,CAACl2C,aAAa,CACjD8c,WAAW,CAACyO,8CAAO,CAAC4qB,eAAe,CAAC,CACpC7+C,IAAI,CAACsV,mDAAG,CAAC3K,IAAI,IAAIA,IAAI,KAAKsV,mDAAY,CAACyF,QAAQ,CAAC,CAAC;EAZpD;EAAC,QAAAtsB,CAAA;qBAJU/B,4BAA4B,EAAAiJ,sDAAA,CAAA7G,oDAAA;EAAA;EAAA,QAAAJ,EAAA;WAA5BhC,4BAA4B;IAAAglD,OAAA,EAA5BhlD,4BAA4B,CAAAilD,IAAA;IAAAC,UAAA,EAF3B;EAAM;;;;;;;;;;;;;;;;;;;;;ACJ0C;;;;;AAiBxD,MAAOlrC,mBAAmB;EAE9BtX,YACU2O,aAA4B,EAC5B1O,cAA8B,EAC9B4O,iBAAoC;IAFpC,KAAAF,aAAa,GAAbA,aAAa;IACb,KAAA1O,cAAc,GAAdA,cAAc;IACd,KAAA4O,iBAAiB,GAAjBA,iBAAiB;IA8FV,KAAAk2C,kBAAkB,GAAG,UAAU;EA7FhD;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACAtQ,iCAAiCA,CAAC3zC,MAAgC;IAChE,MAAMkkD,YAAY,GAAG,IAAI,CAACr2C,aAAa,CAACs2C,eAAe,EAAE,CAACpkD,SAAS,CAAC,MAAK;MACvE,IAAI,CAACqkD,SAAS,CAAC,MAAK;QAClB,MAAMC,mBAAmB,GAAG,IAAI,CAACt2C,iBAAiB,CAAC0+B,mCAAmC,CAACzsC,MAAM,CAACyrC,WAAW,EAAEzrC,MAAM,CAAC+c,iBAAiB,EAAE/c,MAAM,CAAC4rC,iBAAiB,CAAC;QAC9J,IAAI,CAACyY,mBAAmB,EAAE;UACxB,OAAO,KAAK;;QAEd,MAAM7X,mBAAmB,GAAG,IAAI,CAACz+B,iBAAiB,CAAC0+B,mCAAmC,CAACzsC,MAAM,CAACyrC,WAAW,EAAEzrC,MAAM,CAAC+c,iBAAiB,EAAE/c,MAAM,CAAC+rC,iBAAiB,CAAC;QAC9J,IAAI,CAACS,mBAAmB,EAAE;UACxB,OAAO,KAAK;;QAEd,IAAI,CAACz+B,iBAAiB,CAAC2+B,sBAAsB,CAAC2X,mBAAmB,EAAE,OAAO,EAAE,MAAK;UAC/EA,mBAAmB,CAAC3E,KAAK,EAAE;UAC3BwE,YAAY,CAACI,WAAW,EAAE;QAC5B,CAAC,CAAC;QACF,IAAI,CAACv2C,iBAAiB,CAAC2+B,sBAAsB,CAACF,mBAAmB,EAAE,OAAO,EAAE,MAAK;UAC/E0X,YAAY,CAACI,WAAW,EAAE;QAC5B,CAAC,CAAC;QACF,OAAO,IAAI;MACb,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEAF,SAASA,CAACG,SAAwB,EAAEC,OAAkB;IACpDD,SAAS,GAAGA,SAAS,KAAK,MAAM,IAAI,CAAC;IACrCC,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IAClD,MAAMC,aAAa,GAAIC,SAAiB,IAAI;MAC1C,IAAIA,SAAS,IAAIF,OAAO,CAAC9gC,MAAM,EAAE;QAC/B;;MAEF,MAAMihC,MAAM,GAAGH,OAAO,CAACE,SAAS,CAAC;MACjCx4B,UAAU,CAAC,MAAK;QACd,IAAIq4B,SAAS,EAAE,EAAE;UACf;;QAEFE,aAAa,CAACC,SAAS,GAAG,CAAC,CAAC;MAC9B,CAAC,EAAEC,MAAM,CAAC;IACZ,CAAC;IACDF,aAAa,CAAC,CAAC,CAAC;EAClB;EAEA7vC,UAAUA,CAAC6O,SAAiB,EAAEmhC,YAAiC,EAAE90C,IAAyB,EAAE+0C,SAAS,GAAG,IAAI,CAACZ,kBAAkB;IAC7H,IAAI,CAACp2C,aAAa,CAAC+G,UAAU,CAAC6O,SAAS,EAAE,IAAI,EAAE;MAAE,GAAGmhC,YAAY;MAAEjvC,OAAO,EAAE,IAAI,CAACmvC,YAAY,CAACh1C,IAAI,EAAE+0C,SAAS;IAAC,CAAE,CAAC;EAClH;EAEAl6B,WAAWA,CAAClH,SAAiB,EAAEmhC,YAAiC,EAAE90C,IAAyB,EAAE+0C,SAAS,GAAG,IAAI,CAACZ,kBAAkB;IAC9H,OAAO,IAAI,CAACp2C,aAAa,CAAC8c,WAAW,CAAClH,SAAS,EAAE;MAAE,GAAGmhC,YAAY;MAAEjvC,OAAO,EAAE,IAAI,CAACmvC,YAAY,CAACh1C,IAAI,EAAE+0C,SAAS;IAAC,CAAE,CAAC;EACpH;EAEAx0B,YAAYA,CAACD,QAAuB;IAClC,MAAM20B,gBAAgB,GAAG,IAAI,CAACC,mBAAmB,CAAC50B,QAAQ,CAAC;IAC3D,MAAM5a,OAAO,GACX;SACGuvC,gBAAgB;;gDAEuB;IAC5C,OAAO,IAAI,CAACl3C,aAAa,CAACyV,eAAe,CAAC9N,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;EAC/E;EAEAsvC,YAAYA,CAACh1C,IAA0B,EAAE+0C,SAAS,GAAG,IAAI,CAACZ,kBAAkB;IAC1E,IAAI,CAACn0C,IAAI,EAAE;MACT,OAAO,EAAE;;IAEX,MAAM0D,MAAM,GAAGuV,MAAM,CAClBC,OAAO,CAAClZ,IAAI,CAAC,CACb2K,GAAG,CAACwqC,KAAK,KAAK;MACbz4C,IAAI,EAAE,IAAI,CAACuB,iBAAiB,CAACm3C,aAAa,CAACD,KAAK,CAAC,CAAC,CAAC,CAAC;MACpDvwB,KAAK,EAAE,IAAI,CAAC3mB,iBAAiB,CAACm3C,aAAa,CAACD,KAAK,CAAC,CAAC,CAAC;KACrD,CAAC,CAAC;IACL,IAAI,CAACzxC,MAAM,CAACkQ,MAAM,EAAE;MAClB,OAAO,EAAE;;IAEX,MAAMyhC,SAAS,GAAGN,SAAS,GAAG,IAAI,CAAC92C,iBAAiB,CAAConC,UAAU,CAAC,GAAG,EAAE0P,SAAS,CAAC,GAAG,EAAE;IACpF,MAAMO,QAAQ,GAAG,IAAI,CAACr3C,iBAAiB,CAACqnC,YAAY,CAAC5hC,MAAM,CAAC;IAC5D,MAAM6xC,UAAU,GAAGF,SAAS,GAAGC,QAAQ;IACvC,OAAOC,UAAU;EACnB;EAIQL,mBAAmBA,CAAC50B,QAAuB;IACjD,MAAMk1B,SAAS,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC;IACxC,MAAMC,QAAQ,GAAGn1B,QAAQ,EACrB3V,GAAG,CAAC+qC,OAAO,IAAG;MACd,MAAMhwC,OAAO,GAAG,IAAI,CAACiwC,YAAY,CAACD,OAAO,CAAChwC,OAAO,CAAC;MAClD,MAAMqvC,SAAS,GAAW,IAAI;MAC9B,MAAMlvC,OAAO,GAAG,IAAI,CAACmvC,YAAY,CAACU,OAAO,CAAC7vC,OAAO,EAAEkvC,SAAS,CAAC;MAC7D,OAAO,CAACrvC,OAAO,EAAEG,OAAO,CAAC;IAC3B,CAAC,CAAC,IACC,EAAE;IACP,MAAM+vC,SAAS,GAAG,IAAI,CAAC33C,iBAAiB,CAAC43C,eAAe,CAACL,SAAS,EAAEC,QAAQ,CAAC;IAC7E,OAAOG,SAAS;EAClB;EAEQD,YAAYA,CAAChiC,SAAiB;IACpC,MAAMmiC,aAAa,GAAG,IAAI,CAACC,gBAAgB,EAAE;IAC7C,MAAMC,KAAK,GAAGF,aAAa,EAAExD,IAAI,CAAC2D,CAAC,IAAIA,CAAC,CAAC54B,IAAI,KAAK1J,SAAS,CAAC;IAC5D,MAAMuiC,SAAS,GAAGF,KAAK,EAAEG,IAAI;IAC7B,OAAOD,SAAS;EAClB;EAEQH,gBAAgBA,CAAA;IACtB,MAAM72B,wBAAwB,GAAG,IAAI,CAAC7vB,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACgwB,wBAAwB,CAAC;IACrG,MAAM42B,aAAa,GAAG52B,wBAAwB,GAAE,CAAE;IAClD,OAAO42B,aAAa;EACtB;EAAC,QAAArnD,CAAA;qBA9HUiY,mBAAmB,EAAA/Q,sDAAA,CAAA7G,oDAAA,GAAA6G,sDAAA,CAAAG,6DAAA,GAAAH,sDAAA,CAAAK,mEAAA;EAAA;EAAA,QAAAtH,EAAA;WAAnBgY,mBAAmB;IAAAgrC,OAAA,EAAnBhrC,mBAAmB,CAAAirC,IAAA;IAAAC,UAAA,EAFlB;EAAM;;;;;;;;;;;;;;;;;;;;;;;;ACnBQ;AAIwC;AACS;;;;;;AAwEvE,MAAOrM,sBAAsB;EAEjCn2C,YACU2O,aAA4B,EAC5B1O,cAA8B,EAC9B+mD,iBAAoC,EACpCn4C,iBAAoC;IAHpC,KAAAF,aAAa,GAAbA,aAAa;IACb,KAAA1O,cAAc,GAAdA,cAAc;IACd,KAAA+mD,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAn4C,iBAAiB,GAAjBA,iBAAiB;EAC3B;EAEAigC,wBAAwBA,CAACntC,aAA2C,EAAEslD,UAAkB,EAAEztC,UAAkB,EAC1G0tC,mBAA6F;IAC7F,IAAI,CAACzjD,MAAM,CACT9B,aAAa,EACb;MAAE6X;IAAU,CAAE,EACd3Z,4EAAY,CAAC45C,eAAe,CAAC3K,wBAAwB,EACrD,CAACh5B,OAAO,EAAE5P,QAAQ,KAAK,wCAAwCsT,UAAU,GAAG,EAC5E,CAAC1D,OAAO,EAAE5P,QAAQ,KAAK,IAAI,CAACihD,4BAA4B,CAACjhD,QAAQ,CAAC,EAClE8M,qEAAU,CAACw5B,YAAY,CAACkC,sBAAsB,EAC9C;MAAEC,0BAA0B,EAAEsY,UAAU;MAAElY,2BAA2B,EAAEv1B;IAAU,CAAE,EACnF0tC,mBAAmB,CAAC;EACxB;EAEAlW,iBAAiBA,CAACrvC,aAA2C,EAAEslD,UAAkB,EAAEG,cAAuB,EAAE5tC,UAAkB,EAC5H0tC,mBAA6F;IAC7F,IAAI,CAACzjD,MAAM,CACT9B,aAAa,EACb;MAAEylD,cAAc;MAAE5tC;IAAU,CAAE,EAC9B3Z,4EAAY,CAAC45C,eAAe,CAACzI,iBAAiB,EAC9C,CAACl7B,OAAO,EAAE5P,QAAQ,KAAK,qBAAqBsT,UAAU,IAAI4tC,cAAc,GAAG,qBAAqB,GAAG,EAAE,EAAE,EACvG,CAACtxC,OAAO,EAAE5P,QAAQ,KAAK,IAAI,CAACmhD,qBAAqB,CAACnhD,QAAQ,CAAC,EAC3D8M,qEAAU,CAACw5B,YAAY,CAACyD,aAAa,EACrC;MAAEF,iBAAiB,EAAEkX,UAAU;MAAEhW,2BAA2B,EAAEmW,cAAc;MAAElW,kBAAkB,EAAE13B;IAAU,CAAE,EAC9G0tC,mBAAmB,CAAC;EACxB;EAEA9V,kBAAkBA,CAACzvC,aAA2C,EAAEslD,UAAkB,EAAEG,cAAuB,EAAE5tC,UAAkB,EAC7H0tC,mBAA6F;IAC7F,IAAI,CAACzjD,MAAM,CACT9B,aAAa,EACb;MAAEylD,cAAc;MAAE5tC;IAAU,CAAE,EAC9B3Z,4EAAY,CAAC45C,eAAe,CAACrI,kBAAkB,EAC/C,CAACt7B,OAAO,EAAE5P,QAAQ,KAAK,sBAAsBsT,UAAU,IAAI4tC,cAAc,GAAG,qBAAqB,GAAG,EAAE,EAAE,EACxG,CAACtxC,OAAO,EAAE5P,QAAQ,KAAK,IAAI,CAACohD,sBAAsB,CAACphD,QAAQ,CAAC,EAC5D8M,qEAAU,CAACw5B,YAAY,CAACyD,aAAa,EACrC;MAAEF,iBAAiB,EAAEkX,UAAU;MAAEhW,2BAA2B,EAAEmW,cAAc;MAAElW,kBAAkB,EAAE13B;IAAU,CAAE,EAC9G0tC,mBAAmB,CAAC;EACxB;EAEA5V,mBAAmBA,CAAC3vC,aAA2C,EAAEslD,UAAkB,EAAEG,cAAuB,EAAE5tC,UAAkB,EAC9H0tC,mBAA6F;IAC7F,IAAI,CAACzjD,MAAM,CACT9B,aAAa,EACb;MAAEylD,cAAc;MAAE5tC;IAAU,CAAE,EAC9B3Z,4EAAY,CAAC45C,eAAe,CAACnI,mBAAmB,EAChD,CAACx7B,OAAO,EAAE5P,QAAQ,KAAK,uBAAuBsT,UAAU,IAAI4tC,cAAc,GAAG,qBAAqB,GAAG,EAAE,EAAE,EACzG,CAACtxC,OAAO,EAAE5P,QAAQ,KAAK,IAAI,CAACqhD,uBAAuB,CAACrhD,QAAQ,CAAC,EAC7D8M,qEAAU,CAACw5B,YAAY,CAACyD,aAAa,EACrC;MAAEF,iBAAiB,EAAEkX,UAAU;MAAEhW,2BAA2B,EAAEmW,cAAc;MAAElW,kBAAkB,EAAE13B;IAAU,CAAE,EAC9G0tC,mBAAmB,CAAC;EACxB;EAEAjY,6BAA6BA,CAACttC,aAA2C,EAAEslD,UAAkB,EAAEztC,UAAkB,EAC/G0tC,mBAA6F;IAC7F,IAAI,CAACzjD,MAAM,CACT9B,aAAa,EACb;MAAE6X;IAAU,CAAE,EACd3Z,4EAAY,CAAC45C,eAAe,CAACxK,6BAA6B,EAC1D,CAACn5B,OAAO,EAAE5P,QAAQ,KAAK,0BAA0BsT,UAAU,GAAG,EAC9D,CAAC1D,OAAO,EAAE5P,QAAQ,KAAK,IAAI,CAACshD,iCAAiC,CAACthD,QAAQ,CAAC,EACvE8M,qEAAU,CAACw5B,YAAY,CAACkC,sBAAsB,EAC9C;MAAEC,0BAA0B,EAAEsY,UAAU;MAAElY,2BAA2B,EAAEv1B;IAAU,CAAE,EACnF0tC,mBAAmB,CAAC;EACxB;EAEAhX,sBAAsBA,CAACvuC,aAA2C,EAAEslD,UAAkB,EAAEztC,UAAkB,EACxG0tC,mBAA6F;IAC7F,IAAI,CAACzjD,MAAM,CACT9B,aAAa,EACb;MAAE6X;IAAU,CAAE,EACd3Z,4EAAY,CAAC45C,eAAe,CAACvJ,sBAAsB,EACnD,CAACp6B,OAAO,EAAE5P,QAAQ,KAAK,qBAAqBsT,UAAU,GAAG,EACzD,CAAC1D,OAAO,EAAE5P,QAAQ,KAAK,IAAI,CAACuhD,0BAA0B,CAACvhD,QAAQ,CAAC,EAChE8M,qEAAU,CAACw5B,YAAY,CAACgD,kBAAkB,EAC1C;MAAEH,sBAAsB,EAAE4X,UAAU;MAAE9W,uBAAuB,EAAE32B;IAAU,CAAE,EAC3E0tC,mBAAmB,CAAC;EACxB;EAEA7W,uBAAuBA,CAAC1uC,aAA2C,EAAEslD,UAAkB,EAAEztC,UAAkB,EACzG0tC,mBAA6F;IAC7F,IAAI,CAACzjD,MAAM,CACT9B,aAAa,EACb;MAAE6X;IAAU,CAAE,EACd3Z,4EAAY,CAAC45C,eAAe,CAACpJ,uBAAuB,EACpD,CAACv6B,OAAO,EAAE5P,QAAQ,KAAK,sBAAsBsT,UAAU,GAAG,EAC1D,CAAC1D,OAAO,EAAE5P,QAAQ,KAAK,IAAI,CAACwhD,2BAA2B,CAACxhD,QAAQ,CAAC,EACjE8M,qEAAU,CAACw5B,YAAY,CAACgD,kBAAkB,EAC1C;MAAEH,sBAAsB,EAAE4X,UAAU;MAAE9W,uBAAuB,EAAE32B;IAAU,CAAE,EAC3E0tC,mBAAmB,CAAC;EACxB;EAEA3W,8BAA8BA,CAAC5uC,aAA2C,EAAEslD,UAAkB,EAAEztC,UAAkB,EAChH0tC,mBAA6F;IAC7F,IAAI,CAACzjD,MAAM,CACT9B,aAAa,EACb;MAAE6X;IAAU,CAAE,EACd3Z,4EAAY,CAAC45C,eAAe,CAAClJ,8BAA8B,EAC3D,CAACz6B,OAAO,EAAE5P,QAAQ,KAAK,6BAA6BsT,UAAU,GAAG,EACjE,CAAC1D,OAAO,EAAE5P,QAAQ,KAAK,IAAI,CAACyhD,kCAAkC,CAACzhD,QAAQ,CAAC,EACxE8M,qEAAU,CAACw5B,YAAY,CAACgD,kBAAkB,EAC1C;MAAEH,sBAAsB,EAAE4X,UAAU;MAAE9W,uBAAuB,EAAE32B;IAAU,CAAE,EAC3E0tC,mBAAmB,CAAC;EACxB;EAEAzW,6BAA6BA,CAAC9uC,aAA2C,EAAEslD,UAAkB,EAAEztC,UAAkB,EAC/G0tC,mBAA6F;IAC7F,IAAI,CAACzjD,MAAM,CACT9B,aAAa,EACb;MAAE6X;IAAU,CAAE,EACd3Z,4EAAY,CAAC45C,eAAe,CAAChJ,6BAA6B,EAC1D,CAAC36B,OAAO,EAAE5P,QAAQ,KAAK,4BAA4BsT,UAAU,GAAG,EAChE,CAAC1D,OAAO,EAAE5P,QAAQ,KAAK,IAAI,CAAC0hD,iCAAiC,CAAC1hD,QAAQ,CAAC,EACvE8M,qEAAU,CAACw5B,YAAY,CAACgD,kBAAkB,EAC1C;MAAEH,sBAAsB,EAAE4X,UAAU;MAAE9W,uBAAuB,EAAE32B;IAAU,CAAE,EAC3E0tC,mBAAmB,CAAC;EACxB;EAEAvW,kBAAkBA,CAAChvC,aAA2C,EAAEslD,UAAkB,EAAEG,cAAuB,EAAE5tC,UAAkB,EAC7H0tC,mBAA6F;IAC7F,IAAI,CAACzjD,MAAM,CACT9B,aAAa,EACb;MAAEylD,cAAc;MAAE5tC,UAAU;MAAEquC,uBAAuB,EAAEZ,UAAU,KAAK7gC,yEAAc,CAAComB,YAAY,CAACmD,kBAAkB,CAACe;IAAiB,CAAE,EACxI7wC,4EAAY,CAAC45C,eAAe,CAAC9I,kBAAkB,EAC/C,CAAC76B,OAAO,EAAE5P,QAAQ,KAAK,qBAAqBsT,UAAU,IAAI4tC,cAAc,GAAG,qBAAqB,GAAG,EAAE,EAAE,EACvG,CAACtxC,OAAO,EAAE5P,QAAQ,KAAK,IAAI,CAAC4hD,sBAAsB,CAAC5hD,QAAQ,CAAC,EAC5D8M,qEAAU,CAACw5B,YAAY,CAACqD,cAAc,EACtC;MAAEH,kBAAkB,EAAEuX,UAAU;MAAErW,4BAA4B,EAAEwW,cAAc;MAAEvW,mBAAmB,EAAEr3B;IAAU,CAAE,EACjH0tC,mBAAmB,CAAC;EACxB;EAEAnW,mBAAmBA,CAACpvC,aAA2C,EAAEslD,UAAkB,EAAEG,cAAuB,EAAE5tC,UAAkB,EAC9H0tC,mBAA6F;IAC7F,IAAI,CAACzjD,MAAM,CACT9B,aAAa,EACb;MAAEylD,cAAc;MAAE5tC;IAAU,CAAE,EAC9B3Z,4EAAY,CAAC45C,eAAe,CAAC1I,mBAAmB,EAChD,CAACj7B,OAAO,EAAE5P,QAAQ,KAAK,sBAAsBsT,UAAU,IAAI4tC,cAAc,GAAG,qBAAqB,GAAG,EAAE,EAAE,EACxG,CAACtxC,OAAO,EAAE5P,QAAQ,KAAK,IAAI,CAAC6hD,uBAAuB,CAAC7hD,QAAQ,CAAC,EAC7D8M,qEAAU,CAACw5B,YAAY,CAACqD,cAAc,EACtC;MAAEH,kBAAkB,EAAEuX,UAAU;MAAErW,4BAA4B,EAAEwW,cAAc;MAAEvW,mBAAmB,EAAEr3B;IAAU,CAAE,EACjH0tC,mBAAmB,CAAC;EACxB;EAEQzjD,MAAMA,CACZ9B,aAA2C,EAC3CmU,OAAiB,EACjBmP,WAAmB,EACnB+iC,oBAAwE,EACxEC,qBAAyE,EACzE1jC,SAAiB,EACjBK,UAAe,EACfsiC,mBAA6F;IAE7F,IAAI,CAACjnD,cAAc,CAAC8F,IAAI,CAACkf,WAAW,EAAEnP,OAAO,CAAC,CAC3C7P,IAAI,CAACrG,0CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAEqF,QAAmB,IAAI;MACjC,IAAGghD,mBAAmB,EAAE;QACtBA,mBAAmB,CAACe,qBAAqB,CAACnyC,OAAO,EAAE5P,QAAQ,CAAC,EAAE8hD,oBAAoB,CAAClyC,OAAO,EAAE5P,QAAQ,CAAC,EAAE,MAAMvE,aAAa,EAAEorC,aAAa,GAAGxoB,SAAS,EAAEK,UAAU,CAAC,CAAC;;MAGrK,IAAI,CAAC/V,iBAAiB,CAACq5C,gCAAgC,CAAC,gBAAgB,CAAC;IAC3E,CAAC,CAAC;EACN;EAEA;EAEQf,4BAA4BA,CAACjhD,QAA0C;IAE7E,MAAMiiD,YAAY,GAAG,GAAG;IACxB,MAAMC,SAAS,GAAG,IAAI;IAEtB,MAAMxqD,IAAI,GAAG,IAAI,CAACiR,iBAAiB,CAACm3C,aAAa,CAAC9/C,QAAQ,CAAC;IAE3D,IAAItI,IAAI,EAAEyqD,YAAY,EAAE;MACtB,OAAO,IAAI,CAACx5C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAEvqD,IAAI,CAACyqD,YAAY,CAAC;;IAG3E,IAAIzqD,IAAI,EAAE0qD,OAAO,EAAE9jC,MAAM,EAAE;MACzB,MAAMlO,OAAO,GAAG,sBAAsB,IAAIpQ,QAAQ,CAACqiD,cAAc,GAAG,4BAA4B3qD,IAAI,CAAC0qD,OAAO,CAAC9jC,MAAM,WAAW,GAAE,EAAE,CAAC;MACnI,OAAO,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE7xC,OAAO,CAAC,GAAG,IAAI,CAACkyC,8BAA8B,CAAC5qD,IAAI,CAAC0qD,OAAO,CAAC;;IAGrH,MAAMG,eAAe,GAAG7qD,IAAI,EAAE8qD,WAAW,GACpC,IAAI,CAAC75C,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,cAAc,CAAC,GAAG,IAAI,CAACO,mCAAmC,CAAC/qD,IAAI,CAAC8qD,WAAW,CAAC,GAC1H,EAAE;IACN,MAAME,iBAAiB,GAAGhrD,IAAI,EAAEirD,aAAa,GACxC,IAAI,CAACh6C,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,qBAAqB,CAAC,GAAG,IAAI,CAACU,uBAAuB,CAAClrD,IAAI,CAACirD,aAAa,CAAC,GACvH,EAAE;IAEN,OAAOJ,eAAe,GAAGG,iBAAiB;EAC5C;EAEQvB,qBAAqBA,CAACnhD,QAAmC;IAE/D,MAAMiiD,YAAY,GAAG,GAAG;IACxB,MAAMC,SAAS,GAAG,IAAI;IACtB,MAAMW,YAAY,GAAG,IAAI;IAEzB,MAAMC,iBAAiB,GAAIzxB,IAAwB,IAAKA,IAAI,EAAE0xB,WAAW;IACzE,MAAMC,6BAA6B,GAAI3xB,IAAwC,IAAK,GAAGA,IAAI,EAAE4xB,mBAAmB,MAAM5xB,IAAI,EAAE6xB,SAAS,EAAE;IAEvI,MAAMC,oBAAoB,GAAIC,UAAgC,IAAK,IAAI,CAACtC,iBAAiB,CAACvC,OAAO,CAAC6E,UAAU,EAAEN,iBAAiB,CAAC,EAC5HztC,GAAG,CAACguC,SAAS,IAAI,IAAI,CAAC16C,iBAAiB,CAAConC,UAAU,CAAC8S,YAAY,EAAEC,iBAAiB,CAACO,SAAS,CAAC,CAAC,GAC9F,IAAI,CAACC,6BAA6B,CAACD,SAAS,CAAC,CAAC,EAC9CE,IAAI,CAAC,EAAE,CAAC;IAEZ,MAAMC,gCAAgC,GAAIC,sBAA4D,IAAK,IAAI,CAAC3C,iBAAiB,CAACvC,OAAO,CAACkF,sBAAsB,EAAET,6BAA6B,CAAC,EAC5L3tC,GAAG,CAACquC,qBAAqB,IAAI,IAAI,CAAC/6C,iBAAiB,CAAConC,UAAU,CAAC8S,YAAY,EAAEG,6BAA6B,CAACU,qBAAqB,CAAC,CAAC,GAClI,IAAI,CAACC,sCAAsC,CAACD,qBAAqB,CAAC,CAAC,EACnEH,IAAI,CAAC,EAAE,CAAC;IAEZ,MAAM7rD,IAAI,GAAG,IAAI,CAACiR,iBAAiB,CAACm3C,aAAa,CAAC9/C,QAAQ,CAAC;IAE3D,IAAItI,IAAI,EAAEyqD,YAAY,EAAE;MACtB,OAAO,IAAI,CAACx5C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAEvqD,IAAI,CAACyqD,YAAY,CAAC;;IAG3E,IAAIzqD,IAAI,EAAE0qD,OAAO,EAAE9jC,MAAM,EAAE;MACzB,MAAMlO,OAAO,GAAG,sBAAsB,IAAIpQ,QAAQ,CAACqiD,cAAc,GAAG,4BAA4B3qD,IAAI,CAAC0qD,OAAO,CAAC9jC,MAAM,WAAW,GAAG,EAAE,CAAC;MACpI,OAAO,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE7xC,OAAO,CAAC,GAAG,IAAI,CAACkyC,8BAA8B,CAAC5qD,IAAI,CAAC0qD,OAAO,CAAC;;IAGrH,MAAMG,eAAe,GAAG7qD,IAAI,EAAE8qD,WAAW,GACpC,IAAI,CAAC75C,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC0B,4BAA4B,CAAClsD,IAAI,CAAC8qD,WAAW,CAAC,GACnH,EAAE;IACN,MAAMqB,cAAc,GAAGnsD,IAAI,EAAE0rD,UAAU,EAAE9kC,MAAM,GAC1C,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,mBAAmB,CAAC,GAAGiB,oBAAoB,CAACzrD,IAAI,CAAC0rD,UAAU,CAAC,GAC1G,EAAE;IACN,MAAMU,0BAA0B,GAAGpsD,IAAI,EAAE+rD,sBAAsB,EAAEnlC,MAAM,GAClE,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,yBAAyB,CAAC,GAAGsB,gCAAgC,CAAC9rD,IAAI,CAAC+rD,sBAAsB,CAAC,GACxI,EAAE;IACN,MAAMf,iBAAiB,GAAGhrD,IAAI,EAAEirD,aAAa,GACxC,IAAI,CAACh6C,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,qBAAqB,CAAC,GAAG,IAAI,CAACU,uBAAuB,CAAClrD,IAAI,CAACirD,aAAa,CAAC,GACvH,EAAE;IAEN,OAAOJ,eAAe,GAAGsB,cAAc,GAAGC,0BAA0B,GAAGpB,iBAAiB;EAC1F;EAEQtB,sBAAsBA,CAACphD,QAAoC;IAEjE,MAAMiiD,YAAY,GAAG,GAAG;IACxB,MAAMC,SAAS,GAAG,IAAI;IAEtB,MAAM6B,KAAK,GAAG,IAAI,CAACp7C,iBAAiB,CAACm3C,aAAa,CAAC9/C,QAAQ,CAAC;IAE5D,IAAI+jD,KAAK,EAAE5B,YAAY,EAAE;MACvB,OAAO,IAAI,CAACx5C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE8B,KAAK,CAAC5B,YAAY,CAAC;;IAG5E,IAAI4B,KAAK,EAAE3B,OAAO,EAAE9jC,MAAM,EAAE;MAC1B,MAAMlO,OAAO,GAAG,uBAAuB,IAAIpQ,QAAQ,CAACqiD,cAAc,GAAG,4BAA4B0B,KAAK,CAAC3B,OAAO,CAAC9jC,MAAM,WAAW,GAAG,EAAE,CAAC;MACtI,OAAO,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE7xC,OAAO,CAAC,GAAG,IAAI,CAAC4zC,+BAA+B,CAACD,KAAK,CAAC3B,OAAO,CAAC;;IAGvH,MAAM6B,gBAAgB,GAAGF,KAAK,EAAEG,YAAY,GACvC,IAAI,CAACv7C,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,eAAe,CAAC,GAAG,IAAI,CAACoB,6BAA6B,CAACS,KAAK,CAACG,YAAY,CAAC,GACvH,EAAE;IAEN,OAAOD,gBAAgB;EACzB;EAEQ5C,uBAAuBA,CAACrhD,QAAqC;IAEnE,MAAMiiD,YAAY,GAAG,GAAG;IACxB,MAAMC,SAAS,GAAG,IAAI;IAEtB,MAAMv5B,MAAM,GAAG,IAAI,CAAChgB,iBAAiB,CAACm3C,aAAa,CAAC9/C,QAAQ,CAAC;IAE7D,IAAI2oB,MAAM,EAAEw5B,YAAY,EAAE;MACxB,OAAO,IAAI,CAACx5C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAEt5B,MAAM,CAACw5B,YAAY,CAAC;;IAG7E,IAAIx5B,MAAM,EAAEy5B,OAAO,EAAE9jC,MAAM,EAAE;MAC3B,MAAMlO,OAAO,GAAG,wBAAwB,IAAIpQ,QAAQ,CAACqiD,cAAc,GAAG,4BAA4B15B,MAAM,CAACy5B,OAAO,CAAC9jC,MAAM,WAAW,GAAG,EAAE,CAAC;MACxI,OAAO,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE7xC,OAAO,CAAC,GAAG,IAAI,CAAC+zC,gCAAgC,CAACx7B,MAAM,CAACy5B,OAAO,CAAC;;IAGzH,MAAMgC,iBAAiB,GAAGz7B,MAAM,EAAE07B,aAAa,GAC1C,IAAI,CAAC17C,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAACoC,8BAA8B,CAAC37B,MAAM,CAAC07B,aAAa,CAAC,GAC3H,EAAE;IAEN,OAAOD,iBAAiB;EAC1B;EAEQ9C,iCAAiCA,CAACthD,QAA+C;IAEvF,MAAMiiD,YAAY,GAAG,GAAG;IACxB,MAAMC,SAAS,GAAG,IAAI;IAEtB,MAAMxqD,IAAI,GAAG,IAAI,CAACiR,iBAAiB,CAACm3C,aAAa,CAAC9/C,QAAQ,CAAC;IAE3D,IAAItI,IAAI,EAAEyqD,YAAY,EAAE;MACtB,OAAO,IAAI,CAACx5C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAEvqD,IAAI,CAACyqD,YAAY,CAAC;;IAG3E,IAAIzqD,IAAI,EAAE0qD,OAAO,EAAE9jC,MAAM,EAAE;MACzB,MAAMlO,OAAO,GAAG,sBAAsB,IAAIpQ,QAAQ,CAACqiD,cAAc,GAAG,4BAA4B3qD,IAAI,CAAC0qD,OAAO,CAAC9jC,MAAM,WAAW,GAAG,EAAE,CAAC;MACpI,OAAO,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE7xC,OAAO,CAAC,GAAG,IAAI,CAACm0C,mCAAmC,CAAC7sD,IAAI,CAAC0qD,OAAO,CAAC;;IAG1H,MAAMG,eAAe,GAAG7qD,IAAI,EAAE8qD,WAAW,GACpC,IAAI,CAAC75C,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,cAAc,CAAC,GAAG,IAAI,CAACsC,wCAAwC,CAAC9sD,IAAI,CAAC8qD,WAAW,CAAC,GAC/H,EAAE;IACN,MAAMiC,oBAAoB,GAAG/sD,IAAI,EAAEgtD,gBAAgB,GAC9C,IAAI,CAAC/7C,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,mCAAmC,CAAC,GAAG,IAAI,CAACyC,0BAA0B,CAACjtD,IAAI,CAACgtD,gBAAgB,CAAC,GAC3I,EAAE;IAEN,OAAOnC,eAAe,GAAGkC,oBAAoB;EAC/C;EAEQlD,0BAA0BA,CAACvhD,QAAwC;IAEzE,MAAMiiD,YAAY,GAAG,GAAG;IACxB,MAAMC,SAAS,GAAG,IAAI;IACtB,MAAMW,YAAY,GAAG,IAAI;IAEzB,MAAMC,iBAAiB,GAAIzxB,IAA6B,IAAKA,IAAI,EAAEuzB,EAAE;IACrE,MAAMC,oBAAoB,GAAIxzB,IAAoC,IAAKA,IAAI,EAAEyzB,YAAY;IACzF,MAAMC,4BAA4B,GAAI1zB,IAA4C,IAAKA,IAAI,EAAE2zB,YAAY;IAEzG,MAAMC,wBAAwB,GAAIC,cAAgD,IAAK,IAAI,CAACpE,iBAAiB,CAACvC,OAAO,CAAC2G,cAAc,EAAEL,oBAAoB,CAAC,EACvJxvC,GAAG,CAAC8vC,YAAY,IAAI,IAAI,CAACx8C,iBAAiB,CAAConC,UAAU,CAAC8S,YAAY,EAAEgC,oBAAoB,CAACM,YAAY,CAAC,CAAC,GACvG,IAAI,CAACC,kCAAkC,CAACD,YAAY,CAAC,CAAC,EACtD5B,IAAI,CAAC,EAAE,CAAC;IAEZ,MAAM8B,+BAA+B,GAAIC,qBAA+D,IAAK,IAAI,CAACxE,iBAAiB,CAACvC,OAAO,CAAC+G,qBAAqB,EAAEP,4BAA4B,CAAC,EAC5L1vC,GAAG,CAACkwC,oBAAoB,IAAI,IAAI,CAAC58C,iBAAiB,CAAConC,UAAU,CAAC8S,YAAY,EAAEkC,4BAA4B,CAACQ,oBAAoB,CAAC,CAAC,GAC/H,IAAI,CAACC,0CAA0C,CAACD,oBAAoB,CAAC,CAAC,EACtEhC,IAAI,CAAC,EAAE,CAAC;IAEZ,MAAMJ,oBAAoB,GAAIC,UAAqC,IAAK,IAAI,CAACtC,iBAAiB,CAACvC,OAAO,CAAC6E,UAAU,EAAEN,iBAAiB,CAAC,EACjIztC,GAAG,CAACguC,SAAS,IAAI,IAAI,CAAC16C,iBAAiB,CAAConC,UAAU,CAAC8S,YAAY,EAAEC,iBAAiB,CAACO,SAAS,CAAC,CAAC,GAC9F,IAAI,CAACoC,kCAAkC,CAACpC,SAAS,CAAC,CAAC,EACnDE,IAAI,CAAC,EAAE,CAAC;IAEZ,MAAM7rD,IAAI,GAAG,IAAI,CAACiR,iBAAiB,CAACm3C,aAAa,CAAC9/C,QAAQ,CAAC;IAE3D,IAAItI,IAAI,EAAEyqD,YAAY,EAAE;MACtB,OAAO,IAAI,CAACx5C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAEvqD,IAAI,CAACyqD,YAAY,CAAC;;IAG3E,IAAIzqD,IAAI,EAAE0qD,OAAO,EAAE9jC,MAAM,EAAE;MACzB,MAAMlO,OAAO,GAAG,sBAAsB,IAAIpQ,QAAQ,CAACqiD,cAAc,GAAG,4BAA4B3qD,IAAI,CAAC0qD,OAAO,CAAC9jC,MAAM,WAAW,GAAG,EAAE,CAAC;MACpI,OAAO,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE7xC,OAAO,CAAC,GAAG,IAAI,CAACm0C,mCAAmC,CAAC7sD,IAAI,CAAC0qD,OAAO,CAAC;;IAG1H,MAAMsD,kBAAkB,GAAGhuD,IAAI,EAAEiuD,cAAc,GAC3C,IAAI,CAACh9C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAEvqD,IAAI,CAACiuD,cAAc,CAAC,GACpE,EAAE;IACN,MAAMpD,eAAe,GAAG7qD,IAAI,EAAE8qD,WAAW,GACpC,IAAI,CAAC75C,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC0D,iCAAiC,CAACluD,IAAI,CAAC8qD,WAAW,CAAC,GACxH,EAAE;IACN,MAAMqD,kBAAkB,GAAGnuD,IAAI,EAAEwtD,cAAc,EAAE5mC,MAAM,GAClD,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,8BAA8B,CAAC,GAAG+C,wBAAwB,CAACvtD,IAAI,CAACwtD,cAAc,CAAC,GAC7H,EAAE;IACN,MAAMY,yBAAyB,GAAGpuD,IAAI,EAAE4tD,qBAAqB,EAAEhnC,MAAM,GAChE,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,yBAAyB,CAAC,GAAGmD,+BAA+B,CAAC3tD,IAAI,CAAC4tD,qBAAqB,CAAC,GACtI,EAAE;IACN,MAAMzB,cAAc,GAAGnsD,IAAI,EAAE0rD,UAAU,EAAE9kC,MAAM,GAC1C,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,mBAAmB,CAAC,GAAGiB,oBAAoB,CAACzrD,IAAI,CAAC0rD,UAAU,CAAC,GAC1G,EAAE;IACN,MAAMqB,oBAAoB,GAAG/sD,IAAI,EAAEgtD,gBAAgB,GAC9C,IAAI,CAAC/7C,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,mCAAmC,CAAC,GAAG,IAAI,CAACyC,0BAA0B,CAACjtD,IAAI,CAACgtD,gBAAgB,CAAC,GAC3I,EAAE;IAEN,OAAOgB,kBAAkB,GAAGnD,eAAe,GAAGsD,kBAAkB,GAAGC,yBAAyB,GAAGjC,cAAc,GAAGY,oBAAoB;EACtI;EAEQjD,2BAA2BA,CAACxhD,QAAyC;IAE3E,MAAMiiD,YAAY,GAAG,GAAG;IACxB,MAAMC,SAAS,GAAG,IAAI;IACtB,MAAMW,YAAY,GAAG,IAAI;IAEzB,MAAMkD,wBAAwB,GAAI10B,IAAmC,IAAKA,IAAI,EAAE20B,YAAY;IAC5F,MAAMC,4BAA4B,GAAI50B,IAAuC,IAAK,GAAGA,IAAI,EAAE60B,kBAAkB,MAAM70B,IAAI,EAAE80B,sBAAsB,EAAE;IAEjJ,MAAMC,2BAA2B,GAAIC,iBAAkD,IAAK,IAAI,CAACvF,iBAAiB,CAACvC,OAAO,CAAC8H,iBAAiB,EAAEN,wBAAwB,CAAC,EACnK1wC,GAAG,CAACixC,gBAAgB,IAAI,IAAI,CAAC39C,iBAAiB,CAAConC,UAAU,CAAC8S,YAAY,EAAEkD,wBAAwB,CAACO,gBAAgB,CAAC,CAAC,GACnH,IAAI,CAACC,wCAAwC,CAACD,gBAAgB,CAAC,CAAC,EAChE/C,IAAI,CAAC,EAAE,CAAC;IAEZ,MAAMiD,+BAA+B,GAAIC,qBAA0D,IAAK,IAAI,CAAC3F,iBAAiB,CAACvC,OAAO,CAACkI,qBAAqB,EAAER,4BAA4B,CAAC,EACvL5wC,GAAG,CAACqxC,oBAAoB,IAAI,IAAI,CAAC/9C,iBAAiB,CAAConC,UAAU,CAAC8S,YAAY,EAAEoD,4BAA4B,CAACS,oBAAoB,CAAC,CAAC,GAC/H,IAAI,CAACC,qCAAqC,CAACD,oBAAoB,CAAC,CAAC,EACjEnD,IAAI,CAAC,EAAE,CAAC;IAEZ,MAAMQ,KAAK,GAAG,IAAI,CAACp7C,iBAAiB,CAACm3C,aAAa,CAAC9/C,QAAQ,CAAC;IAE5D,IAAI+jD,KAAK,EAAE5B,YAAY,EAAE;MACvB,OAAO,IAAI,CAACx5C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE8B,KAAK,CAAC5B,YAAY,CAAC;;IAG5E,IAAI4B,KAAK,EAAE3B,OAAO,EAAE9jC,MAAM,EAAE;MAC1B,MAAMlO,OAAO,GAAG,uBAAuB,IAAIpQ,QAAQ,CAACqiD,cAAc,GAAG,4BAA4B0B,KAAK,CAAC3B,OAAO,CAAC9jC,MAAM,WAAW,GAAG,EAAE,CAAC;MACtI,OAAO,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE7xC,OAAO,CAAC,GAAG,IAAI,CAACw2C,oCAAoC,CAAC7C,KAAK,CAAC3B,OAAO,CAAC;;IAG5H,MAAMsD,kBAAkB,GAAG3B,KAAK,EAAE4B,cAAc,GAC5C,IAAI,CAACh9C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE8B,KAAK,CAAC4B,cAAc,CAAC,GACrE,EAAE;IACN,MAAM1B,gBAAgB,GAAGF,KAAK,EAAEG,YAAY,GACvC,IAAI,CAACv7C,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,eAAe,CAAC,GAAG,IAAI,CAACuD,kCAAkC,CAAC1B,KAAK,CAACG,YAAY,CAAC,GAC5H,EAAE;IACN,MAAM2C,qBAAqB,GAAG9C,KAAK,EAAEsC,iBAAiB,EAAE/nC,MAAM,GACzD,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,yBAAyB,CAAC,GAAGkE,2BAA2B,CAACrC,KAAK,CAACsC,iBAAiB,CAAC,GAC/H,EAAE;IACN,MAAMS,yBAAyB,GAAG/C,KAAK,EAAE0C,qBAAqB,EAAEnoC,MAAM,GACjE,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,8BAA8B,CAAC,GAAGsE,+BAA+B,CAACzC,KAAK,CAAC0C,qBAAqB,CAAC,GAC5I,EAAE;IAEN,OAAOf,kBAAkB,GAAGzB,gBAAgB,GAAG4C,qBAAqB,GAAGC,yBAAyB;EAClG;EAEQrF,kCAAkCA,CAACzhD,QAAgD;IAEzF,MAAMiiD,YAAY,GAAG,GAAG;IACxB,MAAMC,SAAS,GAAG,IAAI;IACtB,MAAMW,YAAY,GAAG,IAAI;IAEzB,MAAMkE,+BAA+B,GAAI11B,IAAmC,IAAKA,IAAI,EAAE20B,YAAY;IACnG,MAAMgB,mCAAmC,GAAI31B,IAAoC,IAAKA,IAAI,EAAE41B,YAAY;IAExG,MAAMC,kCAAkC,GAAIC,wBAAyD,IAAK,IAAI,CAACrG,iBAAiB,CAACvC,OAAO,CAAC4I,wBAAwB,EAAEJ,+BAA+B,CAAC,EAC/L1xC,GAAG,CAAC+xC,uBAAuB,IAAI,IAAI,CAACz+C,iBAAiB,CAAConC,UAAU,CAAC8S,YAAY,EAAEkE,+BAA+B,CAACK,uBAAuB,CAAC,CAAC,GACxI,IAAI,CAACb,wCAAwC,CAACa,uBAAuB,CAAC,CAAC,EACvE7D,IAAI,CAAC,EAAE,CAAC;IAEZ,MAAM8D,sCAAsC,GAAIC,4BAA8D,IAAK,IAAI,CAACxG,iBAAiB,CAACvC,OAAO,CAAC+I,4BAA4B,EAAEN,mCAAmC,CAAC,EAChN3xC,GAAG,CAACkyC,2BAA2B,IAAI,IAAI,CAAC5+C,iBAAiB,CAAConC,UAAU,CAAC8S,YAAY,EAAEmE,mCAAmC,CAACO,2BAA2B,CAAC,CAAC,GACpJ,IAAI,CAACC,yCAAyC,CAACD,2BAA2B,CAAC,CAAC,EAC5EhE,IAAI,CAAC,EAAE,CAAC;IAEZ,MAAM7qD,YAAY,GAAG,IAAI,CAACiQ,iBAAiB,CAACm3C,aAAa,CAAC9/C,QAAQ,CAAC;IAEnE,IAAItH,YAAY,EAAEypD,YAAY,EAAE;MAC9B,OAAO,IAAI,CAACx5C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAEvpD,YAAY,CAACypD,YAAY,CAAC;;IAGnF,IAAIzpD,YAAY,EAAE0pD,OAAO,EAAE9jC,MAAM,EAAE;MACjC,MAAMlO,OAAO,GAAG,8BAA8B,IAAIpQ,QAAQ,CAACqiD,cAAc,GAAG,4BAA4B3pD,YAAY,CAAC0pD,OAAO,CAAC9jC,MAAM,WAAW,GAAG,EAAE,CAAC;MACpJ,OAAO,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE7xC,OAAO,CAAC,GAAG,IAAI,CAACq3C,2CAA2C,CAAC/uD,YAAY,CAAC0pD,OAAO,CAAC;;IAG1I,MAAMsD,kBAAkB,GAAGhtD,YAAY,EAAEitD,cAAc,GACnD,IAAI,CAACh9C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAEvpD,YAAY,CAACitD,cAAc,CAAC,GAC5E,EAAE;IACN,MAAM+B,uBAAuB,GAAGhvD,YAAY,EAAE09C,mBAAmB,GAC5D,IAAI,CAACztC,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,sBAAsB,CAAC,GAAG,IAAI,CAACsF,yCAAyC,CAAC9uD,YAAY,CAAC09C,mBAAmB,CAAC,GACxJ,EAAE;IACN,MAAMuR,4BAA4B,GAAGjvD,YAAY,EAAEyuD,wBAAwB,EAAE7oC,MAAM,GAC9E,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,oBAAoB,CAAC,GAAGgF,kCAAkC,CAACxuD,YAAY,CAACyuD,wBAAwB,CAAC,GAC/I,EAAE;IACN,MAAMS,gCAAgC,GAAGlvD,YAAY,EAAE4uD,4BAA4B,EAAEhpC,MAAM,GACtF,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,mBAAmB,CAAC,GAAGmF,sCAAsC,CAAC3uD,YAAY,CAAC4uD,4BAA4B,CAAC,GACtJ,EAAE;IAEN,OAAO5B,kBAAkB,GAAGgC,uBAAuB,GAAGC,4BAA4B,GAAGC,gCAAgC;EACvH;EAEQlG,iCAAiCA,CAAC1hD,QAA+C;IAEvF,MAAMiiD,YAAY,GAAG,GAAG;IACxB,MAAMC,SAAS,GAAG,IAAI;IACtB,MAAMW,YAAY,GAAG,IAAI;IAEzB,MAAMgF,uBAAuB,GAAIx2B,IAAuC,IAAKA,IAAI,EAAE80B,sBAAsB;IACzG,MAAM2B,mCAAmC,GAAIz2B,IAAmD,IAAKA,IAAI,EAAE02B,mBAAmB;IAE9H,MAAMC,0BAA0B,GAAIC,gBAAqD,IAAK,IAAI,CAACnH,iBAAiB,CAACvC,OAAO,CAAC0J,gBAAgB,EAAEJ,uBAAuB,CAAC,EACnKxyC,GAAG,CAAC6yC,eAAe,IAAI,IAAI,CAACv/C,iBAAiB,CAAConC,UAAU,CAAC8S,YAAY,EAAEgF,uBAAuB,CAACK,eAAe,CAAC,CAAC,GAChH,IAAI,CAACvB,qCAAqC,CAACuB,eAAe,CAAC,CAAC,EAC5D3E,IAAI,CAAC,EAAE,CAAC;IAEZ,MAAM4E,sCAAsC,GAAIC,4BAA6E,IAAK,IAAI,CAACtH,iBAAiB,CAACvC,OAAO,CAAC6J,4BAA4B,EAAEN,mCAAmC,CAAC,EAC/NzyC,GAAG,CAACgzC,2BAA2B,IAAI,IAAI,CAAC1/C,iBAAiB,CAAConC,UAAU,CAAC8S,YAAY,EAAEiF,mCAAmC,CAACO,2BAA2B,CAAC,CAAC,GACpJ,IAAI,CAACC,iDAAiD,CAACD,2BAA2B,CAAC,CAAC,EACpF9E,IAAI,CAAC,EAAE,CAAC;IAEZ,MAAM5qD,WAAW,GAAG,IAAI,CAACgQ,iBAAiB,CAACm3C,aAAa,CAAC9/C,QAAQ,CAAC;IAElE,IAAIrH,WAAW,EAAEwpD,YAAY,EAAE;MAC7B,OAAO,IAAI,CAACx5C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAEtpD,WAAW,CAACwpD,YAAY,CAAC;;IAGlF,IAAIxpD,WAAW,EAAEypD,OAAO,EAAE9jC,MAAM,EAAE;MAChC,MAAMlO,OAAO,GAAG,6BAA6B,IAAIpQ,QAAQ,CAACqiD,cAAc,GAAG,4BAA4B1pD,WAAW,CAACypD,OAAO,CAAC9jC,MAAM,WAAW,GAAG,EAAE,CAAC;MAClJ,OAAO,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE7xC,OAAO,CAAC,GAAG,IAAI,CAACm4C,0CAA0C,CAAC5vD,WAAW,CAACypD,OAAO,CAAC;;IAGxI,MAAMsD,kBAAkB,GAAG/sD,WAAW,EAAEgtD,cAAc,GAClD,IAAI,CAACh9C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAEtpD,WAAW,CAACgtD,cAAc,CAAC,GAC3E,EAAE;IACN,MAAM6C,sBAAsB,GAAG7vD,WAAW,EAAE8vD,kBAAkB,GACzD,IAAI,CAAC9/C,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,qBAAqB,CAAC,GAAG,IAAI,CAACqE,wCAAwC,CAAC5tD,WAAW,CAAC8vD,kBAAkB,CAAC,GACpJ,EAAE;IACN,MAAMC,oBAAoB,GAAG/vD,WAAW,EAAEsvD,gBAAgB,EAAE3pC,MAAM,GAC7D,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,mBAAmB,CAAC,GAAG8F,0BAA0B,CAACrvD,WAAW,CAACsvD,gBAAgB,CAAC,GAC7H,EAAE;IACN,MAAMU,gCAAgC,GAAGhwD,WAAW,EAAEyvD,4BAA4B,EAAE9pC,MAAM,GACrF,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,gCAAgC,CAAC,GAAGiG,sCAAsC,CAACxvD,WAAW,CAACyvD,4BAA4B,CAAC,GAClK,EAAE;IAEN,OAAO1C,kBAAkB,GAAG8C,sBAAsB,GAAGE,oBAAoB,GAAGC,gCAAgC;EAC9G;EAEQ/G,sBAAsBA,CAAC5hD,QAAoC;IAEjE,MAAMiiD,YAAY,GAAG,GAAG;IACxB,MAAMC,SAAS,GAAG,IAAI;IAEtB,MAAM0G,qBAAqB,GAAIpG,WAAiC,IAAK,IAAI,CAACqG,qBAAqB,CAAC,CAACrG,WAAW,CAAC,CAAC;IAE9G,MAAMW,oBAAoB,GAAIC,UAAkC,IAAK,IAAI,CAACyF,qBAAqB,CAACzF,UAAU,CAAC;IAE3G,MAAM1rD,IAAI,GAAG,IAAI,CAACiR,iBAAiB,CAACm3C,aAAa,CAAC9/C,QAAQ,CAAC;IAE3D,IAAItI,IAAI,EAAEyqD,YAAY,EAAE;MACtB,OAAO,IAAI,CAACx5C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAEvqD,IAAI,CAACyqD,YAAY,CAAC;;IAG3E,IAAIzqD,IAAI,EAAE0qD,OAAO,EAAE9jC,MAAM,EAAE;MACzB,MAAMlO,OAAO,GAAG,sBAAsB,IAAIpQ,QAAQ,CAACqiD,cAAc,GAAG,4BAA4B3qD,IAAI,CAAC0qD,OAAO,CAAC9jC,MAAM,WAAW,GAAG,EAAE,CAAC;MACpI,OAAO,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE7xC,OAAO,CAAC,GAAG,IAAI,CAAC04C,+BAA+B,CAACpxD,IAAI,CAAC0qD,OAAO,CAAC;;IAGtH,MAAMsD,kBAAkB,GAAGhuD,IAAI,EAAEiuD,cAAc,GAC3C,IAAI,CAACh9C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAEvqD,IAAI,CAACiuD,cAAc,CAAC,GACpE,EAAE;IACN,MAAMpD,eAAe,GAAG7qD,IAAI,EAAE8qD,WAAW,GACpC,IAAI,CAAC75C,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,cAAc,CAAC,GAAG0G,qBAAqB,CAAClxD,IAAI,CAAC8qD,WAAW,CAAC,GACvG,EAAE;IACN,MAAMqB,cAAc,GAAGnsD,IAAI,EAAE0rD,UAAU,EAAE9kC,MAAM,GAC1C,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,mBAAmB,CAAC,GAAGiB,oBAAoB,CAACzrD,IAAI,CAAC0rD,UAAU,CAAC,GAC1G,EAAE;IAEN,OAAOsC,kBAAkB,GAAGnD,eAAe,GAAGsB,cAAc;EAC9D;EAEQhC,uBAAuBA,CAAC7hD,QAAqC;IAEnE,MAAMiiD,YAAY,GAAG,GAAG;IACxB,MAAMC,SAAS,GAAG,IAAI;IAEtB,MAAM6G,sBAAsB,GAAI7E,YAAkC,IAAK,IAAI,CAAC2E,qBAAqB,CAAC,CAAC3E,YAAY,CAAC,CAAC;IAEjH,MAAMH,KAAK,GAAG,IAAI,CAACp7C,iBAAiB,CAACm3C,aAAa,CAAC9/C,QAAQ,CAAC;IAE5D,IAAI+jD,KAAK,EAAE5B,YAAY,EAAE;MACvB,OAAO,IAAI,CAACx5C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE8B,KAAK,CAAC5B,YAAY,CAAC;;IAG5E,MAAM8B,gBAAgB,GAAGF,KAAK,EAAEG,YAAY,GACvC,IAAI,CAACv7C,iBAAiB,CAAConC,UAAU,CAACmS,SAAS,EAAE,eAAe,CAAC,GAAG6G,sBAAsB,CAAChF,KAAK,CAACG,YAAY,CAAC,GAC3G,EAAE;IAEN,IAAIH,KAAK,EAAE3B,OAAO,EAAE9jC,MAAM,EAAE;MAC1B,MAAMlO,OAAO,GAAG,uBAAuB,IAAIpQ,QAAQ,CAACqiD,cAAc,GAAG,4BAA4B0B,KAAK,CAAC3B,OAAO,CAAC9jC,MAAM,WAAW,GAAG,EAAE,CAAC;MACtI,OAAO,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE7xC,OAAO,CAAC,GAAG,IAAI,CAAC44C,gCAAgC,CAACjF,KAAK,CAAC3B,OAAO,CAAC;;IAGxH,OAAO6B,gBAAgB;EACzB;EAEA;EAEQxB,mCAAmCA,CAACD,WAAqC;IAE/E,MAAMD,eAAe,GAAG,IAAI,CAAC55C,iBAAiB,CAACqnC,YAAY,CAAC,CAC1D,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,MAAM,CAAC,EACvE,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,WAAW,CAAC,EAC5E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,SAAS,CAAC,EAC1E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,0BAA0B,CAAC,EAC3F,IAAI,CAAC75C,iBAAiB,CAACugD,WAAW,CAAC,YAAY,EAAE,IAAI,CAACvgD,iBAAiB,CAACwgD,iBAAiB,CAAC3G,WAAW,CAAC4G,UAAU,CAAC,CAAC,EAClH,IAAI,CAACzgD,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,aAAa,CAAC,EAC9E,IAAI,CAAC75C,iBAAiB,CAACugD,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAACvgD,iBAAiB,CAACwgD,iBAAiB,CAAC3G,WAAW,CAAC6G,cAAc,CAAC,CAAC,EAC1H,IAAI,CAAC1gD,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,aAAa,CAAC,EAC9E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,gBAAgB,CAAC,EACjF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,aAAa,CAAC,EAC9E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,YAAY,CAAC,EAC7E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,UAAU,CAAC,EAC3E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,mBAAmB,CAAC,EACpF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,UAAU,CAAC,EAC3E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,IAAI,CAAC,CACtE,CAAC;IAEF,OAAOD,eAAe;EACxB;EAEQqB,4BAA4BA,CAACpB,WAA8B;IAEjE,MAAM8G,oBAAoB,GAAIj4B,IAA+B,IAAKA,IAAI,EAAEk4B,MAAM;IAE9E,MAAMC,wBAAwB,GAAIC,cAA2C,IAAK,IAAI,CAAC9gD,iBAAiB,CAACqnC,YAAY,CACnH,IAAI,CAAC8Q,iBAAiB,CAACvC,OAAO,CAACkL,cAAc,EAAEH,oBAAoB,CAAC,EAChEj0C,GAAG,CAACq0C,YAAY,IAAI,IAAI,CAAC/gD,iBAAiB,CAACugD,WAAW,CAACI,oBAAoB,CAACI,YAAY,CAAC,EAAE,IAAI,CAACC,6BAA6B,CAACD,YAAY,CAAC,CAAC,CAAC,CAAC;IAEpJ,MAAMnH,eAAe,GAAG,IAAI,CAAC55C,iBAAiB,CAACqnC,YAAY,CAAC,CAC1D,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,gBAAgB,CAAC,EACjF,IAAI,CAAC75C,iBAAiB,CAACugD,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAACvgD,iBAAiB,CAACwgD,iBAAiB,CAAC3G,WAAW,CAAC6G,cAAc,CAAC,CAAC,EAC1H,IAAI,CAAC1gD,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,aAAa,CAAC,EAC9E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,iBAAiB,CAAC,EAClF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,cAAc,CAAC,EAC/E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,iBAAiB,CAAC,EAClF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,YAAY,CAAC,EAC7E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,aAAa,CAAC,EAC9E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,mBAAmB,CAAC,EACpF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,iCAAiC,CAAC,EAClG,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,WAAW,CAAC,EAC5E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,IAAI,CAAC,EACrE,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,UAAU,CAAC,EAC3E,IAAI,CAAC75C,iBAAiB,CAACugD,WAAW,CAAC,YAAY,EAAEM,wBAAwB,CAAChH,WAAW,CAACoH,UAAU,CAAC,CAAC,EAClG,IAAI,CAACjhD,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,4BAA4B,CAAC,EAC7F,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,MAAM,CAAC,EACvE,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,aAAa,CAAC,EAC9E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,6BAA6B,CAAC,EAC9F,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,sBAAsB,CAAC,EACvF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,uBAAuB,CAAC,EACxF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,4BAA4B,CAAC,EAC7F,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,0BAA0B,CAAC,EAC3F,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,8BAA8B,CAAC,EAC/F,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,uBAAuB,CAAC,EACxF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,6BAA6B,CAAC,EAC9F,IAAI,CAAC75C,iBAAiB,CAACugD,WAAW,CAAC,YAAY,EAAE,IAAI,CAACvgD,iBAAiB,CAACwgD,iBAAiB,CAAC3G,WAAW,CAAC4G,UAAU,CAAC,CAAC,EAClH,IAAI,CAACzgD,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,oBAAoB,CAAC,EACrF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,SAAS,CAAC,EAC1E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,mBAAmB,CAAC,EACpF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,UAAU,CAAC,CAC5E,CAAC;IAEF,OAAOD,eAAe;EACxB;EAEQoH,6BAA6BA,CAACD,YAAuC;IAE3E,MAAMG,gBAAgB,GAAG,IAAI,CAAClhD,iBAAiB,CAACqnC,YAAY,CAAC,CAC3D,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAACS,YAAY,EAAE,QAAQ,CAAC,EAC1E,IAAI,CAAC/gD,iBAAiB,CAACsgD,2BAA2B,CAACS,YAAY,EAAE,kBAAkB,CAAC,EACpF,IAAI,CAAC/gD,iBAAiB,CAACsgD,2BAA2B,CAACS,YAAY,EAAE,YAAY,CAAC,CAC/E,CAAC;IAEF,OAAOG,gBAAgB;EACzB;EAEQlG,sCAAsCA,CAACD,qBAAyD;IAEtG,MAAMoG,yBAAyB,GAAG,IAAI,CAACnhD,iBAAiB,CAACqnC,YAAY,CAAC,CACpE,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAACvF,qBAAqB,EAAE,WAAW,CAAC,EACtF,IAAI,CAAC/6C,iBAAiB,CAACsgD,2BAA2B,CAACvF,qBAAqB,EAAE,iBAAiB,CAAC,EAC5F,IAAI,CAAC/6C,iBAAiB,CAACsgD,2BAA2B,CAACvF,qBAAqB,EAAE,IAAI,CAAC,EAC/E,IAAI,CAAC/6C,iBAAiB,CAACsgD,2BAA2B,CAACvF,qBAAqB,EAAE,qBAAqB,CAAC,EAChG,IAAI,CAAC/6C,iBAAiB,CAACsgD,2BAA2B,CAACvF,qBAAqB,EAAE,YAAY,CAAC,CACxF,CAAC;IAEF,OAAOoG,yBAAyB;EAClC;EAEQxG,6BAA6BA,CAACY,YAAgC;IAEpE,MAAMD,gBAAgB,GAAG,IAAI,CAACt7C,iBAAiB,CAACqnC,YAAY,CAAC,CAC3D,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAAC/E,YAAY,EAAE,iBAAiB,CAAC,EACnF,IAAI,CAACv7C,iBAAiB,CAACsgD,2BAA2B,CAAC/E,YAAY,EAAE,aAAa,CAAC,EAC/E,IAAI,CAACv7C,iBAAiB,CAACsgD,2BAA2B,CAAC/E,YAAY,EAAE,aAAa,CAAC,EAC/E,IAAI,CAACv7C,iBAAiB,CAACugD,WAAW,CAAC,YAAY,EAAE,IAAI,CAACvgD,iBAAiB,CAACwgD,iBAAiB,CAACjF,YAAY,EAAE6F,UAAU,CAAC,CAAC,EACpH,IAAI,CAACphD,iBAAiB,CAACsgD,2BAA2B,CAAC/E,YAAY,EAAE,IAAI,CAAC,EACtE,IAAI,CAACv7C,iBAAiB,CAACsgD,2BAA2B,CAAC/E,YAAY,EAAE,gBAAgB,CAAC,EAClF,IAAI,CAACv7C,iBAAiB,CAACsgD,2BAA2B,CAAC/E,YAAY,EAAE,+BAA+B,CAAC,CAClG,CAAC;IAEF,OAAOD,gBAAgB;EACzB;EAEQK,8BAA8BA,CAACD,aAAkC;IAEvE,MAAMD,iBAAiB,GAAG,IAAI,CAACz7C,iBAAiB,CAACqnC,YAAY,CAAC,CAC5D,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAAC5E,aAAa,EAAE,oBAAoB,CAAC,EACvF,IAAI,CAAC17C,iBAAiB,CAACsgD,2BAA2B,CAAC5E,aAAa,EAAE,oBAAoB,CAAC,EACvF,IAAI,CAAC17C,iBAAiB,CAACsgD,2BAA2B,CAAC5E,aAAa,EAAE,IAAI,CAAC,EACvE,IAAI,CAAC17C,iBAAiB,CAACsgD,2BAA2B,CAAC5E,aAAa,EAAE,gBAAgB,CAAC,EACnF,IAAI,CAAC17C,iBAAiB,CAACsgD,2BAA2B,CAAC5E,aAAa,EAAE,WAAW,CAAC,EAC9E,IAAI,CAAC17C,iBAAiB,CAACsgD,2BAA2B,CAAC5E,aAAa,EAAE,WAAW,CAAC,EAC9E,IAAI,CAAC17C,iBAAiB,CAACsgD,2BAA2B,CAAC5E,aAAa,EAAE,QAAQ,CAAC,EAC3E,IAAI,CAAC17C,iBAAiB,CAACsgD,2BAA2B,CAAC5E,aAAa,EAAE,YAAY,CAAC,EAC/E,IAAI,CAAC17C,iBAAiB,CAACsgD,2BAA2B,CAAC5E,aAAa,EAAE,kCAAkC,CAAC,EACrG,IAAI,CAAC17C,iBAAiB,CAACsgD,2BAA2B,CAAC5E,aAAa,EAAE,8BAA8B,CAAC,EACjG,IAAI,CAAC17C,iBAAiB,CAACugD,WAAW,CAAC,mBAAmB,EAAE,IAAI,CAACvgD,iBAAiB,CAACwgD,iBAAiB,CAAC9E,aAAa,EAAE2F,iBAAiB,CAAC,CAAC,CACpI,CAAC;IAEF,OAAO5F,iBAAiB;EAC1B;EAEQI,wCAAwCA,CAAChC,WAA0C;IAEzF,MAAMD,eAAe,GAAG,IAAI,CAAC55C,iBAAiB,CAACqnC,YAAY,CAAC,CAC1D,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,MAAM,CAAC,EACvE,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,sBAAsB,CAAC,EACvF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,WAAW,CAAC,EAC5E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,IAAI,CAAC,EACrE,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,IAAI,CAAC,EACrE,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,kBAAkB,CAAC,EACnF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,kBAAkB,CAAC,EACnF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,YAAY,CAAC,EAC7E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,iBAAiB,CAAC,EAClF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,QAAQ,CAAC,EACzE,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,aAAa,CAAC,EAC9E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,eAAe,CAAC,EAChF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,KAAK,CAAC,CACvE,CAAC;IAEF,OAAOD,eAAe;EACxB;EAEQqD,iCAAiCA,CAACpD,WAAmC;IAE3E,MAAMD,eAAe,GAAG,IAAI,CAAC55C,iBAAiB,CAACqnC,YAAY,CAAC,CAC1D,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,IAAI,CAAC,EACrE,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,sBAAsB,CAAC,EACvF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,eAAe,CAAC,EAChF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,kBAAkB,CAAC,EACnF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,aAAa,CAAC,EAC9E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,mBAAmB,CAAC,EACpF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,WAAW,CAAC,EAC5E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,MAAM,CAAC,EACvE,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,YAAY,CAAC,EAC7E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,QAAQ,CAAC,EACzE,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,aAAa,CAAC,EAC9E,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,sBAAsB,CAAC,EACvF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,eAAe,CAAC,EAChF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,IAAI,CAAC,EACrE,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,iBAAiB,CAAC,EAClF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,KAAK,CAAC,EACtE,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,kBAAkB,CAAC,EACnF,IAAI,CAAC75C,iBAAiB,CAACsgD,2BAA2B,CAACzG,WAAW,EAAE,cAAc,CAAC,CAChF,CAAC;IAEF,OAAOD,eAAe;EACxB;EAEQ6C,kCAAkCA,CAACD,YAA4C;IAErF,MAAM8E,gBAAgB,GAAG,IAAI,CAACthD,iBAAiB,CAACqnC,YAAY,CAAC,CAC3D,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAAC9D,YAAY,EAAE,mBAAmB,CAAC,EACrF,IAAI,CAACx8C,iBAAiB,CAACsgD,2BAA2B,CAAC9D,YAAY,EAAE,aAAa,CAAC,EAC/E,IAAI,CAACx8C,iBAAiB,CAACsgD,2BAA2B,CAAC9D,YAAY,EAAE,eAAe,CAAC,EACjF,IAAI,CAACx8C,iBAAiB,CAACsgD,2BAA2B,CAAC9D,YAAY,EAAE,cAAc,CAAC,EAChF,IAAI,CAACx8C,iBAAiB,CAACsgD,2BAA2B,CAAC9D,YAAY,EAAE,cAAc,CAAC,EAChF,IAAI,CAACx8C,iBAAiB,CAACsgD,2BAA2B,CAAC9D,YAAY,EAAE,cAAc,CAAC,EAChF,IAAI,CAACx8C,iBAAiB,CAACsgD,2BAA2B,CAAC9D,YAAY,EAAE,cAAc,CAAC,EAChF,IAAI,CAACx8C,iBAAiB,CAACsgD,2BAA2B,CAAC9D,YAAY,EAAE,mBAAmB,CAAC,EACrF,IAAI,CAACx8C,iBAAiB,CAACsgD,2BAA2B,CAAC9D,YAAY,EAAE,aAAa,CAAC,EAC/E,IAAI,CAACx8C,iBAAiB,CAACsgD,2BAA2B,CAAC9D,YAAY,EAAE,SAAS,CAAC,CAC5E,CAAC;IAEF,OAAO8E,gBAAgB;EACzB;EAEQzE,0CAA0CA,CAACD,oBAA4D;IAE7G,MAAM2E,wBAAwB,GAAG,IAAI,CAACvhD,iBAAiB,CAACqnC,YAAY,CAAC,CACnE,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAAC1D,oBAAoB,EAAE,aAAa,CAAC,EACvF,IAAI,CAAC58C,iBAAiB,CAACsgD,2BAA2B,CAAC1D,oBAAoB,EAAE,mBAAmB,CAAC,EAC7F,IAAI,CAAC58C,iBAAiB,CAACsgD,2BAA2B,CAAC1D,oBAAoB,EAAE,cAAc,CAAC,EACxF,IAAI,CAAC58C,iBAAiB,CAACsgD,2BAA2B,CAAC1D,oBAAoB,EAAE,gBAAgB,CAAC,EAC1F,IAAI,CAAC58C,iBAAiB,CAACsgD,2BAA2B,CAAC1D,oBAAoB,EAAE,mBAAmB,CAAC,EAC7F,IAAI,CAAC58C,iBAAiB,CAACsgD,2BAA2B,CAAC1D,oBAAoB,EAAE,gBAAgB,CAAC,EAC1F,IAAI,CAAC58C,iBAAiB,CAACsgD,2BAA2B,CAAC1D,oBAAoB,EAAE,MAAM,CAAC,EAChF,IAAI,CAAC58C,iBAAiB,CAACsgD,2BAA2B,CAAC1D,oBAAoB,EAAE,aAAa,CAAC,EACvF,IAAI,CAAC58C,iBAAiB,CAACsgD,2BAA2B,CAAC1D,oBAAoB,EAAE,iBAAiB,CAAC,CAC5F,CAAC;IAEF,OAAO2E,wBAAwB;EACjC;EAEQzE,kCAAkCA,CAACvB,YAAqC;IAE9E,MAAMD,gBAAgB,GAAG,IAAI,CAACt7C,iBAAiB,CAACqnC,YAAY,CAAC,CAC3D,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAAC/E,YAAY,EAAE,IAAI,CAAC,EACtE,IAAI,CAACv7C,iBAAiB,CAACsgD,2BAA2B,CAAC/E,YAAY,EAAE,aAAa,CAAC,EAC/E,IAAI,CAACv7C,iBAAiB,CAACsgD,2BAA2B,CAAC/E,YAAY,EAAE,mBAAmB,CAAC,EACrF,IAAI,CAACv7C,iBAAiB,CAACsgD,2BAA2B,CAAC/E,YAAY,EAAE,aAAa,CAAC,CAChF,CAAC;IAEF,OAAOD,gBAAgB;EACzB;EAEQuD,yCAAyCA,CAACpR,mBAAmD;IAEnG,MAAMsR,uBAAuB,GAAG,IAAI,CAAC/+C,iBAAiB,CAACqnC,YAAY,CAAC,CAClE,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,GAAG,CAAC,EAC5E,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,MAAM,CAAC,EAC/E,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,iBAAiB,CAAC,EAC1F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,iBAAiB,CAAC,EAC1F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,iBAAiB,CAAC,EAC1F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,iBAAiB,CAAC,EAC1F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,+BAA+B,CAAC,EACxG,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,oBAAoB,CAAC,EAC7F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,kBAAkB,CAAC,EAC3F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,mBAAmB,CAAC,EAC5F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,sBAAsB,CAAC,EAC/F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,mBAAmB,CAAC,EAC5F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,uBAAuB,CAAC,EAChG,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,qBAAqB,CAAC,EAC9F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,uBAAuB,CAAC,EAChG,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,gCAAgC,CAAC,EACzG,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,mBAAmB,CAAC,EAC5F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,cAAc,CAAC,EACvF,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,oBAAoB,CAAC,EAC7F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,yBAAyB,CAAC,EAClG,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,uBAAuB,CAAC,EAChG,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,uBAAuB,CAAC,EAChG,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,uBAAuB,CAAC,EAChG,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,uBAAuB,CAAC,EAChG,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,eAAe,CAAC,EACxF,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,kBAAkB,CAAC,EAC3F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,qBAAqB,CAAC,EAC9F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,gBAAgB,CAAC,EACzF,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,kBAAkB,CAAC,EAC3F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,gBAAgB,CAAC,EACzF,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,qBAAqB,CAAC,EAC9F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,eAAe,CAAC,EACxF,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,kBAAkB,CAAC,EAC3F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,mBAAmB,CAAC,EAC5F,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,0BAA0B,CAAC,EACnG,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,MAAM,CAAC,EAC/E,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,GAAG,CAAC,EAC5E,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,aAAa,CAAC,EACtF,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,YAAY,CAAC,EACrF,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,IAAI,CAAC,EAC7E,IAAI,CAACztC,iBAAiB,CAACsgD,2BAA2B,CAAC7S,mBAAmB,EAAE,iBAAiB,CAAC,CAC3F,CAAC;IAEF,OAAOsR,uBAAuB;EAChC;EAEQnB,wCAAwCA,CAACkC,kBAAiD;IAEhG,MAAMD,sBAAsB,GAAG,IAAI,CAAC7/C,iBAAiB,CAACqnC,YAAY,CAAC,CACjE,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,aAAa,CAAC,EACrF,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,qBAAqB,CAAC,EAC7F,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,8BAA8B,CAAC,EACtG,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,gBAAgB,CAAC,EACxF,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,sBAAsB,CAAC,EAC9F,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,oBAAoB,CAAC,EAC5F,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,eAAe,CAAC,EACvF,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,qBAAqB,CAAC,EAC7F,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,2BAA2B,CAAC,EACnG,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,0BAA0B,CAAC,EAClG,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,oBAAoB,CAAC,EAC5F,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,iCAAiC,CAAC,EACzG,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,oBAAoB,CAAC,EAC5F,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,mBAAmB,CAAC,EAC3F,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,uBAAuB,CAAC,EAC/F,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,cAAc,CAAC,EACtF,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,cAAc,CAAC,EACtF,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,mBAAmB,CAAC,EAC3F,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,eAAe,CAAC,EACvF,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,cAAc,CAAC,EACtF,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,mBAAmB,CAAC,EAC3F,IAAI,CAAC9/C,iBAAiB,CAACsgD,2BAA2B,CAACR,kBAAkB,EAAE,aAAa,CAAC,CACtF,CAAC;IAEF,OAAOD,sBAAsB;EAC/B;EAEQ7B,qCAAqCA,CAACuB,eAAkD;IAE9F,MAAMiC,mBAAmB,GAAG,IAAI,CAACxhD,iBAAiB,CAACqnC,YAAY,CAAC,CAC9D,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAACf,eAAe,EAAE,aAAa,CAAC,EAClF,IAAI,CAACv/C,iBAAiB,CAACsgD,2BAA2B,CAACf,eAAe,EAAE,eAAe,CAAC,EACpF,IAAI,CAACv/C,iBAAiB,CAACsgD,2BAA2B,CAACf,eAAe,EAAE,wBAAwB,CAAC,EAC7F,IAAI,CAACv/C,iBAAiB,CAACsgD,2BAA2B,CAACf,eAAe,EAAE,mBAAmB,CAAC,EACxF,IAAI,CAACv/C,iBAAiB,CAACsgD,2BAA2B,CAACf,eAAe,EAAE,mBAAmB,CAAC,EACxF,IAAI,CAACv/C,iBAAiB,CAACsgD,2BAA2B,CAACf,eAAe,EAAE,aAAa,CAAC,CACnF,CAAC;IAEF,OAAOiC,mBAAmB;EAC5B;EAEQ7B,iDAAiDA,CAACD,2BAA0E;IAElI,MAAM+B,+BAA+B,GAAG,IAAI,CAACzhD,iBAAiB,CAACqnC,YAAY,CAAC,CAC1E,IAAI,CAACrnC,iBAAiB,CAACsgD,2BAA2B,CAACZ,2BAA2B,EAAE,aAAa,CAAC,EAC9F,IAAI,CAAC1/C,iBAAiB,CAACsgD,2BAA2B,CAACZ,2BAA2B,EAAE,mBAAmB,CAAC,EACpG,IAAI,CAAC1/C,iBAAiB,CAACsgD,2BAA2B,CAACZ,2BAA2B,EAAE,oBAAoB,CAAC,EACrG,IAAI,CAAC1/C,iBAAiB,CAACsgD,2BAA2B,CAACZ,2BAA2B,EAAE,0BAA0B,CAAC,EAC3G,IAAI,CAAC1/C,iBAAiB,CAACsgD,2BAA2B,CAACZ,2BAA2B,EAAE,uBAAuB,CAAC,EACxG,IAAI,CAAC1/C,iBAAiB,CAACsgD,2BAA2B,CAACZ,2BAA2B,EAAE,sBAAsB,CAAC,EACvG,IAAI,CAAC1/C,iBAAiB,CAACsgD,2BAA2B,CAACZ,2BAA2B,EAAE,qBAAqB,CAAC,EACtG,IAAI,CAAC1/C,iBAAiB,CAACsgD,2BAA2B,CAACZ,2BAA2B,EAAE,wBAAwB,CAAC,EACzG,IAAI,CAAC1/C,iBAAiB,CAACsgD,2BAA2B,CAACZ,2BAA2B,EAAE,mBAAmB,CAAC,EACpG,IAAI,CAAC1/C,iBAAiB,CAACsgD,2BAA2B,CAACZ,2BAA2B,EAAE,aAAa,CAAC,CAC/F,CAAC;IAEF,OAAO+B,+BAA+B;EACxC;EAEQvB,qBAAqBA,CAACwB,WAAmC;IAE/D,MAAMC,eAAe,GAAG,KAAK;IAE7B,MAAMC,cAAc,GAAG,IAAI,CAAC5hD,iBAAiB,CAAConC,UAAU,CAACua,eAAe,EAAE9jC,IAAI,CAACC,SAAS,CAAC4jC,WAAW,CAACh1C,GAAG,CAACm1C,UAAU,IAAIhkC,IAAI,CAACwG,KAAK,CAACw9B,UAAU,CAACC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEpK,OAAOF,cAAc;EACvB;EAEA;EAEQ5F,0BAA0BA,CAACD,gBAA8D;IAE/F,MAAMzC,YAAY,GAAG,GAAG;IAExB,IAAIyC,gBAAgB,CAACvC,YAAY,EAAE;MACjC,OAAO,IAAI,CAACx5C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAEyC,gBAAgB,CAACvC,YAAY,CAAC;;IAGvF,IAAI,CAACuC,gBAAgB,CAACnlD,KAAK,EAAE+e,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;MAC9C,OAAO,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE,kBAAkB,CAAC;;IAG5E,MAAMwC,oBAAoB,GAAG,IAAI,CAACnC,8BAA8B,CAACoC,gBAAgB,CAACnlD,KAAK,CAAC;IAExF,OAAOklD,oBAAoB;EAC7B;EAEQnC,8BAA8BA,CAACoI,aAAyC;IAE9E,MAAMC,iBAAiB,GAAG,IAAI,CAAChiD,iBAAiB,CAAC43C,eAAe,CAC9D,CAAC,0BAA0B,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,0BAA0B,EAAE,UAAU,CAAC,EACzH,IAAI,CAACO,iBAAiB,CAACvC,OAAO,CAACmM,aAAa,EAAEE,CAAC,IAAI,CAACA,CAAC,CAACC,IAAI,IAAID,CAAC,CAACE,iBAAiB,IAAI,EAAE,EAAEviC,WAAW,EAAE,CAAC,CACpGlT,GAAG,CAACu1C,CAAC,IAAI,CAACA,CAAC,CAACC,IAAI,IAAID,CAAC,CAACE,iBAAiB,EAAEF,CAAC,CAAC7H,WAAW,EAAE6H,CAAC,CAACzN,SAAS,EAAEyN,CAAC,CAACG,OAAO,EAAEH,CAAC,CAACxB,UAAU,EAAE7F,IAAI,CAAC,IAAI,CAAC,EAAEqH,CAAC,CAACI,wBAAwB,EAAEJ,CAAC,CAACK,QAAQ,CAAC,CAAC,CAAC;IAExJ,OAAON,iBAAiB;EAC1B;EAEQ3G,+BAA+BA,CAACkH,cAA2C;IAEjF,MAAMC,kBAAkB,GAAG,IAAI,CAACxiD,iBAAiB,CAAC43C,eAAe,CAC/D,CAAC,aAAa,EAAE,aAAa,CAAC,EAC9B,IAAI,CAACO,iBAAiB,CAACvC,OAAO,CAAC2M,cAAc,EAAEE,CAAC,IAAI,CAACA,CAAC,CAACrI,WAAW,IAAI,EAAE,EAAEx6B,WAAW,EAAE,CAAC,CACrFlT,GAAG,CAAC+1C,CAAC,IAAI,CAACA,CAAC,CAACrI,WAAW,EAAEqI,CAAC,CAACC,WAAW,CAAC,CAAC,CAAC;IAE9C,OAAOF,kBAAkB;EAC3B;EAEQhH,gCAAgCA,CAACmH,eAA6C;IAEpF,MAAMC,mBAAmB,GAAG,IAAI,CAAC5iD,iBAAiB,CAAC43C,eAAe,CAChE,CAAC,IAAI,CAAC,EACN,IAAI,CAACO,iBAAiB,CAACvC,OAAO,CAAC+M,eAAe,EAAEE,CAAC,IAAI,CAACA,CAAC,CAAChiD,EAAE,IAAI,EAAE,EAAE+e,WAAW,EAAE,CAAC,CAC7ElT,GAAG,CAACm2C,CAAC,IAAI,CAACA,CAAC,CAAChiD,EAAE,CAAC,CAAC,CAAC;IAEtB,OAAO+hD,mBAAmB;EAC5B;EAEQ3I,uBAAuBA,CAACD,aAAmE;IAEjG,MAAMV,YAAY,GAAG,GAAG;IAExB,IAAIU,aAAa,CAACR,YAAY,EAAE;MAC9B,OAAO,IAAI,CAACx5C,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAEU,aAAa,CAACR,YAAY,CAAC;;IAGpF,IAAI,CAACQ,aAAa,CAACpjD,KAAK,EAAE+e,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;MAC3C,OAAO,IAAI,CAAC3V,iBAAiB,CAAConC,UAAU,CAACkS,YAAY,EAAE,kBAAkB,CAAC;;IAG5E,MAAMS,iBAAiB,GAAG,IAAI,CAAC6B,mCAAmC,CAAC5B,aAAa,CAACpjD,KAAK,CAAC;IAEvF,OAAOmjD,iBAAiB;EAC1B;EAEQ6B,mCAAmCA,CAACmG,aAA8C;IAExF,MAAMC,iBAAiB,GAAG,IAAI,CAAChiD,iBAAiB,CAAC43C,eAAe,CAC9D,CAAC,MAAM,EAAE,sBAAsB,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,EAC7E,IAAI,CAACO,iBAAiB,CAACvC,OAAO,CAACmM,aAAa,EAAEE,CAAC,IAAI,CAACA,CAAC,CAACC,IAAI,IAAI,EAAE,EAAEtiC,WAAW,EAAE,CAAC,CAC7ElT,GAAG,CAACu1C,CAAC,IAAI,CAACA,CAAC,CAACC,IAAI,EAAED,CAAC,CAACa,oBAAoB,EAAEb,CAAC,CAACzN,SAAS,EAAEyN,CAAC,CAACc,EAAE,EAAEd,CAAC,CAAChG,EAAE,EAAEgG,CAAC,CAACe,gBAAgB,CAAC,CAAC,CAAC;IAE7F,OAAOhB,iBAAiB;EAC1B;EAEQ/D,oCAAoCA,CAACsE,cAAgD;IAE3F,MAAMC,kBAAkB,GAAG,IAAI,CAACxiD,iBAAiB,CAAC43C,eAAe,CAC/D,CAAC,aAAa,EAAE,IAAI,CAAC,EACrB,IAAI,CAACO,iBAAiB,CAACvC,OAAO,CAAC2M,cAAc,EAAEE,CAAC,IAAI,CAACA,CAAC,CAACC,WAAW,IAAI,EAAE,EAAE9iC,WAAW,EAAE,CAAC,CACrFlT,GAAG,CAAC+1C,CAAC,IAAI,CAACA,CAAC,CAACC,WAAW,EAAED,CAAC,CAACxG,EAAE,CAAC,CAAC,CAAC;IAErC,OAAOuG,kBAAkB;EAC3B;EAEQ1D,2CAA2CA,CAACmE,qBAA8D;IAEhH,MAAMC,yBAAyB,GAAG,IAAI,CAACljD,iBAAiB,CAAC43C,eAAe,CACtE,CAAC,GAAG,EAAE,cAAc,EAAE,mBAAmB,CAAC,EAC1C,IAAI,CAACO,iBAAiB,CAACvC,OAAO,CAACqN,qBAAqB,EAAEE,CAAC,IAAI,CAACA,CAAC,CAACA,CAAC,IAAI,EAAE,EAAEvjC,WAAW,EAAE,CAAC,CAClFlT,GAAG,CAACy2C,CAAC,IAAI,CAACA,CAAC,CAACA,CAAC,EAAEA,CAAC,CAAC7E,YAAY,EAAE6E,CAAC,CAACC,iBAAiB,CAAC,CAAC,CAAC;IAE1D,OAAOF,yBAAyB;EAClC;EAEQtD,0CAA0CA,CAACyD,oBAA4D;IAE7G,MAAMC,wBAAwB,GAAG,IAAI,CAACtjD,iBAAiB,CAAC43C,eAAe,CACrE,CAAC,oBAAoB,EAAE,cAAc,EAAE,aAAa,CAAC,EACrD,IAAI,CAACO,iBAAiB,CAACvC,OAAO,CAACyN,oBAAoB,EAAEjS,CAAC,IAAI,CAACA,CAAC,CAACmS,kBAAkB,IAAI,EAAE,EAAE3jC,WAAW,EAAE,CAAC,CAClGlT,GAAG,CAAC0kC,CAAC,IAAI,CAACA,CAAC,CAACmS,kBAAkB,EAAEnS,CAAC,CAACiM,YAAY,EAAEjM,CAAC,CAACsR,WAAW,CAAC,CAAC,CAAC;IAErE,OAAOY,wBAAwB;EACjC;EAEQnD,+BAA+BA,CAAC4B,aAA0C;IAEhF,MAAMC,iBAAiB,GAAG,IAAI,CAAChiD,iBAAiB,CAAC43C,eAAe,CAC9D,CAAC,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,kBAAkB,CAAC,EAC5F,IAAI,CAACO,iBAAiB,CAACvC,OAAO,CAACmM,aAAa,EAAEE,CAAC,IAAI,CAACA,CAAC,CAACpnC,KAAK,IAAI,EAAE,EAAE+E,WAAW,EAAE,CAAC,CAC9ElT,GAAG,CAACu1C,CAAC,IAAI,CAACA,CAAC,CAACpnC,KAAK,EAAEonC,CAAC,CAACa,oBAAoB,EAAEb,CAAC,CAACzN,SAAS,EAAEyN,CAAC,CAACxN,UAAU,EAAEwN,CAAC,CAACuB,QAAQ,EAAEvB,CAAC,CAACe,gBAAgB,CAAC,CAAC,CAAC;IAE5G,OAAOhB,iBAAiB;EAC1B;EAEQ3B,gCAAgCA,CAACkC,cAA4C;IAEnF,MAAMC,kBAAkB,GAAG,IAAI,CAACxiD,iBAAiB,CAAC43C,eAAe,CAC/D,CAAC,aAAa,CAAC,EACf,IAAI,CAACO,iBAAiB,CAACvC,OAAO,CAAC2M,cAAc,EAAEE,CAAC,IAAI,CAACA,CAAC,CAACrI,WAAW,IAAI,EAAE,EAAEx6B,WAAW,EAAE,CAAC,CACrFlT,GAAG,CAAC+1C,CAAC,IAAI,CAACA,CAAC,CAACrI,WAAW,CAAC,CAAC,CAAC;IAE/B,OAAOoI,kBAAkB;EAC3B;EAAC,QAAAhyD,CAAA;qBA9gCU82C,sBAAsB,EAAA5vC,sDAAA,CAAA7G,oDAAA,GAAA6G,sDAAA,CAAAG,6DAAA,GAAAH,sDAAA,CAAAK,kEAAA,GAAAL,sDAAA,CAAAO,mEAAA;EAAA;EAAA,QAAAxH,EAAA;WAAtB62C,sBAAsB;IAAAmM,OAAA,EAAtBnM,sBAAsB,CAAAoM,IAAA;IAAAC,UAAA,EAFrB;EAAM;;;;;;;;;;;;;;;;;;;;;;AC1EmD;AAIW;;;AAO5E,MAAOjrC,YAAY;EAEvBvX,YACU2O,aAA4B,EAC5BD,cAA8B;IAD9B,KAAAC,aAAa,GAAbA,aAAa;IACb,KAAAD,cAAc,GAAdA,cAAc;EACxB;EAEOsH,YAAYA,CAAC0H,iBAA2D;IAC7E,OAAOqW,gDAAU,CAAEzU,KAAwB,IAAI;MAE7C,IAAI,CAAC5Q,cAAc,CAACuH,WAAW,EAAE;MAEjC;MACA,IAAIqJ,KAAK,EAAEA,KAAK,EAAEgzC,UAAU,KAAK,GAAG,IAAIhzC,KAAK,EAAEA,KAAK,EAAEizC,OAAO,EAAE;QAC7D,MAAMj8C,OAAO,GAAG,IAAI,CAACk8C,4BAA4B,CAAClzC,KAAK,EAAEA,KAAK,EAAEizC,OAAO,CAAC;QACxE,IAAI,CAAC5jD,aAAa,CAACyV,eAAe,CAAC9N,OAAO,EAAE,oBAAoB,EAAE,IAAI,CAAC;QACvE,OAAO0d,uCAAK;;MAGd;MACA;MACA;MACA,IAAI1U,KAAK,EAAEP,MAAM,KAAK,GAAG,IAAIO,KAAK,EAAEA,KAAK,EAAEP,MAAM,IAAI,OAAOO,KAAK,CAACA,KAAK,CAACP,MAAM,KAAK,QAAQ,EAAE;QAC3F,MAAM0zC,oBAAoB,GAAGn6B,0FAAuB,CAAChZ,KAAK,CAACA,KAAK,CAACP,MAAgB,CAA4B;QAC7G,IAAI0zC,oBAAoB,KAAK,IAAI,IAAIA,oBAAoB,KAAKC,SAAS,EAAE;UACvEpzC,KAAK,CAACA,KAAK,CAACP,MAAM,GAAG0zC,oBAAoB;UAEzC;UACA,MAAME,gBAAgB,GAAGj1C,iBAAiB,EAAE7N,GAAG,CAAC4iD,oBAAoB,CAAC;UACrE,IAAIE,gBAAgB,EAAE;YACpB,IAAI,CAAChkD,aAAa,CAAC+G,UAAU,CAACi9C,gBAAgB,CAACpuC,SAAS,EAAEouC,gBAAgB,CAACz+C,KAAK,EAAEy+C,gBAAgB,CAAC/hD,IAAI,CAAC;YACxG,OAAOojB,uCAAK;;;;MAKlB;MACA,OAAOC,gDAAU,CAAC,MAAM3U,KAAK,CAAC;IAChC,CAAC,CAAC;EACJ;EAEQkzC,4BAA4BA,CAACI,gBAAwB;IAC3D,OAAO,IAAI,CAACC,8BAA8B,CAAC,IAAI,CAACC,mCAAmC,CAACF,gBAAgB,CAAC,CAAC;EACxG;EAEQC,8BAA8BA,CAACE,KAAe;IACpD,MAAMC,SAAS,GAAID,KAAK,IAAIA,KAAK,CAACx3C,GAAG,CAACgc,IAAI,IAAI,OAAOA,IAAI,OAAO,CAAC,IAAK,EAAE;IACxE,OAAO,OAAOy7B,SAAS,CAACvJ,IAAI,CAAC,EAAE,CAAC,OAAO;EACzC;EAEQqJ,mCAAmCA,CAACF,gBAAwB;IAClE,OAAQA,gBAAgB,IAAIA,gBAAgB,CAAC/gC,KAAK,CAAC,MAAM,CAAC,CAACtW,GAAG,CAAC03C,CAAC,IAAIA,CAAC,IAAIA,CAAC,CAACzkC,IAAI,EAAE,CAAC,CAAC8I,MAAM,CAAC27B,CAAC,IAAI,CAAC,CAACA,CAAC,CAAC,IAAK,EAAE;EAC5G;EAAC,QAAA5zD,CAAA;qBApDUkY,YAAY,EAAAhR,sDAAA,CAAA7G,oDAAA,GAAA6G,sDAAA,CAAA7G,qDAAA;EAAA;EAAA,QAAAJ,EAAA;WAAZiY,YAAY;IAAA+qC,OAAA,EAAZ/qC,YAAY,CAAAgrC,IAAA;IAAAC,UAAA,EAFX;EAAM;;;;;;;;;;;;;;;;;;;;ACRgD;;;;AAW9D,MAAOrwC,kBAAkB;EAC7BnS,YACUC,cAA8B,EAC9BizD,YAA0B;IAD1B,KAAAjzD,cAAc,GAAdA,cAAc;IACd,KAAAizD,YAAY,GAAZA,YAAY;EACtB;EAEA;EAEAlb,wBAAwBA,CAACliC,OAAwD;IAC/E,IAAI,CAAC8iC,YAAY,CAAC/4C,4EAAY,CAACrB,WAAW,CAACk7C,kBAAkB,EAAE5jC,OAAO,EAAE,UAAU,CAAC;EACrF;EAEAqO,qBAAqBA,CAACrO,OAAkC;IACtD,IAAI,CAAC8iC,YAAY,CAAC/4C,4EAAY,CAACpB,QAAQ,CAACi7C,kBAAkB,EAAE5jC,OAAO,EAAE,WAAW,CAAC;EACnF;EAEAs0B,mBAAmBA,CAACt0B,OAAkC,EAAE2xB,WAAoB;IAC1E,MAAMmY,WAAW,GAAGnY,WAAW,GAC3B5nC,4EAAY,CAACwC,cAAc,CAAC23C,2BAA2B,GACvDn6C,4EAAY,CAACwC,cAAc,CAACq3C,kBAAkB;IAClD,IAAI,CAACd,YAAY,CAACgH,WAAW,EAAE9pC,OAAO,EAAE,SAAS,CAAC;EACpD;EAEA87B,iBAAiBA,CAAC97B,OAAkC;IAClD,IAAI,CAAC8iC,YAAY,CAAC/4C,4EAAY,CAAC4C,eAAe,CAACi3C,kBAAkB,EAAE5jC,OAAO,EAAE,OAAO,CAAC;EACtF;EAEAu+B,8BAA8BA,CAACv+B,OAAkC;IAC/D,IAAI,CAAC8iC,YAAY,CAAC/4C,4EAAY,CAAC4C,eAAe,CAACk3C,+BAA+B,EAAE7jC,OAAO,EAAE,sBAAsB,CAAC;EAClH;EAEAm8B,iCAAiCA,CAACn8B,OAAkC;IAClE,IAAI,CAAC8iC,YAAY,CAAC/4C,4EAAY,CAAC4C,eAAe,CAACm3C,kCAAkC,EAAE9jC,OAAO,EAAE,0BAA0B,CAAC;EACzH;EAEAhF,kCAAkCA,CAACgF,OAAkC;IACnE,IAAI,CAAC8iC,YAAY,CAAC/4C,4EAAY,CAACd,sBAAsB,CAAC26C,kBAAkB,EAAE5jC,OAAO,EAAE,aAAa,CAAC;EACnG;EAEAmF,wBAAwBA,CAACnF,OAAkC;IACzD,IAAI,CAAC8iC,YAAY,CAAC/4C,4EAAY,CAAChB,WAAW,CAAC66C,kBAAkB,EAAE5jC,OAAO,EAAE,cAAc,CAAC;EACzF;EAEAyrB,yBAAyBA,CAACzrB,OAAkC;IAC1D,IAAI,CAAC8iC,YAAY,CAAC/4C,4EAAY,CAACjB,YAAY,CAAC86C,kBAAkB,EAAE5jC,OAAO,EAAE,eAAe,CAAC;EAC3F;EAEA6tB,yBAAyBA,CAAC7tB,OAAkC;IAC1D,IAAI,CAAC8iC,YAAY,CAAC/4C,4EAAY,CAAClB,aAAa,CAAC+6C,kBAAkB,EAAE5jC,OAAO,EAAE,eAAe,CAAC;EAC5F;EAEAiwB,6BAA6BA,CAACjwB,OAAkC;IAC9D,IAAI,CAAC8iC,YAAY,CAAC/4C,4EAAY,CAACb,gBAAgB,CAAC06C,kBAAkB,EAAE5jC,OAAO,EAAE,mBAAmB,CAAC;EACnG;EAEAmwB,6CAA6CA,CAACnwB,OAAkC;IAC9E,IAAI,CAAC8iC,YAAY,CAAC/4C,4EAAY,CAACb,gBAAgB,CAAC46C,kCAAkC,EAAE9jC,OAAO,EAAE,sCAAsC,CAAC;EACtI;EAEA8iC,YAAYA,CACV3zB,WAAmB,EACnBnP,OAAwC,EACxCsiC,cAAsB,EACtB+a,iBAAA,GAAyE,IAAI,EAC7Evf,SAAA,GAA6D,IAAI;IAEjE,IAAI,CAAC3zC,cAAc,CAAC0hD,eAAe,CAAC18B,WAAW,EAAEnP,OAAO,EAAE,CAAC5P,QAAmB,EAAEktD,WAAmB,KAAI;MACrG,MAAMtf,cAAc,GAAGqf,iBAAiB,GAAGjtD,QAAQ,CAAC,IAAIA,QAAiD;MACzG,MAAMk2B,QAAQ,GAAG,IAAI,CAACyX,sBAAsB,CAACC,cAAc,EAAEsE,cAAc,EAAEgb,WAAW,CAAC;MACzFxf,SAAS,GAAG1tC,QAAQ,EAAEk2B,QAAQ,CAAC;IACjC,CAAC,CAAC;EACJ;EAEAyX,sBAAsBA,CACpBC,cAA0C,EAC1CsE,cAAsB,EACtBgb,WAAA,GAAsB,IAAI;IAE1BA,WAAW,KAAK,IAAI,CAACnzD,cAAc,CAAC2hD,cAAc,EAAE;IACpD,MAAMxlB,QAAQ,GAAG,GAAGgc,cAAc,IAAItE,cAAc,EAAEuf,mBAAmB,IAAID,WAAW,OAAO;IAC/F,MAAME,cAAc,GAAGxf,cAAc,EAAEyf,UAAU,EAAEh4C,GAAG,CAACi4C,SAAS,KAAK;MAAEC,aAAa,EAAED,SAAS,EAAEE,SAAS;MAAEC,aAAa,EAAEH,SAAS,EAAE5iD;IAAI,CAAE,CAAC,CAAC,IAAI,EAAE;IACpJ,IAAI,CAACsiD,YAAY,CAACU,mBAAmB,CAACx3B,QAAQ,EAAEk3B,cAAc,CAAC;IAC/D,OAAOl3B,QAAQ;EACjB;EAAC,QAAA/8B,CAAA;qBAnFU8S,kBAAkB,EAAA5L,sDAAA,CAAA7G,6DAAA,GAAA6G,sDAAA,CAAAG,mDAAA;EAAA;EAAA,QAAApH,EAAA;WAAlB6S,kBAAkB;IAAAmwC,OAAA,EAAlBnwC,kBAAkB,CAAAowC,IAAA;IAAAC,UAAA,EAFjB;EAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;ACX0B;AACR;AAEgD;AAEV;AACR;;;;;;;;AAoBpE,MAAMsR,gBAAgB;EACpB9zD,YACSukB,SAAiB,EACjB3T,IAA0B,EAC1B80C,YAAkC;IAFlC,KAAAnhC,SAAS,GAATA,SAAS;IACT,KAAA3T,IAAI,GAAJA,IAAI;IACJ,KAAA80C,YAAY,GAAZA,YAAY;EACnB;;AACH;AAKK,MAAOrzC,kBAAkB;EAE7BrS,YACUuT,YAA0B,EAC1BwgD,kBAAsC,EACtC1gD,mBAAwC,EACxC1E,aAA4B,EAC5B1O,cAA8B,EAC9B4O,iBAAoC;IALpC,KAAA0E,YAAY,GAAZA,YAAY;IACZ,KAAAwgD,kBAAkB,GAAlBA,kBAAkB;IAClB,KAAA1gD,mBAAmB,GAAnBA,mBAAmB;IACnB,KAAA1E,aAAa,GAAbA,aAAa;IACb,KAAA1O,cAAc,GAAdA,cAAc;IACd,KAAA4O,iBAAiB,GAAjBA,iBAAiB;EAC3B;EAEA;EAEAslC,cAAcA,CAACpC,IAAU;IACvB,OAAO,IAAI,CAACiiB,eAAe,CACzBjiB,IAAI,EACJ,wBAAwB,EACxB,4BAA4B,EAC5B,CAACxgB,UAAU,EAAEgiC,UAAU,KAAI;MACzB,MAAMz9C,OAAO,GAA0B;QAAEy9C;MAAU,CAAE;MACrD,IAAI,CAACtzD,cAAc,CAAC8F,IAAI,CAAClG,4EAAY,CAAC4C,eAAe,CAAC0xC,cAAc,EAAEr+B,OAAO,CAAC,CAC3E7P,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAEozD,MAA4B,IAAI;QAC1C,IAAIA,MAAM,CAAC39C,OAAO,EAAE;UAClB,IAAI,CAAC49C,WAAW,CAAC3iC,UAAU,EAAE,IAAIuiC,gBAAgB,CAACG,MAAM,CAAC39C,OAAO,EAAE29C,MAAM,CAACx9C,OAAO,CAAC,CAAC;SACnF,MACI;UACH8a,UAAU,CAACE,IAAI,CAACwiC,MAAM,CAAC7f,MAAM,CAAC;UAC9B7iB,UAAU,CAACG,QAAQ,EAAE;;MAEzB,CAAC,CAAC;IACN,CAAC,CAAC;EACN;EAEA;EAEAyhB,kBAAkBA,CAChBpB,IAAU,EACVwB,sBAAgG;IAEhG,MAAMwN,QAAQ,GAAGlhD,4EAAY,CAAC4C,eAAe,CAACq3C,mBAAmB;IAEjE,OAAO,IAAI,CAACka,eAAe,CACzBjiB,IAAI,EACJ,mBAAmB,EACnB,uBAAuB,EACvB,CAACxgB,UAAU,EAAEgiC,UAAU,KAAI;MACzB;MACA,MAAMY,eAAe,GAA+B;QAAEZ,UAAU;QAAEa,gBAAgB,EAAE;MAAK,CAAE;MAC3F,IAAI,CAACn0D,cAAc,CAAC8F,IAAI,CAACg7C,QAAQ,EAAEoT,eAAe,CAAC,CAChDluD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAEwzD,gBAA6C,IAAI;QAC3D,IAAIA,gBAAgB,CAAC/9C,OAAO,EAAE;UAC5B;UACA,IAAI,CAAC49C,WAAW,CAAC3iC,UAAU,EAAE,IAAIuiC,gBAAgB,CAACO,gBAAgB,CAAC/9C,OAAO,EAAE+9C,gBAAgB,CAAC59C,OAAO,CAAC,CAAC;SACvG,MACI;UACH;UACA88B,sBAAsB,CAAC8gB,gBAAgB,CAAC,CACrCpuD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAACopB,YAAY,IAAG;YACxB,QAAQA,YAA4B;cAClC,KAAK/D,mDAAY,CAACyF,QAAQ;gBAAE;kBAC1B;kBACA,MAAM2oC,kBAAkB,GAA+B;oBAAEf,UAAU;oBAAEa,gBAAgB,EAAE;kBAAI,CAAE;kBAC7F,IAAI,CAACn0D,cAAc,CAAC8F,IAAI,CAACg7C,QAAQ,EAAEuT,kBAAkB,CAAC,CACnDruD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAC;oBACT4wB,IAAI,EAAG8iC,mBAAgD,IAAI;sBACzD,IAAIA,mBAAmB,CAACj+C,OAAO,EAAE;wBAC/B;wBACA;wBACAib,UAAU,CAACjS,KAAK,CAAC,IAAIw0C,gBAAgB,CAACS,mBAAmB,CAACj+C,OAAO,EAAEi+C,mBAAmB,CAAC99C,OAAO,CAAC,CAAC;uBACjG,MACI;wBACH;wBACA8a,UAAU,CAACE,IAAI,CAAC8iC,mBAAmB,CAAC;wBACpChjC,UAAU,CAACG,QAAQ,EAAE;;oBAEzB,CAAC;oBACDpS,KAAK,EAAEA,KAAK,IAAG;sBACb;sBACAiS,UAAU,CAACjS,KAAK,CAACA,KAAK,CAAC;oBACzB;mBACD,CAAC;kBACJ;;cAEF,KAAK4G,mDAAY,CAAC6F,QAAQ;gBAAE;kBAC1B;kBACAwF,UAAU,CAACjS,KAAK,EAAE;kBAClB;;;UAGN,CAAC,CAAC;;MAER,CAAC,CAAC;IACN,CAAC,CAAC;EACN;EAEA;EAEA+zB,iBAAiBA,CACftB,IAAU,EACVwB,sBAA8F;IAE9F,MAAMwN,QAAQ,GAAGlhD,4EAAY,CAAC4C,eAAe,CAACs3C,kBAAkB;IAEhE,OAAO,IAAI,CAACia,eAAe,CACzBjiB,IAAI,EACJ,kBAAkB,EAClB,sBAAsB,EACtB,CAACxgB,UAAU,EAAEgiC,UAAU,KAAI;MACzB;MACA,MAAMiB,cAAc,GAA8B;QAAEjB,UAAU;QAAEa,gBAAgB,EAAE;MAAK,CAAE;MACzF,IAAI,CAACn0D,cAAc,CAAC8F,IAAI,CAACg7C,QAAQ,EAAEyT,cAAc,CAAC,CAC/CvuD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAE4zD,eAA2C,IAAI;QACzD,IAAIA,eAAe,CAACn+C,OAAO,EAAE;UAC3B;UACA,IAAI,CAAC49C,WAAW,CAAC3iC,UAAU,EAAE,IAAIuiC,gBAAgB,CAACW,eAAe,CAACn+C,OAAO,EAAEm+C,eAAe,CAACh+C,OAAO,CAAC,CAAC;SACrG,MACI;UACH;UACA88B,sBAAsB,CAACkhB,eAAe,CAAC,CACpCxuD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAACopB,YAAY,IAAG;YACxB,QAAQA,YAA4B;cAClC,KAAK/D,mDAAY,CAACyF,QAAQ;gBAAE;kBAC1B;kBACA,MAAM+oC,iBAAiB,GAA8B;oBAAEnB,UAAU;oBAAEa,gBAAgB,EAAE;kBAAI,CAAE;kBAC3F,IAAI,CAACn0D,cAAc,CAAC8F,IAAI,CAACg7C,QAAQ,EAAE2T,iBAAiB,CAAC,CAClDzuD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAC;oBACT4wB,IAAI,EAAGkjC,kBAA8C,IAAI;sBACvD,IAAIA,kBAAkB,CAACr+C,OAAO,EAAE;wBAC9B;wBACA;wBACAib,UAAU,CAACjS,KAAK,CAAC,IAAIw0C,gBAAgB,CAACa,kBAAkB,CAACr+C,OAAO,EAAEq+C,kBAAkB,CAACl+C,OAAO,CAAC,CAAC;uBAC/F,MACI;wBACH;wBACA8a,UAAU,CAACE,IAAI,CAACkjC,kBAAkB,CAAC;wBACnCpjC,UAAU,CAACG,QAAQ,EAAE;;oBAEzB,CAAC;oBACDpS,KAAK,EAAEA,KAAK,IAAG;sBACb;sBACAiS,UAAU,CAACjS,KAAK,CAACA,KAAK,CAAC;oBACzB;mBACD,CAAC;kBACJ;;cAEF,KAAK4G,mDAAY,CAAC6F,QAAQ;gBAAE;kBAC1B;kBACAwF,UAAU,CAACjS,KAAK,EAAE;kBAClB;;;UAGN,CAAC,CAAC;;MAER,CAAC,CAAC;IACN,CAAC,CAAC;EACN;EAEA;EAEA2zB,mBAAmBA,CAAA;IACjB,OAAO,IAAI,CAAC2hB,8BAA8B,CACxC,IAAI,EACJ/0D,4EAAY,CAAC4C,eAAe,CAACo3C,oBAAoB,EACjD,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,CAAC;EAC3B;EAEA3oC,oCAAoCA,CAACC,QAAgB;IACnD,OAAO,IAAI,CAAC0jD,iCAAiC,CAC3C1jD,QAAQ,EACRtR,4EAAY,CAACd,sBAAsB,CAAC86C,oBAAoB,EACxD,2BAA2B,EAC3B,+BAA+B,EAC/B,6BAA6B,CAAC;EAClC;EAEA1+B,0BAA0BA,CAAA;IACxB,OAAO,IAAI,CAAC05C,iCAAiC,CAC3C,IAAI,EACJh1D,4EAAY,CAAChB,WAAW,CAACg7C,oBAAoB,EAC7C,2BAA2B,EAC3B,+BAA+B,EAC/B,6BAA6B,CAAC;EAClC;EAEArY,2BAA2BA,CAAA;IACzB,OAAO,IAAI,CAACqzB,iCAAiC,CAC3C,IAAI,EACJh1D,4EAAY,CAACjB,YAAY,CAACi7C,oBAAoB,EAC9C,4BAA4B,EAC5B,gCAAgC,EAChC,8BAA8B,CAAC;EACnC;EAEAjW,2BAA2BA,CAAA;IACzB,OAAO,IAAI,CAACixB,iCAAiC,CAC3C,IAAI,EACJh1D,4EAAY,CAAClB,aAAa,CAACk7C,oBAAoB,EAC/C,6BAA6B,EAC7B,iCAAiC,EACjC,+BAA+B,CAAC;EACpC;EAEAzT,+BAA+BA,CAAA;IAC7B,OAAO,IAAI,CAACyuB,iCAAiC,CAC3C,IAAI,EACJh1D,4EAAY,CAACb,gBAAgB,CAAC66C,oBAAoB,EAClD,gCAAgC,EAChC,oCAAoC,EACpC,kCAAkC,CAAC;EACvC;EAEA;EAEQma,eAAeA,CACrBjiB,IAAU,EACV+iB,yBAAiC,EACjCC,6BAAqC,EACrCC,eAA6E;IAE7E,OAAO,IAAI5kC,4CAAU,CAAImB,UAAU,IACjC,IAAI,CAAC0jC,sBAAsB,CAACljB,IAAI,EAAE+iB,yBAAyB,CAAC,CACzD7uD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC;MACT4wB,IAAI,EAAE8hC,UAAU,IAAIyB,eAAe,CAACzjC,UAAU,EAAEgiC,UAAU,CAAC;MAC3Dj0C,KAAK,EAAEA,KAAK,IAAI,IAAI,CAAC40C,WAAW,CAAC3iC,UAAU,EAAEjS,KAAK,EAAEy1C,6BAA6B;KAClF,CAAC,CAAC;EACT;EAEQH,8BAA8BA,CACpCzjD,QAAgB,EAChB4vC,QAAgB,EAChBmU,2BAAmC,EACnCC,uBAA+B,EAC/BC,2BAAmC,EACnCC,yBAAiC;IAEjC,MAAMthB,QAAQ,GAAIxiB,UAAyC,IACzDvE,UAAU,CAAC,MAAMgoC,eAAe,CAACzjC,UAAU,CAAC,EAAEwa,oFAAyB,CAAC;IAE1E,MAAMipB,eAAe,GAAIzjC,UAAyC,IAAI;MACpE,IAAI,CAAC5iB,aAAa,CAAC8c,WAAW,CAACypC,2BAA2B,CAAC,CACxDjvD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAACopB,YAAY,IAAG;QACxB,QAAQA,YAA4B;UAClC,KAAK/D,mDAAY,CAACyF,QAAQ;YAAE;cAC1B,IAAI,CAAC9c,iBAAiB,CAACijC,UAAU,CAC/B,CAAC,OAAO,EAAE,MAAM,CAAC,EACjBC,IAAI,IAAI,IAAI,CAACujB,cAAc,CAACnkD,QAAQ,EAAE4gC,IAAI,EAAEgP,QAAQ,EAAEoU,uBAAuB,EAAEC,2BAA2B,EAAEC,yBAAyB,CAAC,CACnIpvD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC;gBACT4wB,IAAI,EAAErgB,iBAAiB,IAAG;kBACxB,IAAIA,iBAAiB,CAACC,WAAW,EAAE;oBACjC0iC,QAAQ,CAACxiB,UAAU,CAAC;mBACrB,MACI;oBACHA,UAAU,CAACE,IAAI,CAAC;sBAAEpgB,WAAW,EAAE;oBAAK,CAAE,CAAC;oBACvCkgB,UAAU,CAACG,QAAQ,EAAE;;gBAEzB,CAAC;gBACDpS,KAAK,EAAEA,CAAA,KAAMy0B,QAAQ,CAACxiB,UAAU;eACjC,CAAC,EACJ,MAAMwiB,QAAQ,CAACxiB,UAAU,CAAC,CAAC;cAC7B;;UAEF,KAAKrL,mDAAY,CAAC6F,QAAQ;YAAE;cAC1BwF,UAAU,CAACE,IAAI,CAAC;gBAAEpgB,WAAW,EAAE;cAAI,CAAE,CAAC;cACtCkgB,UAAU,CAACG,QAAQ,EAAE;cACrB;;;MAGN,CAAC,CAAC;IACN,CAAC;IAED,OAAO,IAAItB,4CAAU,CAAoBmB,UAAU,IAAIyjC,eAAe,CAACzjC,UAAU,CAAC,CAAC;EACrF;EAEQsjC,iCAAiCA,CACvC1jD,QAAgB,EAChB4vC,QAAgB,EAChBoU,uBAA+B,EAC/BC,2BAAmC,EACnCC,yBAAiC;IAEjC,MAAML,eAAe,GAAIzjC,UAAyC,IAAI;MACpE,IAAI,CAAC1iB,iBAAiB,CAACijC,UAAU,CAC/B,CAAC,OAAO,EAAE,MAAM,CAAC,EACjBC,IAAI,IAAI,IAAI,CAACujB,cAAc,CAACnkD,QAAQ,EAAE4gC,IAAI,EAAEgP,QAAQ,EAAEoU,uBAAuB,EAAEC,2BAA2B,EAAEC,yBAAyB,CAAC,CACnIpvD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC;QACT4wB,IAAI,EAAErgB,iBAAiB,IAAG;UACxBmgB,UAAU,CAACE,IAAI,CAACrgB,iBAAiB,CAAC;UAClCmgB,UAAU,CAACG,QAAQ,EAAE;QACvB,CAAC;QACDpS,KAAK,EAAEA,KAAK,IAAIiS,UAAU,CAACjS,KAAK,CAACA,KAAK;OACvC,CAAC,EACJ,MAAK;QACHiS,UAAU,CAACE,IAAI,CAAC;UAAEpgB,WAAW,EAAE;QAAI,CAAE,CAAC;QACtCkgB,UAAU,CAACG,QAAQ,EAAE;MACvB,CAAC,CAAC;IACN,CAAC;IAED,OAAO,IAAItB,4CAAU,CAAoBmB,UAAU,IAAIyjC,eAAe,CAACzjC,UAAU,CAAC,CAAC;EACrF;EAEQ+jC,cAAcA,CACpBnkD,QAAgB,EAChB4gC,IAAU,EACVgP,QAAgB,EAChBoU,uBAA+B,EAC/BC,2BAAmC,EACnCC,yBAAiC;IAEjC,MAAME,cAAc,GAAGA,CAAChkC,UAAyC,EAAEgiC,UAAuB,EAAEniC,cAAuB,KAAI;MACrH,OAAO,IAAI,CAACmkC,cAAc,CAACxU,QAAQ,EAAE5vC,QAAQ,EAAEoiD,UAAU,EAAE6B,2BAA2B,EAAEhkC,cAAc,CAAC,CACpGnrB,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC;QACT4wB,IAAI,EAAErgB,iBAAiB,IAAG;UACxB,IAAIA,iBAAiB,CAACC,WAAW,EAAE;YACjC,IAAID,iBAAiB,CAAC8f,QAAQ,EAAE1M,MAAM,EAAE;cACtC;cACA,IAAI,CAACnR,mBAAmB,CAAC8d,YAAY,CAAC/f,iBAAiB,CAAC8f,QAAQ,CAAC,CAC9DjrB,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC+P,IAAI,IAAG;gBAChB,QAAQA,IAAoB;kBAC1B,KAAKsV,mDAAY,CAACyF,QAAQ;oBAAE;sBAC1B;sBACA,MAAMyF,cAAc,GAAG,IAAI;sBAC3BmkC,cAAc,CAAChkC,UAAU,EAAEgiC,UAAU,EAAEniC,cAAc,CAAC;sBACtD;;kBAEF,KAAKlL,mDAAY,CAAC6F,QAAQ;oBAAE;sBAC1B;sBACAwF,UAAU,CAACE,IAAI,CAAC;wBAAEpgB,WAAW,EAAE;sBAAI,CAAE,CAAC;sBACtCkgB,UAAU,CAACG,QAAQ,EAAE;sBACrB;;;cAGN,CAAC,CAAC;aACL,MACI;cACH;cACAH,UAAU,CAACE,IAAI,CAAC;gBAAEpgB,WAAW,EAAE;cAAI,CAAE,CAAC;cACtCkgB,UAAU,CAACG,QAAQ,EAAE;;WAExB,MACI;YACH;YACA1E,UAAU,CACR,MAAM,IAAI,CAACvB,WAAW,CAAC4pC,yBAAyB,CAAC,CAC9CpvD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC,MAAK;cACd0wB,UAAU,CAACE,IAAI,CAAC;gBAAEpgB,WAAW,EAAE;cAAK,CAAE,CAAC;cACvCkgB,UAAU,CAACG,QAAQ,EAAE;YACvB,CAAC,CAAC,EACJqa,oFAAyB,CAAC;;QAEhC,CAAC;QACD;QACAzsB,KAAK,EAAEA,KAAK,IAAG;UACb,IAAI,CAAC40C,WAAW,CAAC3iC,UAAU,EAAEjS,KAAK,EAAE4a,8CAAO,CAACqC,YAAY,CAAC;QAC3D;OACD,CAAC;IACN,CAAC;IAED,OAAO,IAAInM,4CAAU,CAAoBmB,UAAU,IAAG;MACpD,IAAI,CAAC0jC,sBAAsB,CAACljB,IAAI,EAAEojB,uBAAuB,CAAC,CACvDlvD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC;QACT4wB,IAAI,EAAE8hC,UAAU,IAAG;UACjB,MAAMniC,cAAc,GAAG,KAAK;UAC5BmkC,cAAc,CAAChkC,UAAU,EAAEgiC,UAAU,EAAEniC,cAAc,CAAC;QACxD,CAAC;QACD9R,KAAK,EAAEA,KAAK,IAAG;UACb,IAAI,CAAC40C,WAAW,CAAC3iC,UAAU,EAAEjS,KAAK,EAAE4a,8CAAO,CAACqC,YAAY,CAAC;QAC3D;OACD,CAAC;IACN,CAAC,CAAC;EACJ;EAEQ04B,sBAAsBA,CAACljB,IAAU,EAAEojB,uBAA+B;IAExE,OAAO,IAAI,CAACK,cAAc,CAAczjB,IAAI,EAAEojB,uBAAuB,EAAE,CAAC5jC,UAAU,EAAEthB,KAAK,KAAI;MAE3F,MAAMsjD,UAAU,GAAG,IAAI,CAACQ,kBAAkB,CAAC0B,aAAa,CAACxlD,KAAK,CAACswC,MAAM,CAAC0T,MAAM,CAAC;MAC7E,IAAI,CAACV,UAAU,IAAIA,UAAU,CAAC/uC,MAAM,KAAK,CAAC,EAAE;QAC1C+M,UAAU,CAACjS,KAAK,EAAE;;MAGpBiS,UAAU,CAACE,IAAI,CAAC8hC,UAAU,CAAC;MAC3BhiC,UAAU,CAACG,QAAQ,EAAE;IACvB,CAAC,CAAC;EACJ;EAEQ8jC,cAAcA,CAAIzjB,IAAU,EAAE2jB,sBAA8B,EAAEV,eAAsF;IAE1J,OAAO,IAAI5kC,4CAAU,CAACmB,UAAU,IAAG;MACjC,IAAI;QACF,MAAMokC,MAAM,GAAG,IAAIC,UAAU,EAAE;QAC/BD,MAAM,CAACE,MAAM,GAAG5lD,KAAK,IAAG;UACtB,IAAI;YACF+kD,eAAe,CAACzjC,UAAU,EAAEthB,KAAK,CAAC;WACnC,CACD,OAAOqP,KAAK,EAAE;YACZiS,UAAU,CAACjS,KAAK,CAACA,KAAK,CAAC;;QAE3B,CAAC;QACD,IAAIyyB,IAAI,EAAE;UACR,MAAM+jB,cAAc,GAAG,CACrB,0BAA0B,EAC1B,mEAAmE,EACnE,UAAU,CACX;UACD,IAAIA,cAAc,CAACz/C,QAAQ,CAAC07B,IAAI,CAACvhC,IAAI,CAAC,EAAE;YACtCmlD,MAAM,CAACI,kBAAkB,CAAChkB,IAAI,CAAC;WAChC,MACI;YACHxgB,UAAU,CAACjS,KAAK,CAAC,IAAIw0C,gBAAgB,CAAC4B,sBAAsB,CAAC,CAAC;;;OAGnE,CACD,OAAOp2C,KAAK,EAAE;QACZiS,UAAU,CAACjS,KAAK,CAACA,KAAK,CAAC;;IAE3B,CAAC,CAAC;EACJ;EAEQmM,WAAWA,CAAClH,SAAiB,EAAE3T,IAA0B,EAAE80C,YAAkC;IACnG,OAAO,IAAI,CAACryC,mBAAmB,CAACoY,WAAW,CAAClH,SAAS,EAAEmhC,YAAY,EAAE90C,IAAI,CAAC;EAC5E;EAEQsjD,WAAWA,CAAI3iC,UAAyB,EAAEjS,KAAU,EAAE02C,qBAA8B;IAC1F,IAAI12C,KAAK,YAAYw0C,gBAAgB,EAAE;MACrC,IAAI,CAACroC,WAAW,CAACnM,KAAK,CAACiF,SAAS,EAAEjF,KAAK,CAAC1O,IAAI,EAAE0O,KAAK,CAAComC,YAAY,CAAC,CAC9Dz/C,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC,MAAM0wB,UAAU,CAACjS,KAAK,EAAE,CAAC;KACvC,MACI,IAAI02C,qBAAqB,EAAE;MAC9B,IAAI,CAACvqC,WAAW,CAACuqC,qBAAqB,CAAC,CACpC/vD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC,MAAM0wB,UAAU,CAACjS,KAAK,EAAE,CAAC;KACvC,MACI;MACHiS,UAAU,CAACjS,KAAK,EAAE;;EAEtB;EAEQi2C,cAAcA,CACpBxU,QAAgB,EAChB5vC,QAAgB,EAChBoiD,UAAuB,EACvB0C,qBAA6B,EAC7B7kC,cAAuB;IAEvB,OAAO,IAAIhB,4CAAU,CAAoBmB,UAAU,IAAG;MAEpD;MACA,MAAM2kC,gBAAgB,GAAgC;QAAE/kD,QAAQ;QAAEoiD,UAAU;QAAEa,gBAAgB,EAAE,KAAK;QAAEhjC,cAAc,EAAEA;MAAc,CAAE;MACvI,IAAI,CAACnxB,cAAc,CAAC8F,IAAI,CAACg7C,QAAQ,EAAEmV,gBAAgB,CAAC,CACjDjwD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAC;QACT4wB,IAAI,EAAG0kC,iBAA+C,IAAI;UACxD,IAAIA,iBAAiB,CAAC7/C,OAAO,EAAE;YAC7B;YACAib,UAAU,CAACjS,KAAK,CAAC,IAAIw0C,gBAAgB,CAACqC,iBAAiB,CAAC7/C,OAAO,EAAE6/C,iBAAiB,CAAC1/C,OAAO,CAAC,CAAC;WAC7F,MACI,IAAI0/C,iBAAiB,CAACjlC,QAAQ,EAAE1M,MAAM,EAAE;YAC3C;YACA+M,UAAU,CAACE,IAAI,CAAC;cAAEpgB,WAAW,EAAE,IAAI;cAAE6f,QAAQ,EAAEilC,iBAAiB,CAACjlC;YAAQ,CAAE,CAAC;YAC5EK,UAAU,CAACG,QAAQ,EAAE;WACtB,MACI;YACH;YACA1E,UAAU,CACR,MAAK;cACH,MAAMopC,mCAAmC,GAAwB;gBAC/DC,aAAa,EAAE,IAAI,CAACC,uBAAuB,CAACH,iBAAiB,CAACI,oBAAoB;eACnF;cACD,IAAI,CAAC5nD,aAAa,CACf8c,WAAW,CAACwqC,qBAAqB,EAAEG,mCAAmC,CAAC,CACvEnwD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAACopB,YAAY,IAAG;gBACxB,QAAQA,YAA4B;kBAClC,KAAK/D,mDAAY,CAACyF,QAAQ;oBAAE;sBAC1B;sBACA,MAAM6qC,mBAAmB,GAAgC;wBAAErlD,QAAQ;wBAAEoiD,UAAU;wBAAEa,gBAAgB,EAAE,IAAI;wBAAEhjC,cAAc,EAAE;sBAAI,CAAE;sBAC/H,IAAI,CAACnxB,cAAc,CAAC8F,IAAI,CAACg7C,QAAQ,EAAEyV,mBAAmB,CAAC,CACpDvwD,IAAI,CAACrG,oDAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC2T,YAAY,CAACyC,YAAY,EAAE,CAAC,CAC/CnV,SAAS,CAAC;wBACT4wB,IAAI,EAAGglC,oBAAkD,IAAI;0BAC3D,IAAIA,oBAAoB,CAACngD,OAAO,EAAE;4BAChC;4BACA;4BACAib,UAAU,CAACjS,KAAK,CAAC,IAAIw0C,gBAAgB,CAAC2C,oBAAoB,CAACngD,OAAO,EAAEmgD,oBAAoB,CAAChgD,OAAO,CAAC,CAAC;2BACnG,MACI;4BACH;4BACA8a,UAAU,CAACE,IAAI,CAAC;8BAAEpgB,WAAW,EAAE;4BAAK,CAAE,CAAC;4BACvCkgB,UAAU,CAACG,QAAQ,EAAE;;wBAEzB,CAAC;wBACDpS,KAAK,EAAEA,KAAK,IAAG;0BACb;0BACAiS,UAAU,CAACjS,KAAK,CAACA,KAAK,CAAC;wBACzB;uBACD,CAAC;sBACJ;;kBAEF,KAAK4G,mDAAY,CAAC6F,QAAQ;oBAAE;sBAC1B;sBACAwF,UAAU,CAACE,IAAI,CAAC;wBAAEpgB,WAAW,EAAE;sBAAI,CAAE,CAAC;sBACtCkgB,UAAU,CAACG,QAAQ,EAAE;sBACrB;;;cAGN,CAAC,CAAC;YACN,CAAC,EACDqa,oFAAyB,CAAC;;QAEhC,CAAC;QACDzsB,KAAK,EAAEA,KAAK,IAAG;UACb;UACAiS,UAAU,CAACjS,KAAK,CAACA,KAAK,CAAC;QACzB;OACD,CAAC;IACN,CAAC,CAAC;EACJ;EAEQg3C,uBAAuBA,CAACI,QAAgC;IAC9D,MAAMC,MAAM,GAAIC,IAAS,IACvB,IAAI,CAAC/nD,iBAAiB,CAACm3C,aAAa,CAAC4Q,IAAI,CAAC7xC,QAAQ,EAAE,CAAC;IACvD,MAAM8xC,QAAQ,GAAI5W,CAAuB,IACvCA,CAAC,CAAC6W,YAAY,GAAG7W,CAAC,CAAC8W,UAAU,GAAG9W,CAAC,CAAC+W,aAAa,GAAG/W,CAAC,CAACgX,eAAe;IACrE,MAAMC,QAAQ,GAAIC,QAA6C,IAC7DT,QAAQ,CAACU,MAAM,CAAC,CAACC,WAAW,EAAEpX,CAAC,KAAKoX,WAAW,GAAGF,QAAQ,CAAClX,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE,MAAMmG,SAAS,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAChF7qC,GAAG,CAACo7C,MAAM,CAAC;IACd,MAAMW,UAAU,GAAGZ,QAAQ,CACxBn7C,GAAG,CAAC0kC,CAAC,IAAI,CAACA,CAAC,CAACsX,UAAU,EAAEtX,CAAC,CAAC6W,YAAY,EAAE7W,CAAC,CAAC8W,UAAU,EAAE9W,CAAC,CAAC+W,aAAa,EAAE/W,CAAC,CAACgX,eAAe,EAAEJ,QAAQ,CAAC5W,CAAC,CAAC,CAAC,CACpG1kC,GAAG,CAACo7C,MAAM,CAAC,CAAC;IACjB,MAAMa,QAAQ,GAAG,CAAC,OAAO,EAAEN,QAAQ,CAACjX,CAAC,IAAIA,CAAC,CAAC6W,YAAY,CAAC,EAAEI,QAAQ,CAACjX,CAAC,IAAIA,CAAC,CAAC8W,UAAU,CAAC,EAAEG,QAAQ,CAACjX,CAAC,IAAIA,CAAC,CAAC+W,aAAa,CAAC,EAAEE,QAAQ,CAACjX,CAAC,IAAIA,CAAC,CAACgX,eAAe,CAAC,EAAEC,QAAQ,CAACjX,CAAC,IAAI4W,QAAQ,CAAC5W,CAAC,CAAC,CAAC,CAAC,CACjL1kC,GAAG,CAACo7C,MAAM,CAAC,CACXp7C,GAAG,CAACq7C,IAAI,IAAI,IAAI,CAAC/nD,iBAAiB,CAAConC,UAAU,CAAC,GAAG,EAAE2gB,IAAI,CAAC,CAAC,CACzDr7C,GAAG,CAACq7C,IAAI,IAAI,IAAI,CAAC/nD,iBAAiB,CAAConC,UAAU,CAAC,GAAG,EAAE2gB,IAAI,CAAC,CAAC;IAC5D,MAAMvQ,QAAQ,GAAGiR,UAAU,CACxBG,MAAM,CAAC,CAACD,QAAQ,CAAC,CAAC;IACrB,MAAME,sBAAsB,GAAG;MAC7BC,WAAW,EAAE;QACX,CAAC,EAAE;UAAEC,cAAc,EAAE;QAAK,CAAE;QAC5B,CAAC,EAAE;UAAEA,cAAc,EAAE;QAAI,CAAE;QAC3B,CAAC,EAAE;UAAEA,cAAc,EAAE;QAAI,CAAE;QAC3B,CAAC,EAAE;UAAEA,cAAc,EAAE;QAAI,CAAE;QAC3B,CAAC,EAAE;UAAEA,cAAc,EAAE;QAAI,CAAE;QAC3B,CAAC,EAAE;UAAEA,cAAc,EAAE;QAAI;;KAE5B;IACD,MAAMpR,SAAS,GAAG,IAAI,CAAC33C,iBAAiB,CAAC43C,eAAe,CAACL,SAAS,EAAEC,QAAQ,EAAEqR,sBAAsB,CAAC;IACrG,MAAMx5B,IAAI,GAAG,IAAI,CAACrvB,iBAAiB,CAAConC,UAAU,CAAC,GAAG,EAAEuQ,SAAS,CAAC;IAC9D,OAAOtoB,IAAI;EACb;EAAC,QAAA7+B,CAAA;qBAxjBUgT,kBAAkB,EAAA9L,uDAAA,CAAA7G,iEAAA,GAAA6G,uDAAA,CAAAG,qEAAA,GAAAH,uDAAA,CAAAK,uEAAA,GAAAL,uDAAA,CAAAO,oDAAA,GAAAP,uDAAA,CAAA0L,sEAAA,GAAA1L,uDAAA,CAAA2L,mEAAA;EAAA;EAAA,QAAA5S,EAAA;WAAlB+S,kBAAkB;IAAAiwC,OAAA,EAAlBjwC,kBAAkB,CAAAkwC,IAAA;IAAAC,UAAA,EAFjB;EAAM;;;;;;;;;;;;;;;;;;;ACnCS;;AASvB,MAAOqV,kBAAkB;EAE7B;;;;;EAKApC,aAAaA,CAAC7kD,IAAe;IAC3B,MAAMmnD,cAAc,GAAG,IAAI,CAACC,iBAAiB,CAACpnD,IAAI,CAAC;IACnD,MAAM2iD,UAAU,GAAGwE,cAAc,CAC9Bx8C,GAAG,CAAC08C,aAAa,KAAK;MACrBvE,SAAS,EAAEuE,aAAa,CAACC,iBAAiB;MAC1CtnD,IAAI,EAAEqnD,aAAa,CAACE;KACrB,CAAC,CAAC;IACL,OAAO5E,UAAU;EACnB;EAEA;EACA;EACA;EAEA;;;;;;EAMQ6E,eAAeA,CAACxnD,IAAe;IACrC,IAAI;MACF,MAAMynD,YAAY,GAAGP,sCAAS,CAAClnD,IAAI,EAAE;QAAEJ,IAAI,EAAE,QAAQ;QAAE+nD,GAAG,EAAE;MAAI,CAAE,CAAC;MACnE,OAAOF,YAAY;KACpB,CACD,MAAM;MACJ,OAAO,IAAI;;EAEf;EAEA;;;;;;EAMQL,iBAAiBA,CAACpnD,IAAe;IACvC,IAAI;MACF,MAAMynD,YAAY,GAAG,IAAI,CAACD,eAAe,CAACxnD,IAAI,CAAC;MAC/C,MAAMmnD,cAAc,GAAGM,YAAY,CAACG,UAAU,CAC3Cj9C,GAAG,CAAC28C,iBAAiB,IAAG;QACvB,MAAMD,aAAa,GAAGI,YAAY,CAACI,MAAM,CAACP,iBAAiB,CAAC;QAC5D,MAAMC,iBAAiB,GAAGL,uCAAU,CAACa,aAAa,CAACV,aAAa,EAAE;UAAEW,MAAM,EAAE;QAAC,CAAE,CAAe;QAC9F,OAAO;UAAEV,iBAAiB;UAAEC;QAAiB,CAAE;MACjD,CAAC,CAAC;MACJ,OAAOJ,cAAc,IAAI,EAAE;KAC5B,CACD,MAAM;MACJ,OAAO,EAAE;;EAEb;EAAC,QAAA14D,CAAA;qBAzDUw4D,kBAAkB;EAAA;EAAA,QAAAv4D,EAAA;WAAlBu4D,kBAAkB;IAAAvV,OAAA,EAAlBuV,kBAAkB,CAAAtV,IAAA;IAAAC,UAAA,EAFjB;EAAM;;;;;;;;;;;;;;;;;;;ACL2H;;;AAOzI,MAAO37C,0BAA0B;EAErC7G,YACUC,cAA8B;IAA9B,KAAAA,cAAc,GAAdA,cAAc;EACxB;EAEA;EACA6F,sBAAsBA,CAAA;IAEpB,MAAM+yD,mBAAmB,GAA+B;MACtDC,SAAS,EAAE,+BAA+B;MAC1CC,gBAAgB,EAAE,iIAAiI;MACnJC,gBAAgB,EAAE,IAAI;MACtBC,eAAe,EAAE,IAAI;MACrBC,aAAa,EAAE,kCAAkC;MACjDC,YAAY,EAAE,6BAA6B;MAC3CC,QAAQ,EAAE,oCAAoC;MAC9CC,eAAe,EAAE,yLAAyL;MAC1MC,iBAAiB,EAAE,CACjB;QACEC,OAAO,EAAE,gBAAgB;QACzBC,KAAK,EAAE,CACL;UACEC,KAAK,EAAE,4BAA4B;UACnCjnC,GAAG,EAAE,GAAG4H,6EAAkB,CAAC5H,GAAG;SAC/B,EACD;UACEinC,KAAK,EAAE,oDAAoD;UAC3DjnC,GAAG,EAAE,GAAG2H,iGAAsC,CAAC3H,GAAG;SACnD,EACD;UACEinC,KAAK,EAAE,qBAAqB;UAC5BjnC,GAAG,EAAE,GAAG4H,6EAAkB,CAAC5H,GAAG;SAC/B,EACD;UACEinC,KAAK,EAAE,6CAA6C;UACpDjnC,GAAG,EAAE,GAAG2H,iGAAsC,CAAC3H,GAAG;SACnD,EACD;UACEinC,KAAK,EAAE,WAAW;UAClBjnC,GAAG,EAAE,GAAG4H,6EAAkB,CAAC5H,GAAG;SAC/B;OAEJ,EACD;QACE+mC,OAAO,EAAE,iBAAiB;QAC1BC,KAAK,EAAE,CACL;UACEC,KAAK,EAAEvf,8EAAmB,CAAC7L,KAAK;UAChC7b,GAAG,EAAE0nB,8EAAmB,CAAC1nB;SAC1B,EACD;UACEinC,KAAK,EAAEr/B,6EAAkB,CAACiU,KAAK;UAC/B7b,GAAG,EAAE4H,6EAAkB,CAAC5H;SACzB,EACD;UACEinC,KAAK,EAAEt/B,iGAAsC,CAACkU,KAAK;UACnD7b,GAAG,EAAE2H,iGAAsC,CAAC3H;SAC7C,EACD;UACEinC,KAAK,EAAE,IAAI,CAACx5D,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACoF,kCAAkC,CAAC;UACrFstB,GAAG,EAAE,IAAI,CAACvyB,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACkF,gCAAgC;SACjF;OAEJ,CACF;MACD00D,cAAc,EAAE,GAAGt/B,6EAAkB,CAACiU,KAAK,MAAMlU,iGAAsC,CAACkU,KAAK,EAAE;MAC/FsrB,cAAc,EAAEzf,8EAAmB,CAAC7L;KACrC;IAED,OAAOwqB,mBAAmB;EAC5B;EAAC,QAAAx5D,CAAA;qBAvEUwH,0BAA0B,EAAAN,sDAAA,CAAA7G,6DAAA;EAAA;EAAA,QAAAJ,EAAA;WAA1BuH,0BAA0B;IAAAy7C,OAAA,EAA1Bz7C,0BAA0B,CAAA07C,IAAA;IAAAC,UAAA,EAFzB;EAAM;;;;;;;;;;;;;;;;;;ACFd,MAAOoX,8BAA8B;EAH3C55D,YAAA;IAKE,KAAA65D,iBAAiB,GAAIC,UAA+B,IAClDA,UAAU,GAAG,CAAC,CAAC,EAAEC,UAAU,GAAG,CAAC,CAAC,EAAEA,UAAU;IAE9C,KAAAC,gBAAgB,GAAG,CAACF,UAA+B,EAAEnkC,YAAoB,KACvE,IAAI,CAACkkC,iBAAiB,CAACC,UAAU,CAAC,EAAExiC,MAAM,CAAC2iC,YAAY,IAAIA,YAAY,CAAC3pD,GAAG,KAAK,MAAMqlB,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;IAE5G,KAAAukC,eAAe,GAAG,CAACJ,UAA+B,EAAEnkC,YAAoB,KACtE,IAAI,CAACqkC,gBAAgB,CAACF,UAAU,EAAEnkC,YAAY,CAAC,EAAEokC,UAAU;IAE7D,KAAAI,cAAc,GAAG,CAACL,UAA+B,EAAEnkC,YAAoB,EAAEC,UAAkB,KACzF,IAAI,CAACskC,eAAe,CAACJ,UAAU,EAAEnkC,YAAY,CAAC,EAAE2B,MAAM,CAAC8iC,UAAU,IAAIA,UAAU,CAAC9pD,GAAG,KAAK,OAAOslB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;IAEnH,KAAAykC,kBAAkB,GAAG,CAACP,UAA+B,EAAEnkC,YAAoB,EAAEC,UAAkB,KAAyB;MACtH,MAAMwkC,UAAU,GAAG,IAAI,CAACD,cAAc,CAACL,UAAU,EAAEnkC,YAAY,EAAEC,UAAU,CAAC;MAC5E,OAAQwkC,UAAU,EAAEE,UAAgC,EAAEP,UAAU,IAAIK,UAAU,EAAEL,UAAU;IAC5F,CAAC;IAED,KAAAQ,iBAAiB,GAAG,CAACT,UAA+B,EAAEnkC,YAAoB,EAAEC,UAAkB,EAAEC,WAAmB,KACjH,IAAI,CAACwkC,kBAAkB,CAACP,UAAU,EAAEnkC,YAAY,EAAEC,UAAU,CAAC,EAAE0B,MAAM,CAACkjC,aAAa,IAAIA,aAAa,CAAClqD,GAAG,KAAKulB,WAAW,CAAC,GAAG,CAAC,CAAC;IAEhI,KAAA4kC,mBAAmB,GAAG,CAACX,UAA+B,EAAEnkC,YAAoB,EAAEC,UAAkB,EAAEC,WAAmB,KAAyB;MAC5I,MAAM2kC,aAAa,GAAG,IAAI,CAACD,iBAAiB,CAACT,UAAU,EAAEnkC,YAAY,EAAEC,UAAU,EAAEC,WAAW,CAAC;MAC/F,OAAQ2kC,aAAa,EAAEF,UAAgC,EAAEP,UAAU,IAAIS,aAAa,EAAET,UAAU;IAClG,CAAC;IAED,KAAAW,kBAAkB,GAAG,CAACZ,UAA+B,EAAEnkC,YAAoB,EAAEC,UAAkB,EAAEC,WAAmB,EAAElI,YAAoB,KACxI,IAAI,CAAC8sC,mBAAmB,CAACX,UAAU,EAAEnkC,YAAY,EAAEC,UAAU,EAAEC,WAAW,CAAC,EAAEyB,MAAM,CAACqjC,cAAc,IAAIA,cAAc,CAACrqD,GAAG,KAAKqd,YAAY,CAAC,GAAG,CAAC,CAAC;;EAClJ,QAAAtuB,CAAA;qBA7BYu6D,8BAA8B;EAAA;EAAA,QAAAt6D,EAAA;WAA9Bs6D,8BAA8B;IAAAtX,OAAA,EAA9BsX,8BAA8B,CAAArX,IAAA;IAAAC,UAAA,EAF7B;EAAM;;;;;;;;;;;;;;;;;;;;;;;ACDQ;AAE8D;AAEiC;;;;;;AASrH,MAAO/qC,eAAe;EAI1BzX,YACUI,WAAwB,EACxByO,iBAAoC,EACpC+rD,8BAA8D,EAC9DhsD,qBAA4C,EAC5CD,aAA4B;IAJ5B,KAAAvO,WAAW,GAAXA,WAAW;IACX,KAAAyO,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAA+rD,8BAA8B,GAA9BA,8BAA8B;IAC9B,KAAAhsD,qBAAqB,GAArBA,qBAAqB;IACrB,KAAAD,aAAa,GAAbA,aAAa;IAPvB,KAAA+wC,OAAO,GAA2B,EAAE;EAQpC;EAEQmb,cAAcA,CAAIC,eAAoC,EAAEC,WAAmB,EAAEC,YAAA,GAAkB,IAAI,EAAEC,cAAA,GAA0B,IAAI;IACzI,MAAM5qD,KAAK,GAAGyqD,eAAe,CAAC5X,IAAI,CAACgY,CAAC,IAAIA,CAAC,CAAC5qD,GAAG,KAAKyqD,WAAW,CAAC;IAC9D,MAAMvlC,KAAK,GAAInlB,KAAK,IAAI,IAAI,CAACjQ,WAAW,CAAC+6D,aAAa,CAAC9qD,KAAK,CAAiB,IAAK2qD,YAAY;IAC9F,OAAQC,cAAc,IAAK,OAAOzlC,KAAK,KAAK,QAAS,GAAK,IAAI,CAAC3mB,iBAAiB,CAACm3C,aAAa,CAACxwB,KAAK,CAAO,GAAGA,KAAK;EACrH;EAEQ4lC,cAAcA,CAACN,eAAoC,EAAEC,WAAmB,EAAEC,YAAA,GAAuB,IAAI,EAAEC,cAAA,GAA0B,IAAI;IAC3I,MAAM5qD,KAAK,GAAGyqD,eAAe,CAAC5X,IAAI,CAACgY,CAAC,IAAIA,CAAC,CAAC5qD,GAAG,KAAKyqD,WAAW,CAAC;IAC9D,MAAMtB,KAAK,GAAGppD,KAAK,EAAEgrD,KAAK,EAAE5B,KAAK,IAAIuB,YAAY;IACjD,OAAOC,cAAc,GAAI,IAAI,CAACpsD,iBAAiB,CAACm3C,aAAa,CAACyT,KAAK,CAAY,GAAGA,KAAK;EACzF;EAEQ6B,YAAYA,CAAC1C,MAAgH;IACnI,OAAO;;UAED,IAAI,CAAC2C,iBAAiB,CAAC3C,MAAM,CAACvqB,KAAK,CAAC;UACpCuqB,MAAM,CAACtkD,MAAM,CAACiH,GAAG,CAAClL,KAAK,IAAI,IAAI,CAACmrD,iBAAiB,CAACnrD,KAAK,CAAC,CAAC,CAACo5C,IAAI,CAAC,EAAE,CAAE;;KAExE;EACH;EAEQ8R,iBAAiBA,CAACltB,KAAyD;IACjF,OAAO,UAAUA,KAAK,CAAC/gC,IAAI,SAAU+gC,KAAK,CAAC6P,QAAQ,GAAG7P,KAAK,CAAC7Y,KAAK,GAAG,MAAM6Y,KAAK,CAAC7Y,KAAK,iBAAiB,OAAQ;EAChH;EAEQgmC,iBAAiBA,CAACnrD,KAAsC;IAC9D,OAAO,SAASA,KAAK,CAAC/C,IAAI,SAAS+C,KAAK,CAACmlB,KAAK,MAAM;EACtD;EAEQimC,iBAAiBA,CAACnlD,OAAe,EAAEsiD,MAAc,EAAEjzC,UAAqC;IAC9F,IAAI,CAAChX,aAAa,CACfyV,eAAe,CAAC9N,OAAO,EAAEsiD,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAChD3yD,IAAI,CAACrG,0CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAEopB,YAA0B,IAAKtE,UAAU,CAACsE,YAAY,KAAK/D,mDAAY,CAAC6F,QAAQ,CAAC,CAAC;EAClG;EAEQ2vC,wBAAwBA,CAACC,eAAuB,EAAEC,WAAgC,EAAEC,SAAkB;IAC5G,MAAMC,aAAa,GAAGH,eAAe,GAChCE,SAAS,KAAK,IAAI,IAAIA,SAAS,KAAKnJ,SAAS,GAC5C,GAAGiJ,eAAe,IAAIC,WAAW,IAAIC,SAAS,EAAE,GAChD,GAAGF,eAAe,IAAIC,WAAW,EAAE,GACrC,IAAI;IACR,OAAOE,aAAa;EACtB;EAEQC,cAAcA,CAACjC,UAA+B,EAAEkC,QAAkB;IACxE,MAAM5B,UAAU,GAAG,IAAI,CAACQ,8BAA8B,CAACT,cAAc,CAACL,UAAU,EAAE,GAAGkC,QAAQ,CAAC;IAC9F,MAAMC,WAAW,GAAG7B,UAAU,EAAE1qD,EAAE;IAClC,OAAOusD,WAAW;EACpB;EAEQC,iBAAiBA,CAACpC,UAA+B,EAAE/gD,WAAwB;IACjF,MAAMyhD,aAAa,GAAG,IAAI,CAACI,8BAA8B,CAACL,iBAAiB,CAACT,UAAU,EAAE,GAAG/gD,WAAW,CAAC;IACvG,MAAMojD,cAAc,GAAG3B,aAAa,EAAE9qD,EAAE;IACxC,OAAOysD,cAAc;EACvB;EAEAC,4BAA4BA,CAACtC,UAA+B,EAAEkC,QAAkB,EAAEJ,WAAgC,EAAEC,SAAkB;IACpI,MAAMI,WAAW,GAAG,IAAI,CAACF,cAAc,CAACjC,UAAU,EAAEkC,QAAQ,CAAC;IAC7D,MAAMF,aAAa,GAAG,IAAI,CAACJ,wBAAwB,CAACO,WAAW,EAAEL,WAAW,EAAEC,SAAS,CAAC;IACxF,OAAOC,aAAa;EACtB;EAEA1wC,+BAA+BA,CAAC0uC,UAA+B,EAAE/gD,WAAwB,EAAE6iD,WAAgC,EAAEC,SAAkB;IAC7I,MAAMM,cAAc,GAAG,IAAI,CAACD,iBAAiB,CAACpC,UAAU,EAAE/gD,WAAW,CAAC;IACtE,MAAM+iD,aAAa,GAAG,IAAI,CAACJ,wBAAwB,CAACS,cAAc,EAAEP,WAAW,EAAEC,SAAS,CAAC;IAC3F,OAAOC,aAAa;EACtB;EAEA;EAEAhzC,yBAAyBA,CACvBpnB,aAAwC,EACxC0S,cAA6B,EAC7BioD,iBAAgC,EAChCC,WAAuC,EACvCC,WAA0B,EAC1BvzC,4BAA2C,EAC3CC,kBAA8B,EAC9BC,kBAA8B;IAE9B,IAAI,CAAC9oB,WAAW,CAACwD,oBAAoB,CAAC,8BAA8B,CAAC,GAAG,MAAM04D,WAAW,CAAC,IAAI,CAAC;IAC/F,IAAI,CAACl8D,WAAW,CAACwD,oBAAoB,CAAC,+BAA+B,CAAC,GAAG,MAAM04D,WAAW,CAAC,KAAK,CAAC;IACjG,IAAI,CAACl8D,WAAW,CAACwD,oBAAoB,CAAC,wCAAwC,CAAC,GAAG,MAAMwQ,cAAc,EAAE,IAAIioD,iBAAiB,EAAE,IAAI,CAACE,WAAW,EAAE;IACjJ,IAAI,CAACn8D,WAAW,CAACwD,oBAAoB,CAAC,yCAAyC,CAAC,GAAG,MAAMwQ,cAAc,EAAE,IAAIioD,iBAAiB,EAAE,IAAIE,WAAW,EAAE;IAEjJ,IAAI,CAACn8D,WAAW,CAACwD,oBAAoB,CAAC,8BAA8B,CAAC,GAAG,MAAMwQ,cAAc,EAAE,IAAI4U,4BAA4B,EAAE;IAChI,IAAI,CAAC5oB,WAAW,CAACwD,oBAAoB,CAAC,8BAA8B,CAAC,GAAG,MAAMwQ,cAAc,EAAE,IAAI4U,4BAA4B,EAAE;IAChI,IAAI,CAAC5oB,WAAW,CAACwD,oBAAoB,CAAC,oBAAoB,CAAC,GAAG,MAAMqlB,kBAAkB,EAAE;IACxF,IAAI,CAAC7oB,WAAW,CAACwD,oBAAoB,CAAC,oBAAoB,CAAC,GAAG,MAAMslB,kBAAkB,EAAE;IAExF,IAAI,CAAC9oB,WAAW,CAAC0D,aAAa,CAAC,0BAA0B,CAAC,GACvDs2D,UAA6B,IAAKiC,iBAAiB,EAAE,IAAIE,WAAW,EAAE;IAEzE,IAAI,CAACn8D,WAAW,CAAC0D,aAAa,CAAC,2CAA2C,CAAC,GACzE,CAACs2D,UAA6B,EAAEI,aAAgC,KAAKA,aAAa,CAAClqD,GAAG,KAAK2C,uEAAY,CAACuK,QAAQ,CAACq/B,eAAe;IAElI,IAAI,CAACz8C,WAAW,CAAC0D,aAAa,CAAC,qCAAqC,CAAC,GACnE,CAACs2D,UAA6B,EAAEI,aAAgC,EAAEzmD,YAAoB,EAAE+mD,eAAoC,KAAI;MAE9H,MAAM0B,sCAAsC,GAAG,IAAI,CAAC5B,8BAA8B,CAACH,mBAAmB,CACpG/4D,aAAa,GAAE,CAAE,EACjBuM,wEAAa,CAACuP,QAAQ,CAACgf,WAAW,EAClCtuB,sEAAW,CAACsP,QAAQ,CAACo/B,OAAO,EAC5B3pC,uEAAY,CAACuK,QAAQ,CAACs/B,uBAAuB,CAAC,IAC3C,EAAE;MACP,MAAM2f,0BAA0B,GAAG,IAAI,CAAC7B,8BAA8B,CAACH,mBAAmB,CACxF/4D,aAAa,GAAE,CAAE,EACjBuM,wEAAa,CAACuP,QAAQ,CAACgf,WAAW,EAClCtuB,sEAAW,CAACsP,QAAQ,CAACo/B,OAAO,EAC5B3pC,uEAAY,CAACuK,QAAQ,CAACgf,WAAW,CAAC,IAC/B,EAAE;MAEP,MAAM59B,YAAY,GAAG,IAAI,CAACi8D,cAAc,CAAS2B,sCAAsC,EAAEruD,wEAAa,CAACqP,QAAQ,CAACigC,gBAAgB,EAAE,EAAE,CAAC;MACrI,MAAM4F,SAAS,GAAG,IAAI,CAACwX,cAAc,CAAS4B,0BAA0B,EAAEtuD,wEAAa,CAACqP,QAAQ,CAACmgC,aAAa,EAAE,EAAE,CAAC;MACnH,MAAM2F,UAAU,GAAG,IAAI,CAACuX,cAAc,CAAS4B,0BAA0B,EAAEtuD,wEAAa,CAACqP,QAAQ,CAACkgC,cAAc,EAAE,EAAE,CAAC;MACrH,MAAMh0B,KAAK,GAAG,IAAI,CAACmxC,cAAc,CAAS4B,0BAA0B,EAAEtuD,wEAAa,CAACqP,QAAQ,CAAC40B,SAAS,EAAE,EAAE,CAAC;MAE3G,MAAM/D,KAAK,GAAG;QAAE/gC,IAAI,EAAE,MAAM;QAAEkoB,KAAK,EAAE,GAAG6tB,SAAS,IAAIC,UAAU,EAAE;QAAEpF,QAAQ,EAAE;MAAI,CAAE;MACnF,MAAM5pC,MAAM,GAAG,CACb;QAAEhH,IAAI,EAAE,OAAO;QAAEkoB,KAAK,EAAE9L;MAAK,CAAE,EAC/B;QAAEpc,IAAI,EAAE,cAAc;QAAEkoB,KAAK,EAAE52B;MAAY,CAAE,CAC9C;MACD,OAAO,IAAI,CAAC08D,YAAY,CAAC;QAAEjtB,KAAK;QAAE/5B;MAAM,CAAE,CAAC;IAC7C,CAAC;EACL;EAEAiV,iCAAiCA,CAC/BnV,cAA6B,EAC7BiV,iBAAkD,EAClDC,0BAA2D,EAC3DE,iBAA8C,EAC9CkzC,gBAAoF;IAEpF,IAAI,CAACt8D,WAAW,CAAC4D,yBAAyB,CAAC,0BAA0B,CAAC,GAAG,CAAC63D,SAAiB,EAAEl2C,UAAqC,KAAU;MAC1I,IAAI0D,iBAAiB,CAACwyC,SAAS,CAAC,EAAE;QAChC;QACA;QACAl2C,UAAU,CAAC,KAAK,CAAC;QACjB;;MAEF+2C,gBAAgB,CAACb,SAAS,EAAEl2C,UAAU,CAAC;IACzC,CAAC;IAED,MAAMg3C,uCAAuC,GAAGA,CAAA,KAAMvoD,cAAc,EAAE;IACtE,IAAI,CAAChU,WAAW,CAAC4D,yBAAyB,CAAC,mCAAmC,CAAC,GAAI63D,SAAkB,IAAcc,uCAAuC,EAAE;IAC5J,IAAI,CAACv8D,WAAW,CAAC4D,yBAAyB,CAAC,oCAAoC,CAAC,GAAI63D,SAAkB,IAAcc,uCAAuC,EAAE,IAAItzC,iBAAiB,CAACwyC,SAAS,CAAC;IAC7L,IAAI,CAACz7D,WAAW,CAAC4D,yBAAyB,CAAC,oCAAoC,CAAC,GAAI63D,SAAkB,IAAcc,uCAAuC,EAAE;IAC7J,IAAI,CAACv8D,WAAW,CAAC4D,yBAAyB,CAAC,sCAAsC,CAAC,GAAI63D,SAAkB,IAAcc,uCAAuC,EAAE;IAE/J,IAAI,CAACv8D,WAAW,CAAC4D,yBAAyB,CAAC,sCAAsC,CAAC,GAAI63D,SAAkB,IAAcvyC,0BAA0B,CAACuyC,SAAS,CAAC;IAE3J,IAAI,CAACz7D,WAAW,CAAC4D,yBAAyB,CAAC,mBAAmB,CAAC,GAAI63D,SAAiB,IAAWryC,iBAAiB,CAACqyC,SAAS,CAAC;EAC7H;EAEA1yC,qCAAqCA,CACnCyzC,yBAAqC,EACrCC,wCAAoD,EACpDC,kCAA8C,EAC9CC,oCAAgD,EAChDC,kCAA8C;IAE9C,IAAI,CAAC58D,WAAW,CAACwD,oBAAoB,CAAC,2BAA2B,CAAC,GAAG,MAAMg5D,yBAAyB,EAAE;IACtG,IAAI,CAACx8D,WAAW,CAACwD,oBAAoB,CAAC,0CAA0C,CAAC,GAAG,MAAMi5D,wCAAwC,EAAE;IACpI,IAAI,CAACz8D,WAAW,CAACwD,oBAAoB,CAAC,oCAAoC,CAAC,GAAG,MAAMk5D,kCAAkC,EAAE;IACxH,IAAI,CAAC18D,WAAW,CAACwD,oBAAoB,CAAC,sCAAsC,CAAC,GAAG,MAAMm5D,oCAAoC,EAAE;IAC5H,IAAI,CAAC38D,WAAW,CAACwD,oBAAoB,CAAC,oCAAoC,CAAC,GAAG,MAAMo5D,kCAAkC,EAAE;EAC1H;EAEA16B,iCAAiCA,CAC/B5gC,aAAwC,EACxC0S,cAA6B,EAC7BioD,iBAAgC,EAChCC,WAAuC,EACvCC,WAA0B;IAE1B,IAAI,CAACn8D,WAAW,CAACwD,oBAAoB,CAAC,0BAA0B,CAAC,GAAG,MAAM04D,WAAW,CAAC,IAAI,CAAC;IAC3F,IAAI,CAACl8D,WAAW,CAACwD,oBAAoB,CAAC,2BAA2B,CAAC,GAAG,MAAM04D,WAAW,CAAC,KAAK,CAAC;IAC7F,IAAI,CAACl8D,WAAW,CAACwD,oBAAoB,CAAC,oCAAoC,CAAC,GAAG,MAAMwQ,cAAc,EAAE,IAAIioD,iBAAiB,EAAE,IAAI,CAACE,WAAW,EAAE;IAC7I,IAAI,CAACn8D,WAAW,CAACwD,oBAAoB,CAAC,qCAAqC,CAAC,GAAG,MAAMwQ,cAAc,EAAE,IAAIioD,iBAAiB,EAAE,IAAIE,WAAW,EAAE;IAE7I,IAAI,CAACn8D,WAAW,CAAC0D,aAAa,CAAC,sBAAsB,CAAC,GACnDs2D,UAA6B,IAAKiC,iBAAiB,EAAE,IAAIE,WAAW,EAAE;IAEzE,IAAI,CAACn8D,WAAW,CAAC0D,aAAa,CAAC,uCAAuC,CAAC,GACrE,CAACs2D,UAA6B,EAAEI,aAAgC,KAAKA,aAAa,CAAClqD,GAAG,KAAK2C,uEAAY,CAACwvB,gBAAgB,CAAC0a,uBAAuB;IAElJ,IAAI,CAAC/8C,WAAW,CAAC0D,aAAa,CAAC,iCAAiC,CAAC,GAC/D,CAACs2D,UAA6B,EAAEI,aAAgC,EAAEzmD,YAAoB,EAAE+mD,eAAoC,KAAI;MAE9H,MAAMmC,sBAAsB,GAAG,IAAI,CAACrC,8BAA8B,CAACH,mBAAmB,CACpF/4D,aAAa,GAAE,CAAE,EACjBuM,wEAAa,CAACw0B,gBAAgB,CAAC6Z,mBAAmB,EAClDpuC,sEAAW,CAACu0B,gBAAgB,CAAC6Z,mBAAmB,EAChDrpC,uEAAY,CAACwvB,gBAAgB,CAAC6Z,mBAAmB,CAAC,IAC/C,EAAE;MAEP,MAAMhvC,IAAI,GAAG,IAAI,CAACutD,cAAc,CAASoC,sBAAsB,EAAE9uD,wEAAa,CAACs0B,gBAAgB,CAACn1B,IAAI,EAAE,EAAE,CAAC;MACzG,MAAM8wC,qBAAqB,GAAG,IAAI,CAACyc,cAAc,CAASoC,sBAAsB,EAAE9uD,wEAAa,CAACs0B,gBAAgB,CAAC2b,qBAAqB,EAAE,EAAE,CAAC;MAC3I,MAAMC,+BAA+B,GAAG,IAAI,CAACwc,cAAc,CAASoC,sBAAsB,EAAE9uD,wEAAa,CAACs0B,gBAAgB,CAAC4b,+BAA+B,EAAE,EAAE,CAAC;MAC/J,MAAMH,QAAQ,GAAG,IAAI,CAAC2c,cAAc,CAAUoC,sBAAsB,EAAE9uD,wEAAa,CAACs0B,gBAAgB,CAACyb,QAAQ,EAAE,IAAI,CAAC;MAEpH,MAAM7P,KAAK,GAAG;QAAE/gC,IAAI,EAAE,cAAc;QAAEkoB,KAAK,EAAEloB,IAAI;QAAE4wC,QAAQ,EAAEA;MAAQ,CAAE;MACvE,MAAM5pC,MAAM,GAAG,CACb;QAAEhH,IAAI,EAAE,0BAA0B;QAAEkoB,KAAK,EAAE4oB;MAAqB,CAAE,EAClE;QAAE9wC,IAAI,EAAE,qCAAqC;QAAEkoB,KAAK,EAAE6oB;MAA+B,CAAE,CACxF;MACD,OAAO,IAAI,CAACid,YAAY,CAAC;QAAEjtB,KAAK;QAAE/5B;MAAM,CAAE,CAAC;IAC7C,CAAC;EACL;EAEAkuB,yCAAyCA,CACvCpuB,cAA6B,EAC7BguB,kCAAiD,EACjDC,0BAAyC,EACzCxhB,yBAA4D;IAE5D,IAAI,CAACzgB,WAAW,CAAC4D,yBAAyB,CAAC,+BAA+B,CAAC,GAAG,CAAC63D,SAAiB,EAAEl2C,UAAqC,KACrI,IAAI,CAAC81C,iBAAiB,CAAC,wDAAwD,EAAE,yBAAyB,EAAE91C,UAAU,CAAC;IAEzH,IAAI,CAACvlB,WAAW,CAAC4D,yBAAyB,CAAC,wCAAwC,CAAC,GAAG,CAAC63D,SAAiB,EAAEl2C,UAAqC,KAC9I,IAAI,CAAC81C,iBAAiB,CACpB;;;SAGC,EACD,mCAAmC,EACnC91C,UAAU,CAAC;IAEf,IAAI,CAACvlB,WAAW,CAAC4D,yBAAyB,CAAC,gCAAgC,CAAC,GAAG,CAAC63D,SAAiB,EAAEl2C,UAAqC,KACtI,IAAI,CAAC81C,iBAAiB,CAAC,mDAAmD,EAAE,oBAAoB,EAAE91C,UAAU,CAAC;IAE/G,MAAMu3C,gCAAgC,GAAGA,CAAA,KAAM9oD,cAAc,EAAE;IAC/D,IAAI,CAAChU,WAAW,CAAC4D,yBAAyB,CAAC,6BAA6B,CAAC,GAAI63D,SAAkB,IAAcqB,gCAAgC,EAAE;IAC/I,IAAI,CAAC98D,WAAW,CAAC4D,yBAAyB,CAAC,8BAA8B,CAAC,GAAI63D,SAAkB,IAAcqB,gCAAgC,EAAE;IAChJ,IAAI,CAAC98D,WAAW,CAAC4D,yBAAyB,CAAC,8BAA8B,CAAC,GAAI63D,SAAkB,IAAcqB,gCAAgC,EAAE;IAChJ,IAAI,CAAC98D,WAAW,CAAC4D,yBAAyB,CAAC,gCAAgC,CAAC,GAAI63D,SAAkB,IAAcqB,gCAAgC,EAAE;IAElJ,MAAMC,yCAAyC,GAAGA,CAAA,KAAM/oD,cAAc,EAAE,IAAI,CAACguB,kCAAkC,EAAE;IACjH,IAAI,CAAChiC,WAAW,CAAC4D,yBAAyB,CAAC,sCAAsC,CAAC,GAAI63D,SAAkB,IAAcsB,yCAAyC,EAAE;IACjK,IAAI,CAAC/8D,WAAW,CAAC4D,yBAAyB,CAAC,uCAAuC,CAAC,GAAI63D,SAAkB,IAAcsB,yCAAyC,EAAE;IAClK,IAAI,CAAC/8D,WAAW,CAAC4D,yBAAyB,CAAC,uCAAuC,CAAC,GAAI63D,SAAkB,IAAcsB,yCAAyC,EAAE;IAClK,IAAI,CAAC/8D,WAAW,CAAC4D,yBAAyB,CAAC,yCAAyC,CAAC,GAAI63D,SAAkB,IAAcsB,yCAAyC,EAAE;IAEpK,MAAMC,iCAAiC,GAAGA,CAAA,KAAMhpD,cAAc,EAAE,IAAI,CAACiuB,0BAA0B,EAAE;IACjG,IAAI,CAACjiC,WAAW,CAAC4D,yBAAyB,CAAC,8BAA8B,CAAC,GAAI63D,SAAkB,IAAcuB,iCAAiC,EAAE;IACjJ,IAAI,CAACh9D,WAAW,CAAC4D,yBAAyB,CAAC,+BAA+B,CAAC,GAAI63D,SAAkB,IAAcuB,iCAAiC,EAAE;IAClJ,IAAI,CAACh9D,WAAW,CAAC4D,yBAAyB,CAAC,+BAA+B,CAAC,GAAI63D,SAAkB,IAAcuB,iCAAiC,EAAE,IAAI,CAACv8C,yBAAyB,CAACg7C,SAAS,CAAC;IAC3L,IAAI,CAACz7D,WAAW,CAAC4D,yBAAyB,CAAC,iCAAiC,CAAC,GAAI63D,SAAkB,IAAcuB,iCAAiC,EAAE;EACtJ;EAEA76B,6CAA6CA,CAC3C86B,4BAAwC;IAExC,IAAI,CAACj9D,WAAW,CAACwD,oBAAoB,CAAC,8BAA8B,CAAC,GAAG,MAAMy5D,4BAA4B,EAAE;EAC9G;EAEA74B,kCAAkCA,CAChC9iC,aAAwC,EACxC0S,cAA6B,EAC7BioD,iBAAgC,EAChCC,WAAuC,EACvCC,WAA0B;IAE1B,IAAI,CAACn8D,WAAW,CAACwD,oBAAoB,CAAC,2BAA2B,CAAC,GAAG,MAAM04D,WAAW,CAAC,IAAI,CAAC;IAC5F,IAAI,CAACl8D,WAAW,CAACwD,oBAAoB,CAAC,4BAA4B,CAAC,GAAG,MAAM04D,WAAW,CAAC,KAAK,CAAC;IAC9F,IAAI,CAACl8D,WAAW,CAACwD,oBAAoB,CAAC,qCAAqC,CAAC,GAAG,MAAMwQ,cAAc,EAAE,IAAIioD,iBAAiB,EAAE,IAAI,CAACE,WAAW,EAAE;IAC9I,IAAI,CAACn8D,WAAW,CAACwD,oBAAoB,CAAC,sCAAsC,CAAC,GAAG,MAAMwQ,cAAc,EAAE,IAAIioD,iBAAiB,EAAE,IAAIE,WAAW,EAAE;IAE9I,IAAI,CAACn8D,WAAW,CAAC0D,aAAa,CAAC,uBAAuB,CAAC,GACpDs2D,UAA6B,IAAKiC,iBAAiB,EAAE,IAAIE,WAAW,EAAE;IAEzE,IAAI,CAACn8D,WAAW,CAAC0D,aAAa,CAAC,wCAAwC,CAAC,GACtE,CAACs2D,UAA6B,EAAEI,aAAgC,KAAKA,aAAa,CAAClqD,GAAG,KAAK2C,uEAAY,CAACyxB,iBAAiB,CAAC0Y,mBAAmB;IAE/I,IAAI,CAACh9C,WAAW,CAAC0D,aAAa,CAAC,kCAAkC,CAAC,GAChE,CAACs2D,UAA6B,EAAEI,aAAgC,EAAEzmD,YAAoB,EAAE+mD,eAAoC,KAAI;MAE9H,MAAMwC,gCAAgC,GAAG,IAAI,CAAC1C,8BAA8B,CAACH,mBAAmB,CAC9F/4D,aAAa,GAAE,CAAE,EACjBuM,wEAAa,CAACy2B,iBAAiB,CAAC+X,eAAe,EAC/CvuC,sEAAW,CAACw2B,iBAAiB,CAAC+X,eAAe,EAC7CxpC,uEAAY,CAACyxB,iBAAiB,CAAC+X,eAAe,CAAC,IAC5C,EAAE;MAEP,MAAMsK,IAAI,GAAG,IAAI,CAAC8T,cAAc,CAASyC,gCAAgC,EAAEnvD,wEAAa,CAACu2B,iBAAiB,CAAC4Z,qBAAqB,EAAE,EAAE,CAAC;MACrI,MAAMJ,QAAQ,GAAG,IAAI,CAAC2c,cAAc,CAAUyC,gCAAgC,EAAEnvD,wEAAa,CAACu2B,iBAAiB,CAAC6Z,yBAAyB,EAAE,IAAI,CAAC;MAEhJ,MAAMlQ,KAAK,GAAG;QAAE/gC,IAAI,EAAE,gBAAgB;QAAEkoB,KAAK,EAAEuxB,IAAI;QAAE7I,QAAQ,EAAEA;MAAQ,CAAE;MACzE,MAAM5pC,MAAM,GAAG,EAAE;MACjB,OAAO,IAAI,CAACgnD,YAAY,CAAC;QAAEjtB,KAAK;QAAE/5B;MAAM,CAAE,CAAC;IAC7C,CAAC;EACL;EAEAmwB,0CAA0CA,CACxCrwB,cAA6B,EAC7BmpD,mBAAoD;IAEpD,MAAMC,6BAA6B,GAAGA,CAAA,KAAMppD,cAAc,EAAE;IAC5D,IAAI,CAAChU,WAAW,CAAC4D,yBAAyB,CAAC,2BAA2B,CAAC,GAAI63D,SAAkB,IAAc2B,6BAA6B,EAAE;IAC1I,IAAI,CAACp9D,WAAW,CAAC4D,yBAAyB,CAAC,4BAA4B,CAAC,GAAI63D,SAAkB,IAAc2B,6BAA6B,EAAE;IAC3I,IAAI,CAACp9D,WAAW,CAAC4D,yBAAyB,CAAC,4BAA4B,CAAC,GAAI63D,SAAkB,IAAc2B,6BAA6B,EAAE;IAC3I,IAAI,CAACp9D,WAAW,CAAC4D,yBAAyB,CAAC,8BAA8B,CAAC,GAAI63D,SAAkB,IAAc2B,6BAA6B,EAAE,IAAID,mBAAmB,CAAC1B,SAAS,CAAC;EACjL;EAEA76C,gCAAgCA,CAC9Btf,aAAwC,EACxC0S,cAA6B,EAC7BioD,iBAAgC,EAChCC,WAAuC,EACvCC,WAA0B;IAE1B,IAAI,CAACn8D,WAAW,CAACwD,oBAAoB,CAAC,qCAAqC,CAAC,GAAG,MAAM04D,WAAW,CAAC,IAAI,CAAC;IACtG,IAAI,CAACl8D,WAAW,CAACwD,oBAAoB,CAAC,sCAAsC,CAAC,GAAG,MAAM04D,WAAW,CAAC,KAAK,CAAC;IACxG,IAAI,CAACl8D,WAAW,CAACwD,oBAAoB,CAAC,+CAA+C,CAAC,GAAG,MAAMwQ,cAAc,EAAE,IAAIioD,iBAAiB,EAAE,IAAI,CAACE,WAAW,EAAE;IACxJ,IAAI,CAACn8D,WAAW,CAACwD,oBAAoB,CAAC,gDAAgD,CAAC,GAAG,MAAMwQ,cAAc,EAAE,IAAIioD,iBAAiB,EAAE,IAAIE,WAAW,EAAE;IAExJ,IAAI,CAACn8D,WAAW,CAAC0D,aAAa,CAAC,iCAAiC,CAAC,GAC9Ds2D,UAA6B,IAAKiC,iBAAiB,EAAE,IAAIE,WAAW,EAAE;IAEzE,IAAI,CAACn8D,WAAW,CAAC0D,aAAa,CAAC,kDAAkD,CAAC,GAChF,CAACs2D,UAA6B,EAAEI,aAAgC,KAAKA,aAAa,CAAClqD,GAAG,KAAK2C,uEAAY,CAACiO,eAAe,CAAC+7B,sBAAsB;IAEhJ,IAAI,CAAC78C,WAAW,CAAC0D,aAAa,CAAC,4CAA4C,CAAC,GAC1E,CAACs2D,UAA6B,EAAEI,aAAgC,EAAEzmD,YAAoB,EAAE+mD,eAAoC,KAAI;MAE9H,MAAM2C,iCAAiC,GAAG,IAAI,CAAC7C,8BAA8B,CAACH,mBAAmB,CAC/F/4D,aAAa,GAAE,CAAE,EACjBuM,wEAAa,CAACiT,eAAe,CAACk7B,kBAAkB,EAChDluC,sEAAW,CAACgT,eAAe,CAACk7B,kBAAkB,EAC9CnpC,uEAAY,CAACiO,eAAe,CAACk7B,kBAAkB,CAAC,IAC7C,EAAE;MAEP,MAAMhvB,eAAe,GAAG,IAAI,CAACytC,cAAc,CAAS4C,iCAAiC,EAAEtvD,wEAAa,CAAC+S,eAAe,CAACkM,eAAe,EAAE,EAAE,CAAC;MACzI,MAAM7d,YAAY,GAAG,IAAI,CAACsrD,cAAc,CAAS4C,iCAAiC,EAAEtvD,wEAAa,CAAC+S,eAAe,CAAC3R,YAAY,EAAE,EAAE,CAAC;MACnI,MAAM0uC,kBAAkB,GAAG,IAAI,CAAC4c,cAAc,CAAS4C,iCAAiC,EAAEtvD,wEAAa,CAAC+S,eAAe,CAAC+8B,kBAAkB,EAAE,EAAE,CAAC;MAC/I,MAAMC,QAAQ,GAAG,IAAI,CAAC2c,cAAc,CAAU4C,iCAAiC,EAAEtvD,wEAAa,CAAC+S,eAAe,CAACg9B,QAAQ,EAAE,IAAI,CAAC;MAE9H,MAAM7P,KAAK,GAAG;QAAE/gC,IAAI,EAAE,aAAa;QAAEkoB,KAAK,EAAEpI,eAAe;QAAE8wB,QAAQ,EAAEA;MAAQ,CAAE;MACjF,MAAM5pC,MAAM,GAAG,CACb;QAAEhH,IAAI,EAAE,cAAc;QAAEkoB,KAAK,EAAEjmB;MAAY,CAAE,EAC7C;QAAEjC,IAAI,EAAE,qBAAqB;QAAEkoB,KAAK,EAAEyoB;MAAkB,CAAE,CAC3D;MACD,OAAO,IAAI,CAACqd,YAAY,CAAC;QAAEjtB,KAAK;QAAE/5B;MAAM,CAAE,CAAC;IAC7C,CAAC;EACL;EAEA2M,wCAAwCA,CACtC7M,cAA6B;IAE7B,IAAI,CAAChU,WAAW,CAAC4D,yBAAyB,CAAC,+BAA+B,CAAC,GAAG,CAAC63D,SAAiB,EAAEl2C,UAAqC,KACrI,IAAI,CAAC81C,iBAAiB,CAAC,uDAAuD,EAAE,wBAAwB,EAAE91C,UAAU,CAAC;IAEvH,IAAI,CAACvlB,WAAW,CAAC4D,yBAAyB,CAAC,gCAAgC,CAAC,GAAG,CAAC63D,SAAiB,EAAEl2C,UAAqC,KACtI,IAAI,CAAC81C,iBAAiB,CAAC,qDAAqD,EAAE,sBAAsB,EAAE91C,UAAU,CAAC;IAEnH,MAAM+3C,+BAA+B,GAAGA,CAAA,KAAMtpD,cAAc,EAAE;IAC9D,IAAI,CAAChU,WAAW,CAAC4D,yBAAyB,CAAC,4BAA4B,CAAC,GAAI63D,SAAkB,IAAc6B,+BAA+B,EAAE;IAC7I,IAAI,CAACt9D,WAAW,CAAC4D,yBAAyB,CAAC,6BAA6B,CAAC,GAAI63D,SAAkB,IAAc6B,+BAA+B,EAAE;IAC9I,IAAI,CAACt9D,WAAW,CAAC4D,yBAAyB,CAAC,6BAA6B,CAAC,GAAI63D,SAAkB,IAAc6B,+BAA+B,EAAE;IAC9I,IAAI,CAACt9D,WAAW,CAAC4D,yBAAyB,CAAC,+BAA+B,CAAC,GAAI63D,SAAkB,IAAc6B,+BAA+B,EAAE;IAEhJ,MAAMN,iCAAiC,GAAGA,CAAA,KAAMhpD,cAAc,EAAE;IAChE,IAAI,CAAChU,WAAW,CAAC4D,yBAAyB,CAAC,8BAA8B,CAAC,GAAI63D,SAAkB,IAAcuB,iCAAiC,EAAE;IACjJ,IAAI,CAACh9D,WAAW,CAAC4D,yBAAyB,CAAC,+BAA+B,CAAC,GAAI63D,SAAkB,IAAcuB,iCAAiC,EAAE;IAClJ,IAAI,CAACh9D,WAAW,CAAC4D,yBAAyB,CAAC,+BAA+B,CAAC,GAAI63D,SAAkB,IAAcuB,iCAAiC,EAAE;IAClJ,IAAI,CAACh9D,WAAW,CAAC4D,yBAAyB,CAAC,iCAAiC,CAAC,GAAI63D,SAAkB,IAAcuB,iCAAiC,EAAE;EACxJ;EAEE/oD,gCAAgCA,CAC9B3S,aAAwC,EACxC0S,cAA6B,EAC7BioD,iBAAgC,EAChCC,WAAuC,EACvCC,WAA0B;IAE1B,IAAI,CAACn8D,WAAW,CAACwD,oBAAoB,CAAC,8BAA8B,CAAC,GAAG,MAAM04D,WAAW,CAAC,IAAI,CAAC;IAC/F,IAAI,CAACl8D,WAAW,CAACwD,oBAAoB,CAAC,+BAA+B,CAAC,GAAG,MAAM04D,WAAW,CAAC,KAAK,CAAC;IACjG,IAAI,CAACl8D,WAAW,CAACwD,oBAAoB,CAAC,wCAAwC,CAAC,GAAG,MAAMwQ,cAAc,EAAE,IAAIioD,iBAAiB,EAAE,IAAI,CAACE,WAAW,EAAE;IACjJ,IAAI,CAACn8D,WAAW,CAACwD,oBAAoB,CAAC,yCAAyC,CAAC,GAAG,MAAMwQ,cAAc,EAAE,IAAIioD,iBAAiB,EAAE,IAAIE,WAAW,EAAE;IAEjJ,IAAI,CAACn8D,WAAW,CAAC0D,aAAa,CAAC,0BAA0B,CAAC,GACvDs2D,UAA6B,IAAKiC,iBAAiB,EAAE,IAAIE,WAAW,EAAE;IAEzE,IAAI,CAACn8D,WAAW,CAAC0D,aAAa,CAAC,2CAA2C,CAAC,GACzE,CAACs2D,UAA6B,EAAEI,aAAgC,KAAKA,aAAa,CAAClqD,GAAG,KAAK2C,uEAAY,CAAC0B,0BAA0B,CAACuoC,eAAe;IAEpJ,IAAI,CAAC98C,WAAW,CAAC0D,aAAa,CAAC,qCAAqC,CAAC,GACnE,CAACs2D,UAA6B,EAAEI,aAAgC,EAAEzmD,YAAoB,EAAE+mD,eAAoC,KAAI;MAE9H,MAAM6C,0BAA0B,GAAG,IAAI,CAAC/C,8BAA8B,CAACH,mBAAmB,CACxF/4D,aAAa,GAAE,CAAE,EACjBuM,wEAAa,CAAC0G,0BAA0B,CAACgF,WAAW,EACpDzL,sEAAW,CAACyG,0BAA0B,CAACgF,WAAW,EAClD1G,uEAAY,CAAC0B,0BAA0B,CAACgF,WAAW,CAAC,IACjD,EAAE;MAEP,MAAMyT,eAAe,GAAG,IAAI,CAACytC,cAAc,CAAS8C,0BAA0B,EAAExvD,wEAAa,CAACwG,0BAA0B,CAACyY,eAAe,EAAE,EAAE,CAAC;MAC7I,MAAM5oB,eAAe,GAAG,IAAI,CAACq2D,cAAc,CAAS8C,0BAA0B,EAAExvD,wEAAa,CAACwG,0BAA0B,CAACnQ,eAAe,EAAE,EAAE,CAAC;MAC7I,MAAM05C,QAAQ,GAAG,IAAI,CAAC2c,cAAc,CAAU8C,0BAA0B,EAAExvD,wEAAa,CAACwG,0BAA0B,CAACupC,QAAQ,EAAE,IAAI,CAAC;MAClI,MAAMC,+BAA+B,GAAG,IAAI,CAAC0c,cAAc,CAAS8C,0BAA0B,EAAExvD,wEAAa,CAACwG,0BAA0B,CAACwpC,+BAA+B,EAAE,EAAE,CAAC;MAE7K,MAAM9P,KAAK,GAAG;QAAE/gC,IAAI,EAAE,aAAa;QAAEkoB,KAAK,EAAE,CAACpI,eAAe,EAAE5oB,eAAe,CAAC,CAAC8yB,MAAM,CAACC,IAAI,IAAIA,IAAI,CAAC,CAACkyB,IAAI,CAAC,KAAK,CAAC;QAAEvL,QAAQ,EAAEA;MAAQ,CAAE;MACrI,MAAM5pC,MAAM,GAAG,CACb;QAAEhH,IAAI,EAAE,kCAAkC;QAAEkoB,KAAK,EAAE2oB;MAA+B,CAAE,CACrF;MACD,OAAO,IAAI,CAACmd,YAAY,CAAC;QAAEjtB,KAAK;QAAE/5B;MAAM,CAAE,CAAC;IAC7C,CAAC;EACL;EAEAE,qCAAqCA,CACnCJ,cAA6B,EAC7BK,gBAA4B;IAE5B,IAAI,CAACrU,WAAW,CAAC2D,sBAAsB,CAAC,2BAA2B,CAAC,GAAG,CAAC83D,SAAiB,EAAEl2C,UAAqC,KAAU;MACxIlR,gBAAgB,EAAE;MAClBkR,UAAU,CAAC,KAAK,CAAC;IACnB,CAAC;IACD,IAAI,CAACvlB,WAAW,CAAC2D,sBAAsB,CAAC,8BAA8B,CAAC,GAAG,CAAC83D,SAAiB,EAAEl2C,UAAqC,KACjI,IAAI,CAAC81C,iBAAiB,CAAC,uDAAuD,EAAE,wBAAwB,EAAE91C,UAAU,CAAC;IAEvH,MAAM+3C,+BAA+B,GAAGA,CAAA,KAAMtpD,cAAc,EAAE;IAC9D,IAAI,CAAChU,WAAW,CAAC2D,sBAAsB,CAAC,4BAA4B,CAAC,GAAI83D,SAAkB,IAAc6B,+BAA+B,EAAE;IAC1I,IAAI,CAACt9D,WAAW,CAAC2D,sBAAsB,CAAC,6BAA6B,CAAC,GAAI83D,SAAkB,IAAc6B,+BAA+B,EAAE;IAC3I,IAAI,CAACt9D,WAAW,CAAC2D,sBAAsB,CAAC,6BAA6B,CAAC,GAAI83D,SAAkB,IAAc6B,+BAA+B,EAAE;IAC3I,IAAI,CAACt9D,WAAW,CAAC2D,sBAAsB,CAAC,+BAA+B,CAAC,GAAI83D,SAAkB,IAAc6B,+BAA+B,EAAE;IAE7I,MAAME,sDAAsD,GAAGA,CAAA,KAAMxpD,cAAc,EAAE;IACrF,IAAI,CAAChU,WAAW,CAAC4D,yBAAyB,CAAC,mDAAmD,CAAC,GAAI63D,SAAkB,IAAc+B,sDAAsD,EAAE;IAC3L,IAAI,CAACx9D,WAAW,CAAC4D,yBAAyB,CAAC,oDAAoD,CAAC,GAAI63D,SAAkB,IAAc+B,sDAAsD,EAAE;IAC5L,IAAI,CAACx9D,WAAW,CAAC4D,yBAAyB,CAAC,oDAAoD,CAAC,GAAI63D,SAAkB,IAAc+B,sDAAsD,EAAE;IAC5L,IAAI,CAACx9D,WAAW,CAAC4D,yBAAyB,CAAC,sDAAsD,CAAC,GAAI63D,SAAkB,IAAc+B,sDAAsD,EAAE;IAE9L,MAAMC,oCAAoC,GAAGA,CAAA,KAAMzpD,cAAc,EAAE;IACnE,IAAI,CAAChU,WAAW,CAAC4D,yBAAyB,CAAC,iCAAiC,CAAC,GAAI63D,SAAkB,IAAcgC,oCAAoC,EAAE;IACvJ,IAAI,CAACz9D,WAAW,CAAC4D,yBAAyB,CAAC,kCAAkC,CAAC,GAAI63D,SAAkB,IAAcgC,oCAAoC,EAAE;IACxJ,IAAI,CAACz9D,WAAW,CAAC4D,yBAAyB,CAAC,kCAAkC,CAAC,GAAI63D,SAAkB,IAAcgC,oCAAoC,EAAE;IACxJ,IAAI,CAACz9D,WAAW,CAAC4D,yBAAyB,CAAC,oCAAoC,CAAC,GAAI63D,SAAkB,IAAcgC,oCAAoC,EAAE;IAE1J,MAAMC,2CAA2C,GAAGA,CAAA,KAAM1pD,cAAc,EAAE;IAC1E,IAAI,CAAChU,WAAW,CAAC4D,yBAAyB,CAAC,wCAAwC,CAAC,GAAI63D,SAAkB,IAAciC,2CAA2C,EAAE;IACrK,IAAI,CAAC19D,WAAW,CAAC4D,yBAAyB,CAAC,yCAAyC,CAAC,GAAI63D,SAAkB,IAAciC,2CAA2C,EAAE;IACtK,IAAI,CAAC19D,WAAW,CAAC4D,yBAAyB,CAAC,yCAAyC,CAAC,GAAI63D,SAAkB,IAAciC,2CAA2C,EAAE;IACtK,IAAI,CAAC19D,WAAW,CAAC4D,yBAAyB,CAAC,2CAA2C,CAAC,GAAI63D,SAAkB,IAAciC,2CAA2C,EAAE;IAExK,MAAMC,4BAA4B,GAAGA,CAAA,KAAM3pD,cAAc,EAAE;IAC3D,IAAI,CAAChU,WAAW,CAAC4D,yBAAyB,CAAC,yBAAyB,CAAC,GAAI63D,SAAkB,IAAckC,4BAA4B,EAAE;IACvI,IAAI,CAAC39D,WAAW,CAAC4D,yBAAyB,CAAC,0BAA0B,CAAC,GAAI63D,SAAkB,IAAckC,4BAA4B,EAAE;IACxI,IAAI,CAAC39D,WAAW,CAAC4D,yBAAyB,CAAC,0BAA0B,CAAC,GAAI63D,SAAkB,IAAckC,4BAA4B,EAAE;IACxI,IAAI,CAAC39D,WAAW,CAAC4D,yBAAyB,CAAC,4BAA4B,CAAC,GAAI63D,SAAkB,IAAckC,4BAA4B,EAAE;IAE1I,MAAMC,yBAAyB,GAAGA,CAAA,KAAM5pD,cAAc,EAAE;IACxD,IAAI,CAAChU,WAAW,CAAC4D,yBAAyB,CAAC,sBAAsB,CAAC,GAAI63D,SAAkB,IAAcmC,yBAAyB,EAAE;IACjI,IAAI,CAAC59D,WAAW,CAAC4D,yBAAyB,CAAC,uBAAuB,CAAC,GAAI63D,SAAkB,IAAcmC,yBAAyB,EAAE;IAClI,IAAI,CAAC59D,WAAW,CAAC4D,yBAAyB,CAAC,uBAAuB,CAAC,GAAI63D,SAAkB,IAAcmC,yBAAyB,EAAE;IAClI,IAAI,CAAC59D,WAAW,CAAC4D,yBAAyB,CAAC,yBAAyB,CAAC,GAAI63D,SAAkB,IAAcmC,yBAAyB,EAAE;IAEpI,MAAMC,0BAA0B,GAAGA,CAAA,KAAM7pD,cAAc,EAAE;IACzD,IAAI,CAAChU,WAAW,CAAC4D,yBAAyB,CAAC,uBAAuB,CAAC,GAAI63D,SAAkB,IAAcoC,0BAA0B,EAAE;IACnI,IAAI,CAAC79D,WAAW,CAAC4D,yBAAyB,CAAC,wBAAwB,CAAC,GAAI63D,SAAkB,IAAcoC,0BAA0B,EAAE;IACpI,IAAI,CAAC79D,WAAW,CAAC4D,yBAAyB,CAAC,wBAAwB,CAAC,GAAI63D,SAAkB,IAAcoC,0BAA0B,EAAE;IACpI,IAAI,CAAC79D,WAAW,CAAC4D,yBAAyB,CAAC,0BAA0B,CAAC,GAAI63D,SAAkB,IAAcoC,0BAA0B,EAAE;EACxI;EAEAt3B,qCAAqCA,CACnCjlC,aAAwC,EACxC0S,cAA6B,EAC7BioD,iBAAgC,EAChCC,WAAuC,EACvCC,WAA0B;IAE1B,IAAI,CAACn8D,WAAW,CAACwD,oBAAoB,CAAC,0BAA0B,CAAC,GAAG,MAAM04D,WAAW,CAAC,IAAI,CAAC;IAC3F,IAAI,CAACl8D,WAAW,CAACwD,oBAAoB,CAAC,2BAA2B,CAAC,GAAG,MAAM04D,WAAW,CAAC,KAAK,CAAC;IAC7F,IAAI,CAACl8D,WAAW,CAACwD,oBAAoB,CAAC,oCAAoC,CAAC,GAAG,MAAMwQ,cAAc,EAAE,IAAIioD,iBAAiB,EAAE,IAAI,CAACE,WAAW,EAAE;IAC7I,IAAI,CAACn8D,WAAW,CAACwD,oBAAoB,CAAC,qCAAqC,CAAC,GAAG,MAAMwQ,cAAc,EAAE,IAAIioD,iBAAiB,EAAE,IAAIE,WAAW,EAAE;IAE7I,IAAI,CAACn8D,WAAW,CAAC0D,aAAa,CAAC,sBAAsB,CAAC,GACnDs2D,UAA6B,IAAKiC,iBAAiB,EAAE,IAAIE,WAAW,EAAE;IAEzE,IAAI,CAACn8D,WAAW,CAAC0D,aAAa,CAAC,uCAAuC,CAAC,GACrE,CAACs2D,UAA6B,EAAEI,aAAgC,KAAKA,aAAa,CAAClqD,GAAG,KAAK2C,uEAAY,CAAC4zB,oBAAoB,CAACwW,2BAA2B;IAE1J,IAAI,CAACj9C,WAAW,CAAC0D,aAAa,CAAC,iCAAiC,CAAC,GAC/D,CAACs2D,UAA6B,EAAEI,aAAgC,EAAEzmD,YAAoB,EAAE+mD,eAAoC,KAAI;MAE9H,MAAML,mBAAmB,GAAI5kC,WAAmB,IAAK,IAAI,CAAC+kC,8BAA8B,CAACH,mBAAmB,CAC1G/4D,aAAa,GAAE,CAAE,EACjBuM,wEAAa,CAAC44B,oBAAoB,CAAC8V,uBAAuB,EAC1DzuC,sEAAW,CAAC24B,oBAAoB,CAAC8V,uBAAuB,EACxD9mB,WAAW,CAAC,IACT,EAAE;MACP,MAAMonC,sBAAsB,GAAGxC,mBAAmB,CAACxnD,uEAAY,CAAC4zB,oBAAoB,CAAC8V,uBAAuB,CAAC;MAC7G,MAAMuhB,uBAAuB,GAAGzD,mBAAmB,CAACxnD,uEAAY,CAAC4zB,oBAAoB,CAACyW,wBAAwB,CAAC;MAC/G,MAAM6gB,uBAAuB,GAAG1D,mBAAmB,CAACxnD,uEAAY,CAAC4zB,oBAAoB,CAAC0W,wBAAwB,CAAC;MAE/G,MAAMjwC,IAAI,GAAG,IAAI,CAACutD,cAAc,CAASoC,sBAAsB,EAAE9uD,wEAAa,CAAC04B,oBAAoB,CAACv5B,IAAI,EAAE,EAAE,CAAC;MAC7G,MAAM4wC,QAAQ,GAAG,IAAI,CAAC2c,cAAc,CAAUoC,sBAAsB,EAAE9uD,wEAAa,CAAC04B,oBAAoB,CAACqX,QAAQ,EAAE,IAAI,CAAC;MACxH,MAAMM,SAAS,GAAG,IAAI,CAACqc,cAAc,CAASqD,uBAAuB,EAAE/vD,wEAAa,CAAC04B,oBAAoB,CAAC2X,SAAS,EAAE,EAAE,CAAC;MACxH,MAAMC,cAAc,GAAG,IAAI,CAACoc,cAAc,CAASqD,uBAAuB,EAAE/vD,wEAAa,CAAC04B,oBAAoB,CAAC4X,cAAc,EAAE,EAAE,CAAC;MAClI,MAAMC,WAAW,GAAG,IAAI,CAACmc,cAAc,CAASqD,uBAAuB,EAAE/vD,wEAAa,CAAC04B,oBAAoB,CAAC6X,WAAW,EAAE,EAAE,CAAC,KAAK5C,0EAAe,CAACjV,oBAAoB,CAACxa,KAAK,CAACC,GAAG;MAC/K,MAAMqyB,mBAAmB,GAAG,IAAI,CAACkc,cAAc,CAASqD,uBAAuB,EAAE/vD,wEAAa,CAAC04B,oBAAoB,CAAC8X,mBAAmB,EAAE,WAAW,CAAC;MACrJ,MAAMC,wBAAwB,GAAG,IAAI,CAACic,cAAc,CAASqD,uBAAuB,EAAE/vD,wEAAa,CAAC04B,oBAAoB,CAAC+X,wBAAwB,EAAE,EAAE,CAAC;MACtJ,MAAMC,gCAAgC,GAAG,IAAI,CAACgc,cAAc,CAAUsD,uBAAuB,EAAEhwD,wEAAa,CAAC04B,oBAAoB,CAACgY,gCAAgC,EAAE,KAAK,CAAC;MAE1K,MAAMxQ,KAAK,GAAG;QAAE/gC,IAAI,EAAE,mBAAmB;QAAEkoB,KAAK,EAAEloB,IAAI;QAAE4wC,QAAQ,EAAEA;MAAQ,CAAE;MAC5E,MAAM5pC,MAAM,GAAG,CACb;QAAEhH,IAAI,EAAE,YAAY;QAAEkoB,KAAK,EAAEgpB;MAAS,CAAE,EACxC;QAAElxC,IAAI,EAAE,iBAAiB;QAAEkoB,KAAK,EAAEipB;MAAc,CAAE,EAClD;QAAEnxC,IAAI,EAAE,uBAAuB;QAAEkoB,KAAK,EAAEkpB,WAAW,GAAGC,mBAAmB,GAAG;MAAG,CAAE,EACjF;QAAErxC,IAAI,EAAE,qBAAqB;QAAEkoB,KAAK,EAAEkpB,WAAW,GAAGE,wBAAwB,GAAG;MAAK,CAAE,EACtF;QAAEtxC,IAAI,EAAE,kDAAkD;QAAEkoB,KAAK,EAAEqpB,gCAAgC,GAAG,KAAK,GAAG;MAAI,CAAE,CACrH;MACD,OAAO,IAAI,CAACyc,YAAY,CAAC;QAAEjtB,KAAK;QAAE/5B;MAAM,CAAE,CAAC;IAC7C,CAAC;EACL;EAEAsyB,iDAAiDA,CAC/Cw3B,qCAAiD;IAEjD,IAAI,CAACh+D,WAAW,CAACwD,oBAAoB,CAAC,uCAAuC,CAAC,GAAG,MAAMw6D,qCAAqC,EAAE;EAChI;EAEA;EAEAC,6BAA6BA,CAACnqD,KAAU,EAAEH,YAAoB;IAC5D,OAAO,IAAI,CAACnF,qBAAqB,CAACknB,iBAAiB,CACjD5hB,KAAK,EACLjG,wEAAa,CAACuP,QAAQ,CAAC6N,iBAAiB,EACxCnd,sEAAW,CAACsP,QAAQ,CAAC6N,iBAAiB,EACtC,IAAI,EACJpY,uEAAY,CAACuK,QAAQ,CAAC8N,cAAc,EACpCvX,YAAY,EACZ,IAAI,CAAC;EACT;EAEAuqD,oCAAoCA,CAACpqD,KAAU,EAAEH,YAAoB;IACnE,OAAO,IAAI,CAACnF,qBAAqB,CAACknB,iBAAiB,CACjD5hB,KAAK,EACLjG,wEAAa,CAACw0B,gBAAgB,CAAC8Z,gBAAgB,EAC/CruC,sEAAW,CAACu0B,gBAAgB,CAAC8Z,gBAAgB,EAC7C,IAAI,EACJtpC,uEAAY,CAACwvB,gBAAgB,CAAC8Z,gBAAgB,EAC9CxoC,YAAY,EACZ,IAAI,CAAC;EACT;EAEAwqD,6CAA6CA,CAACrqD,KAAU,EAAEH,YAAoB;IAC5E,OAAO,IAAI,CAACnF,qBAAqB,CAACknB,iBAAiB,CACjD5hB,KAAK,EACLjG,wEAAa,CAACw0B,gBAAgB,CAAC+Z,yBAAyB,EACxDtuC,sEAAW,CAACu0B,gBAAgB,CAAC+Z,yBAAyB,EACtD,IAAI,EACJvpC,uEAAY,CAACwvB,gBAAgB,CAAC+Z,yBAAyB,EACvDzoC,YAAY,EACZ,IAAI,CAAC;EACT;EAEAyqD,qCAAqCA,CAACtqD,KAAU,EAAEH,YAAoB;IACpE,OAAO,IAAI,CAACnF,qBAAqB,CAACknB,iBAAiB,CACjD5hB,KAAK,EACLjG,wEAAa,CAACw0B,gBAAgB,CAAC0C,iBAAiB,EAChDj3B,sEAAW,CAACu0B,gBAAgB,CAAC0C,iBAAiB,EAC9C,IAAI,EACJlyB,uEAAY,CAACwvB,gBAAgB,CAAC0C,iBAAiB,EAC/CpxB,YAAY,EACZ,IAAI,CAAC;EACT;EAEAwwB,8BAA8BA,CAACrwB,KAAU,EAAEH,YAAoB;IAC7D,OAAO,IAAI,CAACnF,qBAAqB,CAACknB,iBAAiB,CACjD5hB,KAAK,EACLjG,wEAAa,CAACy2B,iBAAiB,CAACgY,YAAY,EAC5CxuC,sEAAW,CAACw2B,iBAAiB,CAACgY,YAAY,EAC1C,IAAI,EACJzpC,uEAAY,CAACyxB,iBAAiB,CAACgY,YAAY,EAC3C3oC,YAAY,EACZ,IAAI,CAAC;EACT;EAEA0qD,kCAAkCA,CAACvqD,KAAU,EAAEH,YAAoB;IACjE,OAAO,IAAI,CAACnF,qBAAqB,CAACknB,iBAAiB,CACjD5hB,KAAK,EACLjG,wEAAa,CAACiT,eAAe,CAACm7B,eAAe,EAC7CnuC,sEAAW,CAACgT,eAAe,CAACm7B,eAAe,EAC3C,IAAI,EACJppC,uEAAY,CAACiO,eAAe,CAACm7B,eAAe,EAC5CtoC,YAAY,EACZ,IAAI,CAAC;EACT;EAEA2qD,oCAAoCA,CAACxqD,KAAU,EAAEH,YAAoB;IACnE,OAAO,IAAI,CAACnF,qBAAqB,CAACknB,iBAAiB,CACjD5hB,KAAK,EACLjG,wEAAa,CAACiT,eAAe,CAACikB,iBAAiB,EAC/Cj3B,sEAAW,CAACgT,eAAe,CAACikB,iBAAiB,EAC7C,IAAI,EACJlyB,uEAAY,CAACiO,eAAe,CAACikB,iBAAiB,EAC9CpxB,YAAY,EACZ,IAAI,CAAC;EACT;EAEA4qD,8CAA8CA,CAACzqD,KAAU,EAAEJ,SAAiB,EAAEC,YAAoB;IAChG,OAAO,IAAI,CAACnF,qBAAqB,CAACknB,iBAAiB,CACjD5hB,KAAK,EACLjG,wEAAa,CAAC0G,0BAA0B,CAACqC,IAAI,EAC7C9I,sEAAW,CAACyG,0BAA0B,CAACqC,IAAI,EAC3ClD,SAAS,EACTb,uEAAY,CAAC0B,0BAA0B,CAACsC,0BAA0B,EAClElD,YAAY,EACZ,IAAI,CAAC;EACT;EAEA6qD,yDAAyDA,CAAC1qD,KAAU,EAAEH,YAAoB;IACxF,OAAO,IAAI,CAACnF,qBAAqB,CAACknB,iBAAiB,CACjD5hB,KAAK,EACLjG,wEAAa,CAAC0G,0BAA0B,CAACkC,qCAAqC,EAC9E3I,sEAAW,CAACyG,0BAA0B,CAACkC,qCAAqC,EAC5E,IAAI,EACJ5D,uEAAY,CAAC0B,0BAA0B,CAACkC,qCAAqC,EAC7E9C,YAAY,EACZ,IAAI,CAAC;EACT;EAEA;EAEAsU,iCAAiCA,CAACnU,KAAU,EAAEH,YAAoB;IAChE,MAAM8qD,OAAO,GAAG,IAAI,CAACR,6BAA6B,CAACnqD,KAAK,EAAEH,YAAY,CAAC;IACvE,OAAO8qD,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAKnM,SAAS;EAClD;EAEA1wB,wCAAwCA,CAAC9tB,KAAU,EAAEH,YAAoB;IACvE,MAAM8qD,OAAO,GAAG,IAAI,CAACP,oCAAoC,CAACpqD,KAAK,EAAEH,YAAY,CAAC;IAC9E,OAAO8qD,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAKnM,SAAS;EAClD;EAEAxwB,iDAAiDA,CAAChuB,KAAU,EAAEH,YAAoB;IAChF,MAAM8qD,OAAO,GAAG,IAAI,CAACN,6CAA6C,CAACrqD,KAAK,EAAEH,YAAY,CAAC;IACvF,OAAO8qD,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAKnM,SAAS;EAClD;EAEAvwB,yCAAyCA,CAACjuB,KAAU,EAAEH,YAAoB;IACxE,MAAM8qD,OAAO,GAAG,IAAI,CAACL,qCAAqC,CAACtqD,KAAK,EAAEH,YAAY,CAAC;IAC/E,OAAO8qD,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAKnM,SAAS;EAClD;EAEAtuB,kCAAkCA,CAAClwB,KAAU,EAAEH,YAAoB;IACjE,MAAM8qD,OAAO,GAAG,IAAI,CAACt6B,8BAA8B,CAACrwB,KAAK,EAAEH,YAAY,CAAC;IACxE,OAAO8qD,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAKnM,SAAS;EAClD;EAEA9xC,sCAAsCA,CAAC1M,KAAU,EAAEH,YAAoB;IACrE,MAAM8qD,OAAO,GAAG,IAAI,CAACJ,kCAAkC,CAACvqD,KAAK,EAAEH,YAAY,CAAC;IAC5E,OAAO8qD,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAKnM,SAAS;EAClD;EAEA5xC,wCAAwCA,CAAC5M,KAAU,EAAEH,YAAoB;IACvE,MAAM8qD,OAAO,GAAG,IAAI,CAACH,oCAAoC,CAACxqD,KAAK,EAAEH,YAAY,CAAC;IAC9E,OAAO8qD,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAKnM,SAAS;EAClD;EAEA1+C,kDAAkDA,CAACE,KAAU,EAAEJ,SAAiB,EAAEC,YAAoB;IACpG,MAAM8qD,OAAO,GAAG,IAAI,CAACF,8CAA8C,CAACzqD,KAAK,EAAEJ,SAAS,EAAEC,YAAY,CAAC;IACnG,OAAO8qD,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAKnM,SAAS;EAClD;EAEAv+C,6DAA6DA,CAACD,KAAU,EAAEH,YAAoB;IAC5F,MAAM8qD,OAAO,GAAG,IAAI,CAACD,yDAAyD,CAAC1qD,KAAK,EAAEH,YAAY,CAAC;IACnG,OAAO8qD,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAKnM,SAAS;EAClD;EAAC,QAAArzD,CAAA;qBAxqBUoY,eAAe,EAAAlR,sDAAA,CAAA7G,kDAAA,GAAA6G,sDAAA,CAAAG,mEAAA,GAAAH,sDAAA,CAAAK,8FAAA,GAAAL,sDAAA,CAAAO,2EAAA,GAAAP,sDAAA,CAAA7G,oDAAA;EAAA;EAAA,QAAAJ,EAAA;WAAfmY,eAAe;IAAA6qC,OAAA,EAAf7qC,eAAe,CAAA8qC,IAAA;IAAAC,UAAA,EAFd;EAAM;;;;;;;;;;;;;;;;;;ACVsC;;;AAKpD,MAAOtkC,wBAAwB;EAEnCle,YACU6O,iBAAoC;IAApC,KAAAA,iBAAiB,GAAjBA,iBAAiB;EAC3B;EAEAwV,4BAA4BA,CAACne,QAAuC;IAElE,MAAM44D,kBAAkB,GAAG,IAAI,CAACjwD,iBAAiB,CAACm3C,aAAa,CAAC9/C,QAAQ,CAAC,IAAI,EAAE;IAC/E44D,kBAAkB,CAACC,yBAAyB,GAAG,IAAI,CAAClwD,iBAAiB,CAACmwD,uBAAuB,CAACF,kBAAkB,CAACC,yBAAyB,CAAC;IAC3ID,kBAAkB,CAACG,+BAA+B,GAAG,IAAI,CAACpwD,iBAAiB,CAACmwD,uBAAuB,CAACF,kBAAkB,CAACG,+BAA+B,CAAC;IACvJH,kBAAkB,CAAC37C,kBAAkB,GAAG,IAAI,CAACtU,iBAAiB,CAACmwD,uBAAuB,CAACF,kBAAkB,CAAC37C,kBAAkB,CAAC;IAE7H,MAAM+7C,sCAAsC,GAAG,IAAI,CAACC,mBAAmB,CACrE,8BAA8B,EAC9BL,kBAAkB,CAACC,yBAAyB,CAAC;IAE/C,MAAMK,4CAA4C,GAAG,IAAI,CAACD,mBAAmB,CAC3E,8CAA8C,EAC9CL,kBAAkB,CAACG,+BAA+B,CAAC;IAErD,MAAMI,iCAAiC,GAAG,IAAI,CAACF,mBAAmB,CAChE,wBAAwB,EACxBL,kBAAkB,CAACrT,oBAAoB,CAAC;IAE1C,MAAM6T,+BAA+B,GAAG,IAAI,CAACC,cAAc,CACzD,kBAAkB,EAClB,gEAAgE,EAChET,kBAAkB,CAACU,uBAAuB,EAAEC,eAAe,CAAC;IAE9D,MAAMC,+BAA+B,GAAG,IAAI,CAACP,mBAAmB,CAC9D,kCAAkC,EAClCL,kBAAkB,CAAC37C,kBAAkB,CAAC;IAExC,MAAMw8C,kBAAkB,GAAG,IAAI,CAAClZ,eAAe,CAC7C,YAAY,EACZ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAC1BqY,kBAAkB,CAACc,SAAS,EAAEC,IAAI,EAAEtkD,GAAG,CAACukD,GAAG,IAAI,CAACA,GAAG,CAACC,IAAI,EAAED,GAAG,CAACliE,IAAI,EAAEkiE,GAAG,CAACE,MAAM,CAAC,CAAC,CAAC;IAEnF,MAAMC,yBAAyB,GAAG,IAAI,CAACd,mBAAmB,CACxD,eAAe,EACfL,kBAAkB,CAACoB,WAAW,CAAC;IAEjC,OACEhB,sCAAsC,GACtCE,4CAA4C,GAC5CC,iCAAiC,GACjCC,+BAA+B,GAC/BI,+BAA+B,GAC/BC,kBAAkB,GAClBM,yBAAyB;EAE7B;EAEAz1B,+BAA+BA,CAACtkC,QAA0C;IAExE,MAAMi6D,qBAAqB,GAAG,IAAI,CAACtxD,iBAAiB,CAACm3C,aAAa,CAAC9/C,QAAQ,CAAC;IAC5Ei6D,qBAAqB,CAAC32B,eAAe,GAAG,IAAI,CAAC36B,iBAAiB,CAACmwD,uBAAuB,CAACmB,qBAAqB,CAAC32B,eAAe,CAAC;IAE7H,MAAM42B,4BAA4B,GAAG,IAAI,CAACjB,mBAAmB,CAC3D,gCAAgC,EAChCgB,qBAAqB,CAAC32B,eAAe,CAAC;IAExC,MAAMm2B,kBAAkB,GAAG,IAAI,CAAClZ,eAAe,CAC7C,YAAY,EACZ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAC1B0Z,qBAAqB,EAAEP,SAAS,EAAEC,IAAI,EAAEtkD,GAAG,CAACukD,GAAG,IAAI,CAACA,GAAG,CAACC,IAAI,EAAED,GAAG,CAACliE,IAAI,EAAEkiE,GAAG,CAACE,MAAM,CAAC,CAAC,CAAC;IAEvF,MAAMC,yBAAyB,GAAG,IAAI,CAACd,mBAAmB,CACxD,eAAe,EACfgB,qBAAqB,CAACD,WAAW,CAAC;IAEpC,OACEE,4BAA4B,GAC5BT,kBAAkB,GAClBM,yBAAyB;EAE7B;EAEQd,mBAAmBA,CAACkB,aAAqB,EAAEC,gBAAwB;IACzE,IAAI,CAACA,gBAAgB,EAAE97C,MAAM,EAAE;MAC7B,OAAO,EAAE;;IAEX,MAAM0Z,IAAI,GAAa,EAAE;IACzBA,IAAI,CAAC6X,IAAI,CAAC,IAAI,CAAClnC,iBAAiB,CAAConC,UAAU,CAAC,IAAI,EAAEoqB,aAAa,CAAC,CAAC;IACjEniC,IAAI,CAAC6X,IAAI,CAAC,IAAI,CAAClnC,iBAAiB,CAAConC,UAAU,CAAC,GAAG,EAAEqqB,gBAAgB,CAAC,CAAC;IACnE,OAAOpiC,IAAI,CAACurB,IAAI,CAAC,EAAE,CAAC;EACtB;EAEQ8V,cAAcA,CAACgB,QAAgB,EAAEC,eAAuB,EAAExN,SAAmB;IACnF,IAAI,CAACA,SAAS,EAAExuC,MAAM,EAAE;MACtB,OAAO,EAAE;;IAEX,MAAM0Z,IAAI,GAAa,EAAE;IACzBA,IAAI,CAAC6X,IAAI,CAAC,IAAI,CAAClnC,iBAAiB,CAAConC,UAAU,CAAC,IAAI,EAAEsqB,QAAQ,CAAC,CAAC;IAC5DriC,IAAI,CAAC6X,IAAI,CAAC,IAAI,CAAClnC,iBAAiB,CAAConC,UAAU,CAAC,GAAG,EAAEuqB,eAAe,CAAC,CAAC;IAClEtiC,IAAI,CAAC6X,IAAI,CAAC,IAAI,CAAClnC,iBAAiB,CAAC0wD,cAAc,CAACvtD,mEAAiB,CAACyuD,OAAO,EAAEzuD,mEAAiB,CAAC0uD,WAAW,EAAE1N,SAAS,CAAC,CAAC;IACrH,OAAO90B,IAAI,CAACurB,IAAI,CAAC,EAAE,CAAC;EACtB;EAEQhD,eAAeA,CAACiN,SAAiB,EAAEtN,SAAmB,EAAEC,QAAoB;IAClF,MAAMnoB,IAAI,GAAa,EAAE;IACzBA,IAAI,CAAC6X,IAAI,CAAC,IAAI,CAAClnC,iBAAiB,CAAConC,UAAU,CAAC,IAAI,EAAEyd,SAAS,CAAC,CAAC;IAC7D,IAAI,CAACrN,QAAQ,EAAE7hC,MAAM,EAAE;MACrB0Z,IAAI,CAAC6X,IAAI,CAAC,IAAI,CAAClnC,iBAAiB,CAAConC,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;MACnE;;IAEF/X,IAAI,CAAC6X,IAAI,CAAC,IAAI,CAAClnC,iBAAiB,CAAC43C,eAAe,CAACL,SAAS,EAAEC,QAAQ,CAAC,CAAC;IACtE,OAAOnoB,IAAI,CAACurB,IAAI,CAAC,EAAE,CAAC;EACtB;EAAC,QAAApqD,CAAA;qBA7GU6e,wBAAwB,EAAA3X,sDAAA,CAAA7G,mEAAA;EAAA;EAAA,QAAAJ,EAAA;WAAxB4e,wBAAwB;IAAAokC,OAAA,EAAxBpkC,wBAAwB,CAAAqkC,IAAA;IAAAC,UAAA,EAFvB;EAAM;;;;;;;;;;;;;;;;;;;;ACFkI;;;;AAKhJ,MAAO77C,0BAA0B;EAErC3G,YACUQ,iBAAoC,EACpCP,cAA8B;IAD9B,KAAAO,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAP,cAAc,GAAdA,cAAc;EACxB;EAEA;EACA2F,sBAAsBA,CAAC42B,WAAkC;IAEvD,MAAMmkC,mBAAmB,GAA+B,EAAE;IAE1DA,mBAAmB,CAACr8D,gBAAgB,GAAG;MACrCm1D,KAAK,EAAE,IAAI,CAACx5D,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACwE,gBAAgB,CAAC;MACnEkuB,GAAG,EAAE,IAAI,CAACvyB,cAAc,CAACqF,UAAU,CAACxF,sEAAW,CAACyE,cAAc,CAAC;MAC/Dg8C,MAAM,EAAE;KACT;IAEDogB,mBAAmB,CAACC,iBAAiB,GAAG;MACtCvmB,MAAM,EAAEH,8EAAmB,CAACC,IAAI;MAChC0mB,IAAI,EAAE;QACJpH,KAAK,EAAEvf,8EAAmB,CAAC7L,KAAK;QAChC7b,GAAG,EAAE0nB,8EAAmB,CAAC1nB,GAAG;QAC5B+tB,MAAM,EAAE;;KAEX;IAED,IAAI/jB,WAAW,EAAE;MACfmkC,mBAAmB,CAACG,YAAY,GAAG;QACjCxzD,IAAI,EAAEkvB,WAAW,CAACukC,QAAQ;QAC1BC,WAAW,EAAE5mB,qEAAU,CAACC,MAAM;QAC9B4mB,gBAAgB,EAAEzkC,WAAW,CAACukC,QAAQ;QACtCG,YAAY,EAAE,CACZ;UACEzH,KAAK,EAAE,QAAQ;UACf0H,IAAI,EAAE,sBAAsB;UAC5BC,UAAU,EAAE;SACb;OAEJ;;IAGH,OAAOT,mBAAmB;EAC5B;EAGA;EACA;EACA;EACAr6D,WAAWA,CAAA;IAET,MAAM;MAAE+6D;IAAa,CAAE,GAAG,IAAI,CAACC,aAAa,EAAE;IAC9C,IAAID,aAAa,EAAE;MACjB,IAAI,CAACE,oBAAoB,EAAE;;IAG7B,IAAI,CAACC,6BAA6B,CAAC;MAAEC,oBAAoB,EAAE;IAAK,CAAE,CAAC;EACrE;EAEA;EACA;EACA;EACAC,UAAUA,CAAA;IAER,IAAI,CAACF,6BAA6B,CAAC;MAAEC,oBAAoB,EAAE;IAAI,CAAE,CAAC;IAElE,MAAM;MAAEJ,aAAa;MAAEM;IAAsB,CAAE,GAAG,IAAI,CAACL,aAAa,EAAE;IACtE,IAAI,CAACD,aAAa,IAAIM,sBAAsB,EAAE;MAC5C,IAAI,CAACJ,oBAAoB,EAAE;;EAE/B;EAEQD,aAAaA,CAAA;IACnB,OAAQ,IAAI,CAAC9gE,iBAAiB,CAACU,kBAAkB,CAACC,UAAU,KAAK,SAAS,GACtE;MAAEkgE,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC7gE,iBAAiB,CAACgI,iBAAiB;MAAEm5D,sBAAsB,EAAE;IAAK,CAAE,GAC3F,IAAI,CAACnhE,iBAAiB,CAACohE,SAAS,EAAE,GACjC;MAAEP,aAAa,EAAE,CAAC,IAAI,CAAC7gE,iBAAiB,CAACiI,yBAAyB;MAAEk5D,sBAAsB,EAAE;IAAI,CAAE,GAClG;MAAEN,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC7gE,iBAAiB,CAACkI,sBAAsB;MAAEi5D,sBAAsB,EAAE;IAAK,CAAE;EACzG;EAEQJ,oBAAoBA,CAAA;IAC1B,IAAI,CAAC/gE,iBAAiB,CAACqhE,iBAAiB,CAAC,IAAIC,KAAK,CAAC,OAAO,CAAC,CAAC;EAC9D;EAEQN,6BAA6BA,CAAC7/D,aAAgD;IACpF,MAAMogE,2BAA2B,GAAGhrC,QAAQ,CAACC,aAAa,CAAC,GAAGze,sEAAW,IAAI+hC,yEAAc,IAAIC,mFAAwB,EAAE,CAAgB;IACzI,IAAIwnB,2BAA2B,EAAE;MAC/BA,2BAA2B,CAACC,KAAK,CAAC,SAAS,CAAC,GAAGrgE,aAAa,EAAE8/D,oBAAoB,GAAG,EAAE,GAAG,MAAM;;EAEpG;EAAC,QAAApiE,CAAA;qBAzFUsH,0BAA0B,EAAAJ,sDAAA,CAAA7G,wDAAA,GAAA6G,sDAAA,CAAAG,6DAAA;EAAA;EAAA,QAAApH,EAAA;WAA1BqH,0BAA0B;IAAA27C,OAAA,EAA1B37C,0BAA0B,CAAA47C,IAAA;IAAAC,UAAA,EAFzB;EAAM;;;;;;;;;;;;;;;;;;ACPsD;;AAepE,MAAOxwC,iBAAiB;EAE5Bg0C,aAAaA,CAACic,KAAU;IACtBA,KAAK,GAAGA,KAAK,IAAI,IAAI;IACrB,IAAIA,KAAK,YAAYxsC,KAAK,EAAE;MAC1B,OAAOwsC,KAAK,CAAC1mD,GAAG,CAACgc,IAAI,IAAI,IAAI,CAACyuB,aAAa,CAACzuB,IAAI,CAAC,CAAC;;IAEpD,IAAI0qC,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC/C,MAAMC,MAAM,GAAG,EAAE;MACjB,KAAK,IAAIC,YAAY,IAAIF,KAAK,EAAE;QAC9BC,MAAM,CAACC,YAAY,CAAC,GAAG,IAAI,CAACnc,aAAa,CAACic,KAAK,CAACE,YAAY,CAAC,CAAC;;MAEhE,OAAOD,MAAM;;IAEf,OAAOD,KAAK,EAAEl9C,QAAQ,EAAE,EAAE+7B,OAAO,CAAC,sBAAsB,EAAEshB,CAAC,IAAI,KAAKA,CAAC,CAACC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;EACzF;EAEArD,uBAAuBA,CAACiD,KAAa;IACnC,OAAOA,KAAK,EAAEnhB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;EACtC;EAEA7K,UAAUA,CAACqsB,GAAW,EAAEC,SAAiB,EAAEC,cAAuB;IAChE,MAAMC,oBAAoB,GAAGD,cAAc,GAAG,WAAWA,cAAc,GAAG,GAAG,EAAE;IAC/E,OAAO,IAAIF,GAAG,GAAGG,oBAAoB,IAAIF,SAAS,IAAI,EAAE,KAAKD,GAAG,GAAG;EACrE;EAEA/C,cAAcA,CAAC+C,GAAW,EAAEI,OAAe,EAAEhe,KAAe;IAC1D,OAAO,IAAI,CAACzO,UAAU,CAACqsB,GAAG,EAAE5d,KAAK,EAAEnpC,GAAG,CAACgc,IAAI,IAAI,IAAI,CAAC0e,UAAU,CAACysB,OAAO,EAAEnrC,IAAI,CAAC,CAAC,EAAEkyB,IAAI,CAAC,EAAE,CAAC,CAAC;EAC3F;EAEAhD,eAAeA,CAACL,SAAmB,EAAEC,QAAoB,EAAE1kD,aAAsC;IAC/F,MAAMu8B,IAAI,GAAa,EAAE;IACzBA,IAAI,CAAC6X,IAAI,CAAC,sCAAsC,CAAC;IACjD7X,IAAI,CAAC6X,IAAI,CAAC,SAAS,CAAC;IACpB7X,IAAI,CAAC6X,IAAI,CAAC,MAAM,CAAC;IACjB,KAAK,MAAM6gB,IAAI,IAAIxQ,SAAS,IAAI,EAAE,EAAE;MAClCloB,IAAI,CAAC6X,IAAI,CAAC,IAAI,CAACE,UAAU,CAAC,IAAI,EAAE2gB,IAAI,CAAC,CAAC;;IAExC14B,IAAI,CAAC6X,IAAI,CAAC,OAAO,CAAC;IAClB7X,IAAI,CAAC6X,IAAI,CAAC,UAAU,CAAC;IACrB7X,IAAI,CAAC6X,IAAI,CAAC,SAAS,CAAC;IACpB,KAAK,MAAM4sB,OAAO,IAAItc,QAAQ,IAAI,EAAE,EAAE;MACpCnoB,IAAI,CAAC6X,IAAI,CAAC,MAAM,CAAC;MACjB,IAAI6sB,WAAW,GAAG,CAAC;MACnB,KAAK,MAAMhM,IAAI,IAAI+L,OAAO,IAAI,EAAE,EAAE;QAChC,MAAMH,cAAc,GAAG7gE,aAAa,EAAEg2D,WAAW,GAAGiL,WAAW,CAAC,EAAEhL,cAAc,GAAG,yCAAyC,GAAG,EAAE;QACjI15B,IAAI,CAAC6X,IAAI,CAAC,IAAI,CAACE,UAAU,CAAC,IAAI,EAAE2gB,IAAI,EAAE4L,cAAc,CAAC,CAAC;QACtDI,WAAW,EAAE;;MAEf1kC,IAAI,CAAC6X,IAAI,CAAC,OAAO,CAAC;;IAEpB7X,IAAI,CAAC6X,IAAI,CAAC,UAAU,CAAC;IACrB7X,IAAI,CAAC6X,IAAI,CAAC,UAAU,CAAC;IACrB,OAAO7X,IAAI,CAACurB,IAAI,CAAC,EAAE,CAAC;EACtB;EAAC,QAAApqD,CAAA,GAEe,KAAAwjE,YAAY,GAAG,GAAG;EAAA,QAAAvjE,EAAA,GAClB,KAAAwjE,aAAa,GAAG,GAAG;EAAA,QAAAvjE,EAAA,GACnB,KAAAkhE,OAAO,GAAG,IAAI;EAAA,QAAAsC,EAAA,GACd,KAAArC,WAAW,GAAG,IAAI;EAElCsC,eAAeA,CAAC11D,IAAY;IAC1B,OAAO,IAAI,CAAC2oC,UAAU,CAACjkC,iBAAiB,CAAC6wD,YAAY,EAAEv1D,IAAI,CAAC;EAC9D;EAEA21D,gBAAgBA,CAACztC,KAAa;IAC5B,OAAO,IAAI,CAACygB,UAAU,CAACjkC,iBAAiB,CAAC8wD,aAAa,EAAEttC,KAAK,CAAC;EAChE;EAEA0tC,WAAWA,CAAC7yD,KAAsC;IAChD,OAAO,GAAG,IAAI,CAAC2yD,eAAe,CAAC3yD,KAAK,EAAE/C,IAAI,CAAC,KAAK,IAAI,CAAC21D,gBAAgB,CAAC5yD,KAAK,EAAEmlB,KAAK,CAAC,EAAE;EACvF;EAEA65B,iBAAiBA,CAAC8T,MAAgB;IAChC,OAAO,IAAI,CAAC5D,cAAc,CAACvtD,iBAAiB,CAACyuD,OAAO,EAAEzuD,iBAAiB,CAAC0uD,WAAW,EAAEyC,MAAM,EAAE5nD,GAAG,CAACia,KAAK,IAAI,IAAI,CAACytC,gBAAgB,CAACztC,KAAK,CAAC,CAAC,CAAC;EAC1I;EAEA0gB,YAAYA,CAAC5hC,MAAyC;IACpD,OAAO,IAAI,CAACirD,cAAc,CAACvtD,iBAAiB,CAACyuD,OAAO,EAAEzuD,iBAAiB,CAAC0uD,WAAW,EAAEpsD,MAAM,EAAEiH,GAAG,CAAClL,KAAK,IAAI,IAAI,CAAC6yD,WAAW,CAAC7yD,KAAK,CAAC,CAAC,CAAC;EACrI;EAEA++C,WAAWA,CAAC9hD,IAAY,EAAEkoB,KAAa;IACrC,OAAO;MAAEloB,IAAI;MAAEkoB;IAAK,CAAE;EACxB;EAEA25B,2BAA2BA,CAAC+S,MAAW,EAAEC,YAAoB;IAC3D,OAAO,IAAI,CAAC/S,WAAW,CAAC+S,YAAY,EAAED,MAAM,GAAGC,YAAY,CAAC,EAAEp9C,QAAQ,EAAE,CAAC;EAC3E;EAEAmjC,gCAAgCA,CAACkb,SAAiB,EAAEC,OAAO,GAAG,CAAC;IAC7D,IAAI,CAACC,qBAAqB,CAAC,MAAMvsC,QAAQ,CAACwsC,sBAAsB,CAACH,SAAS,CAAC,GAAG,CAAC,CAAgB,EAAEC,OAAO,CAAC;EAC3G;EAEA73C,yBAAyBA,CAAC9b,EAAU,EAAE2zD,OAAO,GAAG,CAAC;IAC/C,IAAI,CAACC,qBAAqB,CAAC,MAAMvsC,QAAQ,CAACgrB,cAAc,CAACryC,EAAE,CAAC,EAAE2zD,OAAO,CAAC;EACxE;EAEAC,qBAAqBA,CAACE,cAAiC,EAAEH,OAAO,GAAG,CAAC;IAClE,MAAMI,gBAAgB,GAAGA,CAAA,KAAK;MAC5B,MAAMC,OAAO,GAAGF,cAAc,EAAE;MAChC,IAAIE,OAAO,EAAE;QACXA,OAAO,CAACC,cAAc,CAAC;UAAEC,QAAQ,EAAE,QAAQ;UAAEC,KAAK,EAAE;QAAQ,CAAE,CAAC;QAC/DH,OAAO,CAACI,KAAK,CAAC;UAAEC,aAAa,EAAE;QAAI,CAAE,CAAC;;IAE1C,CAAC;IACD,IAAI,CAACC,cAAc,CAAC,MAAMP,gBAAgB,EAAE,EAAEJ,OAAO,CAAC;EACxD;EAEAY,eAAeA,CAA2Bv0D,EAAU;IAClD,MAAMw0D,QAAQ,GAAGzuC,KAAK,CAAC0uC,IAAI,CAAWptC,QAAQ,CAACqtC,gBAAgB,CAAC,IAAI10D,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAOw0D,QAAQ;EACjB;EAEAG,qBAAqBA,CAACzuC,UAAkB,EAAE0uC,oBAA4B;IACpE,MAAMC,kBAAkB,GAAG,OAAO3uC,UAAU,IAAI0uC,oBAAoB,EAAE;IACtE,OAAOC,kBAAkB;EAC3B;EAEAt0C,iCAAiCA,CAACD,qBAA6C;IAC7E,MAAMw0C,mBAAmB,GAAGx0C,qBAAqB,CAC9CzU,GAAG,CAACkpD,oBAAoB,IAAG;MAC1B,MAAM,CAAC9uC,YAAY,EAAEC,UAAU,EAAE0uC,oBAAoB,CAAC,GAAGG,oBAAoB;MAC7E,OAAO,IAAI,CAACJ,qBAAqB,CAACzuC,UAAU,EAAE0uC,oBAAoB,CAAC;IACrE,CAAC,CAAC;IACJ,MAAMI,2BAA2B,GAAG,CAAC,GAAG,IAAIl+C,GAAG,CAACg+C,mBAAmB,CAAC,CAAC;IACrE,KAAK,MAAMD,kBAAkB,IAAIG,2BAA2B,EAAE;MAC5D,MAAMC,kBAAkB,GAAG,IAAI,CAACV,eAAe,CAAoBM,kBAAkB,CAAC;MACtF,KAAK,MAAMK,iBAAiB,IAAID,kBAAkB,IAAI,EAAE,EAAE;QACtDC,iBAAiB,EAAEC,eAAe,CAAC,UAAU,CAAC;;;EAGtD;EAEAt3B,mCAAmCA,CAAChB,WAAmB,EAAE1uB,iBAAyB,EAAEinD,WAAmB;IACrG,OAAO/tC,QAAQ,CAACC,aAAa,CAAC,GAAGuV,WAAW,IAAI1uB,iBAAiB,IAAI28B,kFAAuB,oBAAoBsqB,WAAW,IAAI,CAAgB;EACjJ;EAEAp3B,uCAAuCA,CAACnB,WAAmB,EAAE1uB,iBAAyB,EAAEknD,WAAmB;IACzG,OAAOhuC,QAAQ,CAACC,aAAa,CAAC,GAAGuV,WAAW,IAAI1uB,iBAAiB,IAAI28B,kFAAuB,WAAWuqB,WAAW,EAAE,CAAgB;EACtI;EAEA3qD,kBAAkBA,CAACmyB,WAAmB,EAAE1uB,iBAAyB,EAAEinD,WAAmB,EAAEzB,OAAA,GAAkB,CAAC;IACzG,IAAI,CAACW,cAAc,CAAC,MAAM,IAAI,CAACgB,YAAY,CAACz4B,WAAW,EAAE1uB,iBAAiB,EAAE,iBAAiBinD,WAAW,IAAI,CAAC,EAAEzB,OAAO,CAAC;EACzH;EAEA71B,sBAAsBA,CAAmC+S,MAAoB,EAAEjzC,IAAY,EAAE23D,QAA8B;IACzH,MAAMC,eAAe,GAAIC,CAAM,IAAI;MACjC5kB,MAAM,CAAC6kB,mBAAmB,CAAC93D,IAAI,EAAE43D,eAAe,CAAC;MACjDD,QAAQ,CAACE,CAAC,CAAC;IACb,CAAC;IACD5kB,MAAM,CAAC8kB,gBAAgB,CAAC/3D,IAAI,EAAE43D,eAAe,CAAC;EAChD;EAEApzB,UAAUA,CAACwzB,SAAoB,EAAEC,QAA+B,EAAExxB,QAAqB;IACrF,IAAI2vB,OAAO,GAAqB,IAAI;IACpC,IAAI;MACFA,OAAO,GAAG3sC,QAAQ,CAACmpB,aAAa,CAAC,OAAO,CAAC;MACzCwjB,OAAO,CAACvjB,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC;MAC9CujB,OAAO,CAACvjB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;MACpC,IAAImlB,SAAS,IAAIA,SAAS,CAAC9gD,MAAM,EAAE;QACjCk/C,OAAO,CAACvjB,YAAY,CAAC,QAAQ,EAAEmlB,SAAS,CAAC7b,IAAI,EAAE,CAAC;;MAElD,IAAI,CAACjc,sBAAsB,CAACk2B,OAAO,EAAE,QAAQ,EAAE8B,WAAW,IAAG;QAC3DD,QAAQ,GAAGC,WAAW,CAACjlB,MAAM,CAACzkB,KAAK,CAAC,CAAC,CAAC,CAAC;QACvC4nC,OAAO,EAAE+B,MAAM,EAAE;MACnB,CAAC,CAAC;MACF,IAAI,CAACj4B,sBAAsB,CAACk2B,OAAO,EAAE,QAAQ,EAAEgC,WAAW,IAAG;QAE3D3xB,QAAQ,GAAE,CAAE;QACZ2vB,OAAO,EAAE+B,MAAM,EAAE;MACnB,CAAC,CAAC;MACF/B,OAAO,CAACljB,KAAK,EAAE;KAChB,CACD,MAAM;MACJkjB,OAAO,EAAE+B,MAAM,EAAE;;EAErB;EAEQzB,cAAcA,CAACP,gBAA4B,EAAEJ,OAAA,GAAkB,IAAI;IACzE,IAAIA,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAK3Q,SAAS,IAAI2Q,OAAO,IAAI,CAAC,EAAE;MAC7Dr2C,UAAU,CAAC,MAAMy2C,gBAAgB,EAAE,EAAEJ,OAAO,CAAC;KAC9C,MAAM;MACLI,gBAAgB,EAAE;;EAEtB;EAEQuB,YAAYA,CAACz4B,WAAmB,EAAE1uB,iBAAyB,EAAE8nD,eAAuB;IAC1F,MAAMjC,OAAO,GAAG3sC,QAAQ,CAACC,aAAa,CAAC,GAAGuV,WAAW,IAAI1uB,iBAAiB,IAAI8nD,eAAe,EAAE,CAAgB;IAC/GjC,OAAO,EAAEljB,KAAK,EAAE;EAClB;EAAC,QAAAolB,EAAA;qBA7LU5zD,iBAAiB;EAAA;EAAA,QAAA6zD,EAAA;WAAjB7zD,iBAAiB;IAAAswC,OAAA,EAAjBtwC,iBAAiB,CAAAuwC,IAAA;IAAAC,UAAA,EAFhB;EAAM;;;;;;;;;;;;;;;;;;ACLd,MAAOzwC,qBAAqB;EAEhC+zD,eAAeA,CAAC5xD,KAAU,EAAEyhB,YAAoB;IAC9C,OAAOzhB,KAAK,EAAE0e,IAAI,EAAEmzC,IAAI,GAAG,MAAMpwC,YAAY,EAAE,CAAC;EAClD;EAEAgB,aAAaA,CAACziB,KAAU,EAAEyhB,YAAoB,EAAEC,UAAkB,EAAE9hB,SAAiB;IACnF,MAAMkyD,+BAA+B,GAAGlyD,SAAS,KAAK,IAAI,IAAIA,SAAS,KAAK4+C,SAAS;IACrF,OAAOsT,+BAA+B,GAClC,IAAI,CAACF,eAAe,CAAC5xD,KAAK,EAAEyhB,YAAY,CAAC,GAAG,OAAOC,UAAU,EAAE,CAAC,GAAG9hB,SAAS,CAAC,GAC7E,IAAI,CAACgyD,eAAe,CAAC5xD,KAAK,EAAEyhB,YAAY,CAAC,GAAG,OAAOC,UAAU,EAAE,CAAC;EACtE;EAEAmuB,gBAAgBA,CAAC7vC,KAAU,EAAEyhB,YAAoB,EAAEC,UAAkB,EAAE9hB,SAAiB,EAAE+hB,WAAmB,EAAE9hB,YAAoB;IACjI,MAAMkyD,kCAAkC,GAAGlyD,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK2+C,SAAS;IAC9F,OAAOuT,kCAAkC,GACrC,IAAI,CAACtvC,aAAa,CAACziB,KAAK,EAAEyhB,YAAY,EAAEC,UAAU,EAAE9hB,SAAS,CAAC,GAAG+hB,WAAW,CAAC,GAAG9hB,YAAY,CAAC,GAC7F,IAAI,CAAC4iB,aAAa,CAACziB,KAAK,EAAEyhB,YAAY,EAAEC,UAAU,EAAE9hB,SAAS,CAAC,GAAG+hB,WAAW,CAAC;EACnF;EAEAC,iBAAiBA,CAAC5hB,KAAU,EAAEyhB,YAAoB,EAAEC,UAAkB,EAAE9hB,SAAiB,EAAE+hB,WAAmB,EAAE9hB,YAAoB,EAAE4Z,YAAoB;IACxJ,OAAO,IAAI,CAACo2B,gBAAgB,CAAC7vC,KAAK,EAAEyhB,YAAY,EAAEC,UAAU,EAAE9hB,SAAS,EAAE+hB,WAAW,EAAE9hB,YAAY,CAAC,GAAG4Z,YAAY,CAAC;EACrH;EAEAu4C,kBAAkBA,CAAChyD,KAAU,EAAEyhB,YAAoB,EAAEwwC,cAAmB;IACtE,MAAMC,iBAAiB,GAAGlyD,KAAK,EAAE0e,IAAI,EAAEmzC,IAAI;IAC3C,IAAIK,iBAAiB,EAAE;MACrBA,iBAAiB,CAAC,MAAMzwC,YAAY,EAAE,CAAC,GAAGwwC,cAAc;MACxD,OAAO,IAAI;;IAEb,OAAO,KAAK;EACd;EAEAE,gBAAgBA,CAACnyD,KAAU,EAAEyhB,YAAoB,EAAEC,UAAkB,EAAE9hB,SAAiB,EAAEwyD,YAAiB;IACzG,MAAMC,eAAe,GAAG,IAAI,CAACT,eAAe,CAAC5xD,KAAK,EAAEyhB,YAAY,CAAC;IACjE,IAAI4wC,eAAe,EAAE;MACnB,MAAMC,kCAAkC,GAAG1yD,SAAS,KAAK,IAAI,IAAIA,SAAS,KAAK4+C,SAAS;MACxF,IAAI8T,kCAAkC,EAAE;QACtC,MAAMC,mBAAmB,GAAGF,eAAe,CAAC,OAAO3wC,UAAU,EAAE,CAAC;QAChE,IAAI6wC,mBAAmB,EAAE;UACvBA,mBAAmB,CAAC3yD,SAAS,CAAC,GAAGwyD,YAAY;UAC7C,OAAO,IAAI;;OAEd,MACI;QACHC,eAAe,CAAC,OAAO3wC,UAAU,EAAE,CAAC,GAAG0wC,YAAY;QACnD,OAAO,IAAI;;;IAGf,OAAO,KAAK;EACd;EAEAtiB,mBAAmBA,CAAC9vC,KAAU,EAAEyhB,YAAoB,EAAEC,UAAkB,EAAE9hB,SAAiB,EAAE+hB,WAAmB,EAAE9hB,YAAoB,EAAE2yD,eAAoB;IAC1J,MAAMC,kBAAkB,GAAG,IAAI,CAAChwC,aAAa,CAACziB,KAAK,EAAEyhB,YAAY,EAAEC,UAAU,EAAE9hB,SAAS,CAAC;IACzF,IAAI6yD,kBAAkB,EAAE;MACtB,MAAMC,qCAAqC,GAAG7yD,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK2+C,SAAS;MACjG,IAAIkU,qCAAqC,EAAE;QACzC,MAAMC,sBAAsB,GAAGF,kBAAkB,CAAC9wC,WAAW,CAAC;QAC9D,IAAIgxC,sBAAsB,EAAE;UAC1BA,sBAAsB,CAAC9yD,YAAY,CAAC,GAAG2yD,eAAe;UACtD,OAAO,IAAI;;OAEd,MACI;QACHC,kBAAkB,CAAC9wC,WAAW,CAAC,GAAG6wC,eAAe;QACjD,OAAO,IAAI;;;IAGf,OAAO,KAAK;EACd;EAEA1wC,oBAAoBA,CAAC9hB,KAAU,EAAEyhB,YAAoB,EAAEC,UAAkB,EAAE9hB,SAAiB,EAAE+hB,WAAmB,EAAE9hB,YAAoB,EAAE4Z,YAAoB,EAAEoI,gBAAqB;IAClL,MAAM+wC,mBAAmB,GAAG,IAAI,CAAC/iB,gBAAgB,CAAC7vC,KAAK,EAAEyhB,YAAY,EAAEC,UAAU,EAAE9hB,SAAS,EAAE+hB,WAAW,EAAE9hB,YAAY,CAAC;IACxH,IAAI+yD,mBAAmB,EAAE;MACvBA,mBAAmB,CAACn5C,YAAY,CAAC,GAAGoI,gBAAgB;MACpD,OAAO,IAAI;;IAEb,OAAO,KAAK;EACd;EAEA;EACA;EACA5e,mCAAmCA,CACjCmd,QAAmB,EACnBkD,QAA8B,EAC9BuvC,2BAA2C;IAE3C,MAAM7yD,KAAK,GAAGogB,QAAQ,EAAE;IAExB,IAAI0yC,UAAU,GAAG,CAAC;IAClB,KAAK,MAAM,CAACrxC,YAAY,EAAEC,UAAU,EAAEC,WAAW,EAAElI,YAAY,CAAC,IAAIo5C,2BAA2B,IAAI,EAAE,EAAE;MAErG,MAAME,UAAU,GAAIC,sBAA2B,IAAKzxC,KAAK,CAACC,OAAO,CAACwxC,sBAAsB,CAAC,GAAG,CAAC,GAAGA,sBAAsB,CAACC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;MAEvI,MAAMC,WAAW,GAAGH,UAAU,CAAC,IAAI,CAACtwC,aAAa,CAACziB,KAAK,EAAEyhB,YAAY,EAAEC,UAAU,EAAE,IAAI,CAAC,CAAC;MACzF,KAAK,MAAM9hB,SAAS,IAAIszD,WAAW,EAAE;QAEnC,MAAMC,cAAc,GAAGJ,UAAU,CAAC,IAAI,CAACljB,gBAAgB,CAAC7vC,KAAK,EAAEyhB,YAAY,EAAEC,UAAU,EAAE9hB,SAAS,EAAE+hB,WAAW,EAAE,IAAI,CAAC,CAAC;QACvH,KAAK,MAAM9hB,YAAY,IAAIszD,cAAc,EAAE;UAEzC,MAAMC,2BAA2B,GAAG,IAAI,CAACxxC,iBAAiB,CAAC5hB,KAAK,EAAEyhB,YAAY,EAAEC,UAAU,EAAE9hB,SAAS,EAAE+hB,WAAW,EAAE9hB,YAAY,EAAE4Z,YAAY,CAAC;UAC/I,IAAI25C,2BAA2B,KAAK,KAAK,EAAE;YACzC,IAAI,CAACtxC,oBAAoB,CAAC9hB,KAAK,EAAEyhB,YAAY,EAAEC,UAAU,EAAE9hB,SAAS,EAAE+hB,WAAW,EAAE9hB,YAAY,EAAE4Z,YAAY,EAAE+kC,SAAS,CAAC;YACzHsU,UAAU,EAAE;;;;;IAMpB,IAAIA,UAAU,GAAG,CAAC,EAAE;MAClBxvC,QAAQ,CAAC;QAAE,GAAGtjB;MAAK,CAAE,CAAC;;IAGxB,OAAO8yD,UAAU;EACnB;EAAC,QAAA3nE,CAAA;qBAlHU0S,qBAAqB;EAAA;EAAA,QAAAzS,EAAA;WAArByS,qBAAqB;IAAAuwC,OAAA,EAArBvwC,qBAAqB,CAAAwwC,IAAA;IAAAC,UAAA,EAFpB;EAAM;;;;;;;;;;;;;;;;;;ACHd,MAAOH,qBAAqB;EAEhCxyC,GAAGA,CAAeS,GAAS;IACzB,MAAMi3D,SAAS,GAAG,IAAI,CAACC,YAAY,CAACl3D,GAAG,CAAC;IACxC,MAAMm3D,WAAW,GAAG,IAAI,CAACC,UAAU,CAACH,SAAS,CAAC;IAC9C,MAAM/xC,KAAK,GAAG,IAAI,CAACmyC,cAAc,CAASF,WAAW,CAAC;IACtD,OAAOjyC,KAAK;EACd;EAEAysB,GAAGA,CAAe3xC,GAAS,EAAEklB,KAAa;IACxC,IAAIA,KAAK,EAAE;MACT,MAAM+xC,SAAS,GAAG,IAAI,CAACC,YAAY,CAACl3D,GAAG,CAAC;MACxC,MAAMm3D,WAAW,GAAG,IAAI,CAACD,YAAY,CAAChyC,KAAK,CAAC;MAC5C,IAAI,CAACoyC,UAAU,CAACL,SAAS,EAAEE,WAAW,CAAC;KACxC,MACI;MACH,MAAMF,SAAS,GAAG,IAAI,CAACC,YAAY,CAACl3D,GAAG,CAAC;MACxC,IAAI,CAACu3D,aAAa,CAACN,SAAS,CAAC;;EAEjC;EAEQG,UAAUA,CAACp3D,GAAW;IAC5B,IAAI;MAAE,OAAO5K,MAAM,CAACoiE,cAAc,CAACC,OAAO,CAACz3D,GAAG,CAAC;KAAG,CAClD,MAAM;MAAE,OAAO,IAAI;;EACrB;EAEQs3D,UAAUA,CAACt3D,GAAW,EAAEklB,KAAa;IAC3C,IAAI;MAAE9vB,MAAM,CAACoiE,cAAc,CAACE,OAAO,CAAC13D,GAAG,EAAEklB,KAAK,CAAC;KAAG,CAClD,MAAM;EACR;EAEQqyC,aAAaA,CAACv3D,GAAW;IAC/B,IAAI;MAAE5K,MAAM,CAACoiE,cAAc,CAACG,UAAU,CAAC33D,GAAG,CAAC;KAAG,CAC9C,MAAM;EACR;EAEQq3D,cAAcA,CAAIvF,CAAS;IACjC,IAAI;MAAE,OAAO11C,IAAI,CAACwG,KAAK,CAACkvC,CAAC,CAAM;KAAG,CAClC,MAAM;MAAE,OAAO,IAAI;;EACrB;EAEQoF,YAAYA,CAAIxV,CAAI;IAC1B,IAAI;MAAE,OAAOtlC,IAAI,CAACC,SAAS,CAACqlC,CAAC,CAAC;KAAG,CACjC,MAAM;MAAE,OAAO,IAAI;;EACrB;EAAC,QAAA3yD,CAAA;qBA5CUgjD,qBAAqB;EAAA;EAAA,QAAA/iD,EAAA;WAArB+iD,qBAAqB;IAAAC,OAAA,EAArBD,qBAAqB,CAAAE,IAAA;IAAAC,UAAA,EAFpB;EAAM;;;;;;;;;;;;;;;;;;;;;;;;ACDQ;AAIkC;AACS;AACA;;;;;AAQjE,MAAOjwC,kBAAkB;EAE7BvS,YACUM,WAAwB,EACxBI,aAA4B,EAC5BD,WAAwB,EACxBF,wBAAkD,EAClDN,cAA8B,EAC9BC,0BAAsD,EACtDgoE,4BAA0D;IAN1D,KAAA5nE,WAAW,GAAXA,WAAW;IACX,KAAAI,aAAa,GAAbA,aAAa;IACb,KAAAD,WAAW,GAAXA,WAAW;IACX,KAAAF,wBAAwB,GAAxBA,wBAAwB;IACxB,KAAAN,cAAc,GAAdA,cAAc;IACd,KAAAC,0BAA0B,GAA1BA,0BAA0B;IAC1B,KAAAgoE,4BAA4B,GAA5BA,4BAA4B;IAG9B,KAAAC,gBAAgB,GAAG,KAAK;EAFhC;EAIAx4D,+BAA+BA,CAAA;IAE7B,IAAI,IAAI,CAACw4D,gBAAgB,EAAE;MACzB;;IAEF,IAAI,CAACA,gBAAgB,GAAG,IAAI;IAE5B;IACA,IAAI,CAAC7nE,WAAW,CACbkF,eAAe,CAAC,iBAAiB,CAAC,CAClCS,IAAI,CAACrG,0CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC27B,WAAW,IAAG;MACvB,MAAMv7B,YAAY,GAAG,IAAI,CAACf,0BAA0B,CAAC0F,sBAAsB,CAAC;QAAEm7D,QAAQ,EAAEvkC,WAAW,CAACukC;MAAQ,CAAE,CAAC;MAC/G,IAAI,CAACrgE,aAAa,CAAC0nE,eAAe,CAACnnE,YAAY,CAAC;MAChD,IAAI,CAAChB,cAAc,CAACmE,UAAU,CAACtE,sEAAW,CAAC08B,WAAW,EAAEA,WAAW,CAAC;IACtE,CAAC,CAAC;IAEJ;IACA,MAAM1mB,OAAO,GAA6B;MACxCuyD,cAAc,EAAEh6D,+EAAe,CAAC3M,aAAa;MAC7CyN,UAAU,EAAEb,qEAAS,CAAC2wC,IAAI;MAC1BlsC,SAAS,EAAEI,oEAAQ,CAACO,MAAM;MAC1BvC,QAAQ,EAAE;KACX;IACD,IAAI,CAAC5Q,wBAAwB,CAC1B+nE,wBAAwB,CAACxyD,OAAO,CAAC,CACjC7P,IAAI,CAACrG,0CAAI,CAAC,CAAC,CAAC,CAAC,CACbiB,SAAS,CAAC+P,IAAI,IAAG;MAChB,MAAM7P,UAAU,GAAG,IAAI,CAACmnE,4BAA4B,CAACK,+BAA+B,CAAC,CAAC33D,IAAI,CAAC43D,UAAU,CAAC1nE,MAAM,CAAC,CAAC;MAC9G,IAAI,CAACL,WAAW,CAACgoE,UAAU,CAAC1nE,UAAU,CAAC;MACvC,IAAI,CAACb,0BAA0B,CAACwhE,UAAU,EAAE;IAC9C,CAAC,CAAC;EACN;EAAC,QAAAriE,CAAA;qBA9CUkT,kBAAkB,EAAAhM,sDAAA,CAAA7G,kDAAA,GAAA6G,sDAAA,CAAA7G,oDAAA,GAAA6G,sDAAA,CAAA7G,kDAAA,GAAA6G,sDAAA,CAAA7G,+DAAA,GAAA6G,sDAAA,CAAAG,6DAAA,GAAAH,sDAAA,CAAAK,qFAAA,GAAAL,sDAAA,CAAA7G,mEAAA;EAAA;EAAA,QAAAJ,EAAA;WAAlBiT,kBAAkB;IAAA+vC,OAAA,EAAlB/vC,kBAAkB,CAAAgwC,IAAA;IAAAC,UAAA,EAFjB;EAAM;;;;;;;;;;;;;;;;;;;;;ACZ8B;;;;;AAQlD;AACA;AACA;AACM,MAAOt1C,2BAA4B,SAAQw7D,4DAAqB;EACpEpxC,MAAMA,CAAC1kB,MAAM;IACX,MAAM8xC,KAAK,GAAI,IAAI,CAACikB,EAAE,CAACC,OAAiB,IAAI,EAAE;IAC9C,MAAMC,SAAS,GAAG,IAAI,CAACF,EAAE,CAACG,SAAS,GAAG,IAAI,CAACH,EAAE,CAACG,SAAS,GAAG,OAAO;IACjE,MAAMC,KAAK,GAAGn2D,MAAM,CAACm2D,KAAK,CAACC,WAAW,EAAE;IACxC,IAAI,CAACC,YAAY,GAAGvkB,KAAK,CAACptB,MAAM,CAACC,IAAI,IAAIA,IAAI,CAACsxC,SAAS,CAAC,CAACG,WAAW,EAAE,CAACp6C,OAAO,CAACm6C,KAAK,CAAC,IAAI,CAAC,CAAC;EAC7F;EAAC,QAAA1pE,CAAA;;;0KANU6N,2BAA2B,IAAAg8D,CAAA,IAA3Bh8D,2BAA2B;IAAA;EAAA;EAAA,QAAA5N,EAAA;UAA3B4N,2BAA2B;IAAA5F,SAAA;IAAAkL,QAAA,GAAAjM,wEAAA;IAAAgB,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAyhE,qCAAAvhE,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCbxCrB,4DAAA,wBAYsE;QAHtDA,wDAPA,4BAAA6iE,8EAAAx2D,MAAA;UAAA,OAAkB/K,GAAA,CAAAyvB,MAAA,CAAA1kB,MAAA,CAAc;QAAA,EAAC,oBAAAy2D,sEAAAz2D,MAAA;UAAA,OAOvB/K,GAAA,CAAAyhE,MAAA,CAAA12D,MAAA,CAAc;QAAA,EAAC;QAIzCrM,0DAAA,EAAiB;;;QAHDA,yDAAA,eAAAsB,GAAA,CAAA2hE,SAAA,CAA8B;QAF9BjjE,wDARA,YAAAsB,GAAA,CAAA6H,EAAA,CAAc,gBAAA7H,GAAA,CAAAohE,YAAA,CACc,gBAEb,UAAAphE,GAAA,CAAA8gE,EAAA,CAAAG,SAAA,GAAAjhE,GAAA,CAAA8gE,EAAA,CAAAG,SAAA,WACgC,wBACxB,gBAAAjhE,GAAA,CAAA0N,WAAA,CAEI,qBAAA1N,GAAA,CAAAwI,KAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;ACR1C;AACA;AACA;AAEO,MAAMsJ,WAAW,GAAG;EACzB8vD,UAAU,EAAE;CACb;AAED;;;;;;;AAOA;;;;;;;;;;;;;;;;;ACf+C;AAGF;AACY;AAEzD,IAAI9vD,kEAAW,CAAC8vD,UAAU,EAAE;EAC1BC,6DAAc,EAAE;;AAGlBC,sEAAA,EAAwB,CAACE,eAAe,CAAC18D,sDAAS,CAAC,CAChD28D,KAAK,CAACnpB,GAAG,IAAI3hC,OAAO,CAACM,KAAK,CAACqhC,GAAG,CAAC,CAAC;;;;;;;;;;ACXnC;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/application-dashboard/application-dashboard.component.ts","./src/app/components/application-dashboard/application-dashboard.component.html","./src/app/components/application-environment/application-environment.component.ts","./src/app/components/application-environment/application-environment.component.html","./src/app/components/application-list/application-list.component.ts","./src/app/components/application-list/application-list.component.html","./src/app/components/application-user-registration/application-user-registration.component.ts","./src/app/components/application-user-registration/application-user-registration.component.html","./src/app/components/application-user-verification/application-user-verification.component.ts","./src/app/components/application-user-verification/application-user-verification.component.html","./src/app/components/application-user/application-user.component.ts","./src/app/components/application-user/application-user.component.html","./src/app/components/application/application.component.ts","./src/app/components/application/application.component.html","./src/app/components/approval-list/approval-list.component.ts","./src/app/components/approval-list/approval-list.component.html","./src/app/components/base-application-user-component/base-application-user-component.ts","./src/app/components/base-component/base-component.ts","./src/app/components/base-detail-component/base-detail-component.ts","./src/app/components/base-list-component/base-list.component.ts","./src/app/components/global-setup/global-setup.component.ts","./src/app/components/global-setup/global-setup.component.html","./src/app/components/help/help.component.ts","./src/app/components/help/help.component.html","./src/app/components/information-banner/information-banner.component.ts","./src/app/components/information-banner/information-banner.component.html","./src/app/components/landing/landing.component.ts","./src/app/components/landing/landing.component.html","./src/app/components/my-apps/my-apps.component.ts","./src/app/components/my-apps/my-apps.component.html","./src/app/components/on-behalf-of-terms-and-conditions/on-behalf-of-terms-and-conditions.component.ts","./src/app/components/on-behalf-of-terms-and-conditions/on-behalf-of-terms-and-conditions.component.html","./src/app/components/organisation-list/organisation-list.component.ts","./src/app/components/organisation-list/organisation-list.component.html","./src/app/components/organisation/organisation.component.ts","./src/app/components/organisation/organisation.component.html","./src/app/components/reference-data-list/reference-data-list.component.ts","./src/app/components/reference-data-list/reference-data-list.component.html","./src/app/components/reference-data/reference-data.component.ts","./src/app/components/reference-data/reference-data.component.html","./src/app/components/review-definition-list/review-definition-list.component.ts","./src/app/components/review-definition-list/review-definition-list.component.html","./src/app/components/review-definition/review-definition.component.ts","./src/app/components/review-definition/review-definition.component.html","./src/app/components/review-list/review-list.component.ts","./src/app/components/review-list/review-list.component.html","./src/app/components/user-legacy-profile-setup/user-legacy-profile-setup.component.ts","./src/app/components/user-legacy-profile-setup/user-legacy-profile-setup.component.html","./src/app/components/user-list/user-list.component.ts","./src/app/components/user-list/user-list.component.html","./src/app/components/user-request-list/user-request-list.component.ts","./src/app/components/user-request-list/user-request-list.component.html","./src/app/components/user-terms-and-conditions/user-terms-and-conditions.component.ts","./src/app/components/user-terms-and-conditions/user-terms-and-conditions.component.html","./src/app/constants/api-endpoints.constants.ts","./src/app/constants/app-data.constants.ts","./src/app/constants/filter-action.ts","./src/app/constants/request-save-result-status.ts","./src/app/constants/review-decision-result.ts","./src/app/constants/route.constants.ts","./src/app/constants/templates.constants.ts","./src/app/constants/user-purge-type.ts","./src/app/constants/user-request-source.ts","./src/app/interfaces/purge-user-result.interface.ts","./src/app/interfaces/sync-user-result.interface.ts","./src/app/services/app-data.service.ts","./src/app/services/application-user-service.ts","./src/app/services/collection.service.ts","./src/app/services/component-deactivation.service.ts","./src/app/services/dialog-helper.service.ts","./src/app/services/directory-lookup.service.ts","./src/app/services/error.service.ts","./src/app/services/excel-export.service.ts","./src/app/services/excel-import.service.ts","./src/app/services/excel-parser.service.ts","./src/app/services/footer-customisation.service.ts","./src/app/services/form-configuration-parser.service.ts","./src/app/services/form-data.service.ts","./src/app/services/format-html-details-service.ts","./src/app/services/header-customisation.service.ts","./src/app/services/html-helper.service.ts","./src/app/services/response-parser.service.ts","./src/app/services/session-storage.service.ts","./src/app/services/user-profile.service.ts","./src/app/types/duop-v2-autocomplete/duop-v2-autocomplete.type.ts","./src/app/types/duop-v2-autocomplete/duop-v2-autocomplete.html","./src/environments/environment.ts","./src/main.ts","ignored|C:\\a\\_work\\329\\s\\DH.UserManagementPortal\\DH.UserManagementPortal.Web\\ClientApp\\node_modules\\xlsx|crypto","ignored|C:\\a\\_work\\329\\s\\DH.UserManagementPortal\\DH.UserManagementPortal.Web\\ClientApp\\node_modules\\xlsx|fs","ignored|C:\\a\\_work\\329\\s\\DH.UserManagementPortal\\DH.UserManagementPortal.Web\\ClientApp\\node_modules\\xlsx|stream"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport { DspxLogoutComponent } from 'dspx-core';\r\n\r\nimport { RouteConstants } from './constants/route.constants';\r\n\r\nimport { ApplicationUserComponent } from './components/application-user/application-user.component';\r\nimport { ReferenceDataComponent } from './components/reference-data/reference-data.component';\r\nimport { ApplicationComponent } from './components/application/application.component';\r\nimport { ApplicationDashboardComponent } from './components/application-dashboard/application-dashboard.component';\r\nimport { ApplicationEnvironmentComponent } from './components/application-environment/application-environment.component';\r\n\r\nimport { UserListComponent } from './components/user-list/user-list.component';\r\nimport { UserRequestListComponent } from './components/user-request-list/user-request-list.component';\r\nimport { ApprovalListComponent } from './components/approval-list/approval-list.component';\r\nimport { ReferenceDataListComponent } from './components/reference-data-list/reference-data-list.component';\r\nimport { ApplicationListComponent } from './components/application-list/application-list.component';\r\nimport { OrganisationListComponent } from './components/organisation-list/organisation-list.component';\r\nimport { LandingComponent } from './components/landing/landing.component';\r\nimport { OrganisationComponent } from './components/organisation/organisation.component';\r\nimport { ApplicationUserVerificationComponent } from './components/application-user-verification/application-user-verification.component';\r\nimport { ApplicationUserRegistrationComponent } from './components/application-user-registration/application-user-registration.component';\r\nimport { ReviewListComponent } from './components/review-list/review-list.component';\r\nimport { ReviewDefinitionComponent } from './components/review-definition/review-definition.component';\r\nimport { ReviewDefinitionListComponent } from './components/review-definition-list/review-definition-list.component';\r\nimport { MyAppsComponent } from './components/my-apps/my-apps.component';\r\nimport { UserLegacyProfileSetupComponent } from './components/user-legacy-profile-setup/user-legacy-profile-setup.component';\r\nimport { GlobalSetupComponent } from './components/global-setup/global-setup.component';\r\n\r\nimport { UserTermsAndConditionsComponent } from './components/user-terms-and-conditions/user-terms-and-conditions.component';\r\nimport { OnBehalfOfTermsAndConditionsComponent } from './components/on-behalf-of-terms-and-conditions/on-behalf-of-terms-and-conditions.component';\r\nimport { ComponentDeactivationService } from './services/component-deactivation.service';\r\nimport { HelpComponent } from './components/help/help.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path:'',\r\n component: LandingComponent\r\n },\r\n {\r\n path: RouteConstants.termsAndConditions.user,\r\n component: UserTermsAndConditionsComponent\r\n },\r\n {\r\n path: RouteConstants.termsAndConditions.onBehalfOf,\r\n component: OnBehalfOfTermsAndConditionsComponent\r\n },\r\n {\r\n path: RouteConstants.logout,\r\n component: DspxLogoutComponent\r\n },\r\n\r\n // Users\r\n {\r\n path: RouteConstants.user.verify,\r\n component: ApplicationUserVerificationComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n {\r\n path: RouteConstants.user.register,\r\n component: ApplicationUserRegistrationComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n {\r\n path: RouteConstants.user.myApps,\r\n component: MyAppsComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n {\r\n path: RouteConstants.user.list,\r\n component: UserListComponent\r\n },\r\n {\r\n path: RouteConstants.user.prefix,\r\n component: ApplicationUserComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n {\r\n path: RouteConstants.user.edit,\r\n component: ApplicationUserComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n\r\n // Users Legacy Profile Setup\r\n {\r\n path: RouteConstants.userLegacyProfileSetup.edit,\r\n component: UserLegacyProfileSetupComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n {\r\n path: RouteConstants.userLegacyProfileSetup.resetEdit,\r\n component: UserLegacyProfileSetupComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n\r\n // User Requests\r\n {\r\n path: RouteConstants.userRequest.list,\r\n component: UserRequestListComponent\r\n },\r\n\r\n // Approvals\r\n {\r\n path: RouteConstants.approval.list,\r\n component: ApprovalListComponent\r\n },\r\n\r\n // Reviews\r\n {\r\n path: RouteConstants.review.list,\r\n component: ReviewListComponent\r\n },\r\n\r\n // Reference Data\r\n {\r\n path: RouteConstants.referenceData.list,\r\n component: ReferenceDataListComponent\r\n },\r\n {\r\n path: RouteConstants.referenceData.prefix,\r\n component: ReferenceDataComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n {\r\n path: RouteConstants.referenceData.edit,\r\n component: ReferenceDataComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n\r\n // Organisations\r\n {\r\n path: RouteConstants.organisation.list,\r\n component: OrganisationListComponent\r\n },\r\n {\r\n path: RouteConstants.organisation.prefix,\r\n component: OrganisationComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n {\r\n path: RouteConstants.organisation.edit,\r\n component: OrganisationComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n\r\n // Applications\r\n {\r\n path: RouteConstants.application.list,\r\n component: ApplicationListComponent\r\n },\r\n {\r\n path: RouteConstants.application.prefix,\r\n component: ApplicationComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n {\r\n path: RouteConstants.application.edit,\r\n component: ApplicationComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n {\r\n path: RouteConstants.applicationDashboard.edit,\r\n component: ApplicationDashboardComponent\r\n },\r\n {\r\n path: RouteConstants.application.applicationDashboard,\r\n component: ApplicationDashboardComponent\r\n },\r\n {\r\n path: RouteConstants.applicationEnvironment.edit,\r\n component: ApplicationEnvironmentComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n {\r\n path: RouteConstants.application.applicationEnvironment,\r\n component: ApplicationEnvironmentComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n\r\n // Review Definitions\r\n {\r\n path: RouteConstants.reviewDefinition.list,\r\n component: ReviewDefinitionListComponent\r\n },\r\n {\r\n path: RouteConstants.reviewDefinition.prefix,\r\n component: ReviewDefinitionComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n {\r\n path: RouteConstants.reviewDefinition.edit,\r\n component: ReviewDefinitionComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n {\r\n path: RouteConstants.reviewDefinition.reviewOccurrenceList,\r\n component: ReviewListComponent\r\n },\r\n\r\n // Global Setup\r\n {\r\n path: RouteConstants.globalSetup.edit,\r\n component: GlobalSetupComponent,\r\n canDeactivate: [ComponentDeactivationService]\r\n },\r\n\r\n // Help\r\n {\r\n path: RouteConstants.help,\r\n component: HelpComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { take } from 'rxjs';\r\n\r\nimport { Component, ViewEncapsulation, OnInit, AfterViewInit } from '@angular/core';\r\n\r\nimport {\r\n CardSetHeaderConfiguration,\r\n CardSetFooterConfiguration,\r\n CardSetMenuConfiguration,\r\n MenuConfigService,\r\n MenuService,\r\n HeaderService,\r\n AddressService,\r\n CoreService,\r\n UserService,\r\n FormConfigurationService\r\n} from 'dspx-core';\r\n\r\nimport { ApiEndpoints } from './constants/api-endpoints.constants';\r\nimport { AppDataKeys, AppSelector } from './constants/app-data.constants';\r\n\r\nimport { GetGlobalSettingsResponse } from './interfaces/get-global-settings-response.interface';\r\nimport { InformationBannerConfig } from './interfaces/information-banner-config.interface';\r\n\r\nimport { AppDataService } from './services/app-data.service';\r\nimport { HeaderCustomisationService } from './services/header-customisation.service';\r\nimport { FooterCustomisationService } from './services/footer-customisation.service';\r\n\r\n@Component({\r\n selector: AppSelector,\r\n templateUrl: './app.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AppComponent implements OnInit, AfterViewInit {\r\n\r\n environmentBannerMessage: string;\r\n environmentBannerBgColor: string;\r\n environmentBannerColor: string;\r\n informationBannerConfig: InformationBannerConfig;\r\n headerConfig: CardSetHeaderConfiguration;\r\n footerConfig: CardSetFooterConfiguration;\r\n menuConfig: CardSetMenuConfiguration;\r\n\r\n constructor(\r\n private appDataService: AppDataService,\r\n private headerCustomisationService: HeaderCustomisationService,\r\n private footerCustomisationService: FooterCustomisationService,\r\n private coreService: CoreService,\r\n private addressService: AddressService,\r\n private userService: UserService,\r\n private formConfigurationService: FormConfigurationService,\r\n public menuConfigService: MenuConfigService,\r\n private menuService: MenuService,\r\n private headerService: HeaderService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.menuService.menuLoaded$.subscribe(\r\n config => {\r\n if (config){\r\n this.menuConfig = config;\r\n }\r\n }\r\n );\r\n\r\n this.headerService.headerUpdated$.subscribe(\r\n config => {\r\n if (config){\r\n this.headerConfig = config;\r\n }\r\n }\r\n )\r\n\r\n this.menuConfigService.styleConfigService.layoutMode = 'static'; /*'overlay';*/ /*'horizontal';*/ /*'slim';*/\r\n this.menuConfigService.styleConfigService.layoutColor = /*'dark';*/ 'light';\r\n this.menuConfigService.styleConfigService.darkMenu = /*true;*/ false;\r\n this.menuConfigService.styleConfigService.ripple = true; /*false;*/\r\n this.menuConfigService.styleConfigService.inputStyle = 'filled'; /*'outlined';*/\r\n\r\n this.menuConfigService.primengConfig.ripple = this.menuConfigService.styleConfigService.ripple;\r\n\r\n // Set up the various global endpoints and functions for the dspx framework\r\n this.formConfigurationService.endpoints = this.formConfigurationService.endpoints ?? {\r\n getFormConfig: ApiEndpoints.configuration.default,\r\n getReferenceDataConfigAndResponse: ApiEndpoints.referenceData.getConfigAndResponse,\r\n getOrganisationConfigAndResponse: ApiEndpoints.organisation.getConfigAndResponse,\r\n getApplicationConfigAndResponse: ApiEndpoints.application.getConfigAndResponse,\r\n getApplicationDashboardConfigAndResponse: ApiEndpoints.applicationDashboard.getConfigAndResponse,\r\n getEnvironmentDefinitionConfigAndResponse: ApiEndpoints.applicationEnvironment.getConfigAndResponse,\r\n getReviewDefinitionConfigAndResponse: ApiEndpoints.reviewDefinition.getConfigAndResponse,\r\n getReviewDecisionsAdminModeConfigAndResponse: ApiEndpoints.reviewDecision.getAdminModeConfigAndResponse,\r\n getGlobalSetupConfigAndResponse: ApiEndpoints.globalSetup.getConfigAndResponse,\r\n getApplicationUserEmptyConfigAndResponse: ApiEndpoints.applicationUser.getEmptyConfigAndResponse,\r\n getApplicationUserConfigAndResponse: ApiEndpoints.applicationUser.getConfigAndResponse,\r\n getMyAppsConfigAndResponse: ApiEndpoints.applicationUser.getMyAppsConfigAndResponse,\r\n getUserRegistrationConfigAndResponse: ApiEndpoints.applicationUser.getRegistrationConfigAndResponse,\r\n getApplicationUserDraftConfigAndResponse: ApiEndpoints.applicationUser.getDraftConfigAndResponse,\r\n getMyAppsDraftConfigAndResponse: ApiEndpoints.applicationUser.getMyAppsDraftConfigAndResponse,\r\n getUserRegistrationDraftConfigAndResponse: ApiEndpoints.applicationUser.getRegistrationDraftConfigAndResponse,\r\n getUserLegacyProfileSetupConfigAndResponse: ApiEndpoints.userLegacyProfileSetup.getConfigAndResponse,\r\n getUserLegacyProfileSetupResetConfigAndResponse: ApiEndpoints.userLegacyProfileSetup.getResetConfigAndResponse\r\n };\r\n this.addressService.endpoints = {\r\n // Note: do not change the 'addressApiSearchEndpoint' and 'addressApiLgaEndpoint' key names, these are used within dspx-core.\r\n addressApiSearchEndpoint: ApiEndpoints.address.search,\r\n addressApiLgaEndpoint: ApiEndpoints.address.lga\r\n }\r\n this.coreService.applicationFunctions = {\r\n }\r\n this.coreService.conditionFunctions = {\r\n };\r\n this.coreService.pageFunctions = {\r\n };\r\n this.coreService.repeatingPageFunctions = {\r\n };\r\n this.coreService.repeatingSectionFunctions = {\r\n };\r\n\r\n // Configure application keys by copying from HTML element attributes into AppDataService\r\n const getFromHtmlAndSaveToAppData = (htmlElementIdAndAppDataKey: string, htmlAttributeName = 'value') =>\r\n this.appDataService.setAppData(\r\n htmlElementIdAndAppDataKey,\r\n this.appDataService.getAttributeFromHtmlElement(htmlElementIdAndAppDataKey, htmlAttributeName));\r\n getFromHtmlAndSaveToAppData(AppDataKeys.applicationTitle);\r\n getFromHtmlAndSaveToAppData(AppDataKeys.applicationUrl);\r\n getFromHtmlAndSaveToAppData(AppDataKeys.environmentName);\r\n getFromHtmlAndSaveToAppData(AppDataKeys.environmentBannerBgColor);\r\n getFromHtmlAndSaveToAppData(AppDataKeys.environmentBannerColor);\r\n getFromHtmlAndSaveToAppData(AppDataKeys.maxGridRowCount);\r\n getFromHtmlAndSaveToAppData(AppDataKeys.maxBulkOperationItemCount);\r\n getFromHtmlAndSaveToAppData(AppDataKeys.googleRecaptchaSiteKey, 'key');\r\n getFromHtmlAndSaveToAppData(AppDataKeys.userTermsAndConditions);\r\n getFromHtmlAndSaveToAppData(AppDataKeys.onBehalfOfTermsAndConditions);\r\n getFromHtmlAndSaveToAppData(AppDataKeys.ldapNotFederatedAccountSignInUrl);\r\n getFromHtmlAndSaveToAppData(AppDataKeys.ldapNotFederatedAccountResetUrl);\r\n getFromHtmlAndSaveToAppData(AppDataKeys.ldapLegacyUserOnboardingPortalName);\r\n getFromHtmlAndSaveToAppData(AppDataKeys.privateIndividualOrganisationId);\r\n getFromHtmlAndSaveToAppData(AppDataKeys.fileDownloadMetadataHeaderName);\r\n getFromHtmlAndSaveToAppData(AppDataKeys.technicalSupportEmail);\r\n\r\n // Configure the environment banner\r\n const environmentName = this.appDataService.getAppData(AppDataKeys.environmentName);\r\n if (environmentName) {\r\n this.environmentBannerMessage = `You are using the ${environmentName} environment`;\r\n }\r\n const environmentBannerBgColor = this.appDataService.getAppData(AppDataKeys.environmentBannerBgColor);\r\n if (environmentBannerBgColor) {\r\n this.environmentBannerBgColor = environmentBannerBgColor;\r\n }\r\n const environmentBannerColor = this.appDataService.getAppData(AppDataKeys.environmentBannerColor);\r\n if (environmentBannerColor) {\r\n this.environmentBannerColor = environmentBannerColor;\r\n }\r\n\r\n // Configure the header\r\n this.userService.endpoints = { getLoggedInUser: ApiEndpoints.users.getLoggedInUser };\r\n this.userService.logout = () => {\r\n // We are using MS Identity so redirect to MicrosoftIdentity Web UI Account Controller action\r\n window.open('MicrosoftIdentity/Account/SignOut', '_self');\r\n };\r\n this.headerConfig = this.headerCustomisationService.getHeaderConfiguration();\r\n\r\n // Configure the footer\r\n this.footerConfig = this.footerCustomisationService.getFooterConfiguration();\r\n\r\n this.appDataService.post(ApiEndpoints.globalSetup.getGlobalSettings, null)\r\n .pipe(take(1))\r\n .subscribe((response: GetGlobalSettingsResponse) => {\r\n this.informationBannerConfig = response.informationBannerConfig;\r\n this.appDataService.setAppData(AppDataKeys.globalSettings, response);\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.headerCustomisationService.disableMenu();\r\n }\r\n}\r\n","\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n","// Angular imports\r\n\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http'; // Required by PrimeNg file upload control.\r\n\r\n// ngx-formly imports\r\n\r\nimport { FormlyModule } from '@ngx-formly/core';\r\nimport { FormlyPrimeNGModule } from '@ngx-formly/primeng';\r\n\r\n// prime-ng imports - move this to dspx\r\n\r\nimport { DividerModule } from \"primeng/divider\";\r\nimport { CardModule } from 'primeng/card';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { ToggleButtonModule } from 'primeng/togglebutton';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\n\r\n// dspx-core imports\r\n\r\nimport {\r\n DspxCoreModule,\r\n CheckboxFieldType,\r\n SwitchFieldType,\r\n ButtonFieldType,\r\n DateFieldType,\r\n DateTimeFieldType,\r\n FileUploadFieldType,\r\n AddressFieldType,\r\n MaskedInputFieldType,\r\n SelectButtonFieldType,\r\n TextAreaFieldType,\r\n MultiselectFieldType,\r\n ParagraphFieldType,\r\n PasswordFieldType,\r\n StepsFieldType,\r\n TabsFieldType,\r\n PageFieldType,\r\n PageRepeatingFieldType,\r\n SectionFieldType,\r\n SectionRepeatingFieldType,\r\n TableFieldType,\r\n FormNavigationFieldType,\r\n dspxRequiredValidator,\r\n whitespaceValidator,\r\n sameAsValidator,\r\n differentToValidator,\r\n eitherMandatoryValidator,\r\n dateLessThanValidator,\r\n dateLessThanOrEqualToValidator,\r\n dateGreaterThanValidator,\r\n dateGreaterThanOrEqualToValidator,\r\n numberGreaterThanValidator,\r\n numberLessThanValidator,\r\n verificationRequiredValidator,\r\n urlValidator,\r\n SearchBoxFieldType,\r\n FormSummaryFieldType,\r\n TimeFieldType,\r\n SingleCheckboxFieldType,\r\n RadioFieldType,\r\n DspxWrapperFormField,\r\n DspxWrapperContainer,\r\n DspxRadioWrapperFormField,\r\n PBIEmbeddedFieldType,\r\n HtmlHeadingFieldType,\r\n DspxWrapperFilter,\r\n FilterFieldType,\r\n CardSectionFieldType,\r\n CardSectionRepeatingFieldType,\r\n CardSetPageFieldType,\r\n CardSetPageRepeatingFieldType,\r\n CardSetTabsFieldType,\r\n CardSetTabsFlatFieldType\r\n} from 'dspx-core';\r\n\r\n// app imports\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\n\r\nimport { ApplicationUserComponent } from './components/application-user/application-user.component';\r\nimport { ReferenceDataComponent } from './components/reference-data/reference-data.component';\r\nimport { ApplicationComponent } from './components/application/application.component';\r\nimport { ApplicationDashboardComponent } from './components/application-dashboard/application-dashboard.component';\r\nimport { ApplicationEnvironmentComponent } from './components/application-environment/application-environment.component';\r\n\r\nimport { UserListComponent } from './components/user-list/user-list.component';\r\nimport { UserRequestListComponent } from './components/user-request-list/user-request-list.component';\r\nimport { ApprovalListComponent } from './components/approval-list/approval-list.component';\r\nimport { ReferenceDataListComponent } from './components/reference-data-list/reference-data-list.component';\r\nimport { ApplicationListComponent } from './components/application-list/application-list.component';\r\nimport { OrganisationListComponent } from './components/organisation-list/organisation-list.component';\r\nimport { OrganisationComponent } from './components/organisation/organisation.component';\r\nimport { ApplicationUserVerificationComponent } from './components/application-user-verification/application-user-verification.component';\r\nimport { ApplicationUserRegistrationComponent } from './components/application-user-registration/application-user-registration.component';\r\nimport { UserLegacyProfileSetupComponent } from './components/user-legacy-profile-setup/user-legacy-profile-setup.component';\r\nimport { ReviewListComponent } from './components/review-list/review-list.component';\r\nimport { ReviewDefinitionComponent } from './components/review-definition/review-definition.component';\r\nimport { ReviewDefinitionListComponent } from './components/review-definition-list/review-definition-list.component';\r\nimport { GlobalSetupComponent } from './components/global-setup/global-setup.component';\r\nimport { MyAppsComponent } from './components/my-apps/my-apps.component';\r\n\r\nimport { LandingComponent } from './components/landing/landing.component';\r\nimport { HelpComponent } from './components/help/help.component';\r\nimport { InformationBannerComponent } from './components/information-banner/information-banner.component';\r\nimport { UserTermsAndConditionsComponent } from './components/user-terms-and-conditions/user-terms-and-conditions.component';\r\nimport { OnBehalfOfTermsAndConditionsComponent } from './components/on-behalf-of-terms-and-conditions/on-behalf-of-terms-and-conditions.component';\r\nimport { DuopV2AutoCompleteFieldType } from './types/duop-v2-autocomplete/duop-v2-autocomplete.type';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n\r\n ApplicationUserComponent,\r\n ReferenceDataComponent,\r\n ApplicationComponent,\r\n ApplicationDashboardComponent,\r\n UserListComponent,\r\n UserRequestListComponent,\r\n ApprovalListComponent,\r\n ReferenceDataListComponent,\r\n ApplicationListComponent,\r\n OrganisationListComponent,\r\n ApplicationEnvironmentComponent,\r\n OrganisationComponent,\r\n ApplicationUserVerificationComponent,\r\n ApplicationUserRegistrationComponent,\r\n UserLegacyProfileSetupComponent,\r\n ReviewListComponent,\r\n ReviewDefinitionComponent,\r\n ReviewDefinitionListComponent,\r\n GlobalSetupComponent,\r\n MyAppsComponent,\r\n LandingComponent,\r\n HelpComponent,\r\n InformationBannerComponent,\r\n UserTermsAndConditionsComponent,\r\n OnBehalfOfTermsAndConditionsComponent,\r\n\r\n DuopV2AutoCompleteFieldType\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n CommonModule,\r\n FormsModule,\r\n DspxCoreModule,\r\n DividerModule,\r\n CardModule,\r\n ButtonModule,\r\n MessagesModule,\r\n ToggleButtonModule,\r\n AppRoutingModule,\r\n ReactiveFormsModule,\r\n FormlyPrimeNGModule,\r\n HttpClientModule,\r\n AccordionModule,\r\n AutoCompleteModule,\r\n FormlyModule.forRoot(\r\n {\r\n wrappers: [\r\n { name: 'dspx-form-field', component: DspxWrapperFormField },\r\n { name: 'dspx-container', component: DspxWrapperContainer },\r\n {​​​ name: 'dspx-radio-wrapper', component:DspxRadioWrapperFormField }​​​,\r\n { name: 'dspx-filter-wrapper', component: DspxWrapperFilter}\r\n ],\r\n types: [\r\n { name: 'input', wrappers: ['dspx-form-field'] },\r\n { name: 'checkbox', component: SingleCheckboxFieldType, wrappers: ['dspx-form-field'] },\r\n { name: 'radio', component: RadioFieldType, wrappers: ['dspx-radio-wrapper'] },\r\n { name: 'select', wrappers: ['dspx-form-field'] },\r\n { name: 'multicheckbox', component: CheckboxFieldType, wrappers: ['dspx-form-field'] },\r\n { name: 'switch', component: SwitchFieldType, wrappers: ['dspx-form-field'] },\r\n { name: 'button', component: ButtonFieldType },\r\n { name: 'date', component: DateFieldType, wrappers: ['dspx-form-field'] },\r\n { name: 'datetime', component: DateTimeFieldType, wrappers: ['dspx-form-field'] },\r\n { name: 'file', component: FileUploadFieldType, wrappers: ['dspx-form-field'] },\r\n\r\n // We are replacing the standard DSPX AutoCompleteFieldType FieldType with a custom one with slightly different behaviour\r\n { name: 'autocomplete', component: DuopV2AutoCompleteFieldType, wrappers: ['dspx-form-field'] },\r\n\r\n { name: 'address', component: AddressFieldType, wrappers: ['dspx-form-field'] },\r\n { name: 'maskinput', component: MaskedInputFieldType, wrappers: ['dspx-form-field'] },\r\n { name: 'textarea', component: TextAreaFieldType, wrappers: ['dspx-form-field'] },\r\n { name: 'multiselect', component: MultiselectFieldType, wrappers: ['dspx-form-field'] },\r\n { name: 'selectbutton', component: SelectButtonFieldType, wrappers: ['dspx-form-field'] },\r\n { name: 'paragraph', component: ParagraphFieldType },\r\n { name: 'password', component: PasswordFieldType, wrappers: ['dspx-form-field'] },\r\n { name: 'steps', component: StepsFieldType },\r\n { name: 'tabs', component: TabsFieldType },\r\n { name: 'page', component: PageFieldType },\r\n { name: 'page-repeating', component: PageRepeatingFieldType },\r\n { name: 'section', component: SectionFieldType },\r\n { name: 'section-repeating', component: SectionRepeatingFieldType },\r\n { name: 'formnavigation', component: FormNavigationFieldType },\r\n { name: 'data-grid', component: TableFieldType },\r\n { name: 'search', component: SearchBoxFieldType, wrappers: ['dspx-container']},\r\n { name: 'summary', component: FormSummaryFieldType },\r\n { name: 'time', component: TimeFieldType, wrappers: ['dspx-form-field'] },\r\n { name: 'powerbi', component: PBIEmbeddedFieldType, wrappers: ['dspx-container'] },\r\n { name: 'heading', component: HtmlHeadingFieldType },\r\n { name: 'filter', component: FilterFieldType },\r\n\r\n // 'card-set' layout\r\n { name: 'card-set-tabs', component: CardSetTabsFieldType },\r\n { name: 'card-set-tabs-flat', component: CardSetTabsFlatFieldType },\r\n { name: 'card-set-page', component: CardSetPageFieldType },\r\n { name: 'card-set-page-repeating', component: CardSetPageRepeatingFieldType },\r\n { name: 'card-section', component: CardSectionFieldType },\r\n { name: 'card-section-repeating', component: CardSectionRepeatingFieldType }\r\n ],\r\n validators: [\r\n { name: 'dspxRequired', validation: dspxRequiredValidator },\r\n { name: 'whitespace', validation: whitespaceValidator },\r\n { name: 'sameAs', validation: sameAsValidator },\r\n { name: 'differentTo', validation: differentToValidator },\r\n { name: 'eitherMandatory', validation: eitherMandatoryValidator },\r\n { name: 'anyOneMandatory', validation: eitherMandatoryValidator },\r\n { name: 'mandatoryPartialDate', validation: eitherMandatoryValidator },\r\n { name: 'dateLessThan', validation: dateLessThanValidator },\r\n { name: 'dateLessThanOrEqualTo', validation: dateLessThanOrEqualToValidator },\r\n { name: 'dateGreaterThan', validation: dateGreaterThanValidator },\r\n { name: 'dateGreaterThanOrEqualTo', validation: dateGreaterThanOrEqualToValidator },\r\n { name: 'numberGreaterThan', validation: numberGreaterThanValidator },\r\n { name: 'numberLessThan', validation: numberLessThanValidator },\r\n { name: 'verificationRequired', validation: verificationRequiredValidator },\r\n { name: 'url', validation: urlValidator }\r\n ],\r\n extras: {\r\n resetFieldOnHide: true,\r\n checkExpressionOn: 'modelChange',\r\n lazyRender: true\r\n }\r\n })\r\n ],\r\n providers: [],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { SpinnerService, DialogService, CoreService, CardSetTransformationService } from 'dspx-core';\r\n\r\nimport { ComponentSelectors, FormActions, NavTabNumbers, PageNumbers, QuestionCodes, ReadOnlyAccessPageActionButtons } from '../../constants/app-data.constants';\r\nimport { ApiEndpointKeys, ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\nimport { Templates } from '../../constants/templates.constants';\r\n\r\nimport { ResponseParserService } from '../../services/response-parser.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ExcelExportService } from '../../services/excel-export.service';\r\nimport { ExcelImportService } from '../../services/excel-import.service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseListComponent } from '../base-list-component/base-list.component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.ApplicationDashboardForm.ApplicationDashboard,\r\n templateUrl: './application-dashboard.component.html'\r\n})\r\nexport class ApplicationDashboardComponent extends BaseListComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n id: string;\r\n templateId: number = Templates.applicationDashboard;\r\n\r\n private isNavigatingFromApplicationDetail: boolean = false;\r\n\r\n constructor(\r\n protected route: ActivatedRoute,\r\n protected router: Router,\r\n protected spinnerService: SpinnerService,\r\n protected dialogService: DialogService,\r\n protected responseParserService: ResponseParserService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected appDataService: AppDataService,\r\n private coreService: CoreService,\r\n private excelExportService: ExcelExportService,\r\n private excelImportService: ExcelImportService,\r\n private userProfileService: UserProfileService) {\r\n\r\n super(\r\n route,\r\n router,\r\n spinnerService,\r\n dialogService,\r\n responseParserService,\r\n htmlHelperService,\r\n appDataService);\r\n\r\n this.initialise(\r\n [NavTabNumbers.ApplicationDashboardForm.environments, PageNumbers.ApplicationDashboardForm.environments],\r\n () => `${ApiEndpoints.dashboard.getApplicationEnvironments}/${this.id}`);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.route.paramMap.subscribe((paramMap: ParamMap) => {\r\n this.id = paramMap.get('id');\r\n if (!this.id) {\r\n this.id = paramMap.get('applicationId');\r\n if (this.id) {\r\n this.isNavigatingFromApplicationDetail = true;\r\n }\r\n }\r\n if (this.id) {\r\n this.formServiceEndpoint = ApiEndpointKeys.getApplicationDashboardConfigAndResponse;\r\n }\r\n });\r\n\r\n this.coreService.applicationFunctions['alwaysFalse'] = () => false; // This ensures that all the other buttons have the same \"secondary\" styling\r\n this.coreService.applicationFunctions['cancel'] = () => this.cancel();\r\n }\r\n\r\n formLoad(event: any) {\r\n this.ensurePageActionButtonsAreEnabledOnFormLoad(ReadOnlyAccessPageActionButtons.ApplicationDashboardForm);\r\n\r\n this.loadGridDataOnFormLoad();\r\n }\r\n\r\n actionButtonClicked(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.ApplicationDashboardForm.environmentPlaceholder:\r\n switch (event.event.type) {\r\n case FormActions.ApplicationDashboardForm.View:\r\n case FormActions.ApplicationDashboardForm.Edit: {\r\n this.navigateToApplicationEnvironmentDetail(event.event.data.id);\r\n break;\r\n }\r\n case FormActions.ApplicationDashboardForm.Export: {\r\n this.excelExportService.exportApplicationEnvironmentToXlsx({ entityIds: [event.event.data.id] });\r\n break;\r\n }\r\n case FormActions.ApplicationDashboardForm.Import: {\r\n const clickedRow = event.event.data;\r\n this.importApplicationEnvironmentFromXlsx(clickedRow.id);\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n\r\n importApplicationEnvironmentFromXlsx(entityId: string): void {\r\n this.excelImportService.importApplicationEnvironmentFromXlsx(entityId)\r\n .pipe(take(1))\r\n .subscribe(excelImportResult => {\r\n if (!excelImportResult.isCancelled) {\r\n this.loadGridData();\r\n }\r\n });\r\n }\r\n\r\n cancel() {\r\n if (this.isNavigatingFromApplicationDetail) {\r\n this.navigateBackToApplicationDetail();\r\n }\r\n else {\r\n this.navigateBackToApplicationList();\r\n }\r\n }\r\n\r\n private navigateBackToApplicationList(): void {\r\n this.router.navigate(['/', RouteConstants.application.list]);\r\n }\r\n\r\n private navigateBackToApplicationDetail(): void {\r\n this.router.navigate(['/', RouteConstants.application.prefix, this.id]);\r\n }\r\n\r\n private navigateToApplicationEnvironmentDetail(id: string): void {\r\n if (this.isNavigatingFromApplicationDetail) {\r\n this.router.navigate(['/', RouteConstants.application.prefix, this.id, RouteConstants.application.applicationEnvironmentFragment, id]);\r\n }\r\n else {\r\n this.router.navigate(['/', RouteConstants.applicationEnvironment.prefix, id]);\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { CoreService, DataService, DialogService, CardSetTransformationService, SpinnerService } from 'dspx-core';\r\n\r\nimport { ComponentSelectors, NavTabNumbers, PageNumbers, PopupCodes, QuestionCodes, ReadOnlyAccessPageActionButtons, SectionCodes, ServerErrorPopupCodes } from '../../constants/app-data.constants';\r\nimport { ApiEndpointKeys, ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\nimport { Templates, Versions } from '../../constants/templates.constants';\r\n\r\nimport { SaveRequest } from '../../interfaces/save-request.interface';\r\nimport { SaveResult } from '../../interfaces/save-result.interface';\r\n\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ComponentDeactivationService } from '../../services/component-deactivation.service';\r\nimport { ErrorService } from '../../services/error.service';\r\nimport { FormDataService } from '../../services/form-data.service';\r\nimport { DialogHelperService } from '../../services/dialog-helper.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\nimport { QuestionPath, ResponseParserService } from '../../services/response-parser.service';\r\n\r\nimport { BaseDetailComponent } from '../base-detail-component/base-detail-component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.ApplicationEnvironmentForm.ApplicationEnvironment,\r\n templateUrl: './application-environment.component.html'\r\n})\r\nexport class ApplicationEnvironmentComponent extends BaseDetailComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n id = '';\r\n formServiceEndpoint: string = ApiEndpointKeys.getFormConfig;\r\n templateId: number = Templates.applicationEnvironment;\r\n versionNo: number = Versions.latest;\r\n activeDialog: string;\r\n applicationId = '';\r\n editing = false;\r\n\r\n private isViewModeForEnvironment = true;\r\n\r\n private isNavigatingFromApplicationDetail: boolean = false;\r\n\r\n constructor(\r\n protected dialogService: DialogService,\r\n protected appDataService: AppDataService,\r\n protected dialogHelperService: DialogHelperService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected componentDeactivationService: ComponentDeactivationService,\r\n protected router: Router,\r\n private route: ActivatedRoute,\r\n private errorService: ErrorService,\r\n private coreService: CoreService,\r\n private dataService: DataService,\r\n private spinnerService: SpinnerService,\r\n private formDataService: FormDataService,\r\n private userProfileService: UserProfileService,\r\n private responseParserService: ResponseParserService ) {\r\n super(dialogService, appDataService, dialogHelperService, htmlHelperService, componentDeactivationService, router);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.route.paramMap.subscribe((paramMap: ParamMap) => {\r\n this.id = paramMap.get('id');\r\n if (!this.id) {\r\n this.id = paramMap.get('environmentId');\r\n if (this.id) {\r\n this.isNavigatingFromApplicationDetail = true;\r\n }\r\n }\r\n if (this.id) {\r\n this.formServiceEndpoint = ApiEndpointKeys.getEnvironmentDefinitionConfigAndResponse;\r\n this.editing = true;\r\n }\r\n });\r\n\r\n this.coreService.conditionFunctions['isEditing'] = () => this.editing;\r\n this.coreService.conditionFunctions['isEditingCustomOrganisationApproval'] = (pageIndex: number, sectionIndex: number) =>\r\n this.formDataService.environmentFormIsEditingCustomOrganisationApproval(this.baseForm.model, pageIndex, sectionIndex);\r\n this.coreService.conditionFunctions['isEditingEnvironmentCustomOrganisationApproval'] = (pageIndex: number, sectionIndex: number) =>\r\n this.formDataService.environmentFormIsEditingEnvironmentCustomOrganisationApproval(this.baseForm.model, sectionIndex);\r\n\r\n this.coreService.conditionFunctions['isApplicationNameReadOnly'] = () => true;\r\n this.coreService.conditionFunctions['isEnvironmentNameReadOnly'] = () => true;\r\n\r\n this.coreService.applicationFunctions['canSave'] = () => this.isFormEditable;\r\n this.coreService.applicationFunctions['cancel'] = () => this.cancel(null);\r\n\r\n this.formDataService.configureEnvironmentFormViewMode(\r\n () => this.baseForm.fields,\r\n () => this.isFormEditable,\r\n () => this.editing,\r\n (enabled: boolean) => this.isViewModeForEnvironment = enabled,\r\n () => this.isViewModeForEnvironment);\r\n\r\n this.formDataService.configureEnvironmentFormRepeatingPage(\r\n () => this.isFormEditable,\r\n () => this.forceRenderAsync());\r\n }\r\n\r\n formLoaded(event: any): void {\r\n this.isFormEditable = !!event?.isFormEditable;\r\n if (!this.isFormEditable) {\r\n // If the form is being shown as read-only, then switch to Edit mode (all fields will be disabled anyway), because View mode does not display all fields.\r\n this.isViewModeForEnvironment = false;\r\n }\r\n\r\n this.ensurePageActionButtonsAreEnabledOnFormLoad(ReadOnlyAccessPageActionButtons.ApplicationEnvironmentForm);\r\n\r\n if (event) {\r\n this.applicationId = event.applicationId;\r\n }\r\n\r\n this.handlePostFormLoadActions(event);\r\n }\r\n\r\n modelChanged(event: any): void {\r\n this.handleSingleCheckBoxChanges();\r\n }\r\n\r\n save(event: any): void {\r\n const saveDataRequest: SaveRequest = {\r\n template: this.templateId,\r\n versionNumber: this.versionNo,\r\n id: this.id,\r\n response: event.model,\r\n expectedLastUpdateTime: event.lastUpdatedTime,\r\n isSubmit: false\r\n }\r\n if (!event.isFormValid) {\r\n this.baseForm.markAllFieldsAsTouched();\r\n if (!this.baseForm.fields[0]?.formControl.valid) {\r\n this.baseForm.showValidationSummary(true);\r\n this.dialogService.showDialog(PopupCodes.Common.ValidationError);\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n\r\n private saveData(request: SaveRequest): void {\r\n this.spinnerService.showSpinner();\r\n this.dataService.saveData(ApiEndpoints.applicationEnvironment.save, request)\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe((data: SaveResult) => {\r\n this.spinnerService.hideSpinner();\r\n if (this.handleWarnings(request, data, r => this.saveData(r))) {\r\n return;\r\n }\r\n if (ServerErrorPopupCodes.SaveApplicationEnvironment.includes(data.message)) {\r\n this.activeDialog = data.message;\r\n }\r\n else {\r\n this.id = data.id;\r\n this.activeDialog = PopupCodes.ApplicationEnvironmentForm.SaveSuccessful;\r\n }\r\n this.dialogHelperService.showDialog(this.activeDialog, null, data.details);\r\n });\r\n }\r\n\r\n cancel(event: any): void {\r\n this.navigateBackToApplicationDashboard();\r\n }\r\n\r\n dialogSubmitted(event: any): void {\r\n if (this.activeDialog === PopupCodes.ApplicationEnvironmentForm.SaveSuccessful) {\r\n this.navigateBackToApplicationDashboard(true);\r\n }\r\n }\r\n\r\n private handleSingleCheckBoxChanges(): void {\r\n const environmentSkipOrganisationApprovalQuestionPath: QuestionPath = [\r\n NavTabNumbers.ApplicationEnvironmentForm.environmentCustomOrganisationApproval,\r\n PageNumbers.ApplicationEnvironmentForm.environmentCustomOrganisationApproval,\r\n SectionCodes.ApplicationEnvironmentForm.environmentCustomOrganisationApproval,\r\n QuestionCodes.ApplicationEnvironmentForm.environmentSkipOrganisationApproval\r\n ];\r\n const skipOrganisationApprovalQuestionPath: QuestionPath = [\r\n NavTabNumbers.ApplicationEnvironmentForm.role,\r\n PageNumbers.ApplicationEnvironmentForm.role,\r\n SectionCodes.ApplicationEnvironmentForm.customOrganisationApproval,\r\n QuestionCodes.ApplicationEnvironmentForm.skipOrganisationApproval\r\n ];\r\n this.responseParserService.handleSingleCheckBoxQuestionChanges(\r\n () => this.baseForm.model,\r\n model => this.baseForm.model = model,\r\n [\r\n environmentSkipOrganisationApprovalQuestionPath,\r\n skipOrganisationApprovalQuestionPath\r\n ]);\r\n }\r\n\r\n private navigateBackToApplicationDashboard(ignoreUnsavedChanges = false): void {\r\n if (this.isNavigatingFromApplicationDetail) {\r\n this.navigate(['/', RouteConstants.application.prefix, this.applicationId, RouteConstants.application.applicationDashboardFragment], ignoreUnsavedChanges);\r\n }\r\n else {\r\n this.navigate(['/', RouteConstants.applicationDashboard.prefix, this.applicationId], ignoreUnsavedChanges);\r\n }\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { CardSetTransformationService, DialogService, SpinnerService } from 'dspx-core';\r\n\r\nimport { FormActions, FormCustomActions, NavTabNumbers, PageNumbers, SectionCodes, QuestionCodes, FilterQuestionDefaults, FilterQuestionCodes, ComponentSelectors, DashboardNames, AppSelector, FilterQuestionLabels } from '../../constants/app-data.constants';\r\nimport { ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { Templates } from '../../constants/templates.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\n\r\nimport { ApplicationGridFilterRequest } from '../../interfaces/application-grid-filter-request.interface';\r\nimport { ExportToDataTablesRequest } from '../../interfaces/export-to-data-tables-request.interface';\r\n\r\nimport { ResponseParserService } from '../../services/response-parser.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ExcelExportService } from '../../services/excel-export.service';\r\nimport { ExcelImportService } from '../../services/excel-import.service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseListComponent } from '../base-list-component/base-list.component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.ApplicationListForm.ApplicationList,\r\n templateUrl: './application-list.component.html'\r\n})\r\nexport class ApplicationListComponent extends BaseListComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n templateId: number = Templates.applicationList;\r\n\r\n constructor(\r\n protected route: ActivatedRoute,\r\n protected router: Router,\r\n protected spinnerService: SpinnerService,\r\n protected dialogService: DialogService,\r\n protected responseParserService: ResponseParserService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected appDataService: AppDataService,\r\n private excelExportService: ExcelExportService,\r\n private excelImportService: ExcelImportService,\r\n private userProfileService: UserProfileService) {\r\n\r\n super(\r\n route,\r\n router,\r\n spinnerService,\r\n dialogService,\r\n responseParserService,\r\n htmlHelperService,\r\n appDataService);\r\n\r\n this.initialise(\r\n [NavTabNumbers.ApplicationListForm.applications, PageNumbers.ApplicationListForm.applications],\r\n () => ApiEndpoints.dashboard.getApplications,\r\n {\r\n getFilterName: () => DashboardNames.ApplicationList,\r\n sectionPath: [NavTabNumbers.ApplicationListForm.applications, PageNumbers.ApplicationListForm.applications, SectionCodes.ApplicationListForm.application],\r\n searchQuestionCode: QuestionCodes.ApplicationListForm.applicationSearch,\r\n customQuestionCode: QuestionCodes.ApplicationListForm.applicationFilter,\r\n customModelVisibleKeys: ['active', 'environment', 'authenticationTypes'],\r\n getFilterRequestFromModels: (searchModel: any, customModel: any) => ({\r\n searchTerm: searchModel,\r\n active: customModel?.[FilterQuestionCodes.ApplicationListForm.applicationFilterActive],\r\n environment: customModel?.[FilterQuestionCodes.ApplicationListForm.applicationFilterEnvironment],\r\n authenticationTypes: customModel?.[FilterQuestionCodes.ApplicationListForm.applicationFilterAuthenticationType]\r\n }),\r\n getDefaultFilterRequest: () => ({\r\n active: FilterQuestionDefaults.ApplicationListForm.applicationFilterActive\r\n })\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.filterHandler.setInitialFilterRequest();\r\n }\r\n\r\n formLoad(event: any): void {\r\n this.loadGridDataOnFormLoad(this.filterHandler.getInitialFilterRequest());\r\n if (this.filterHandler.hasNonEmptyCustomProperties(this.filterHandler.getInitialFilterRequest())) {\r\n this.htmlHelperService.clickButtonByTitle(AppSelector, ComponentSelectors.ApplicationListForm.ApplicationList, FilterQuestionLabels.ApplicationListForm);\r\n }\r\n }\r\n\r\n filterData(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.ApplicationListForm.applicationSearch:\r\n case QuestionCodes.ApplicationListForm.applicationFilter: {\r\n this.loadGridData(this.filterHandler.saveFilterRequest(event.action));\r\n break;\r\n }\r\n }\r\n }\r\n\r\n dialogButtonClicked(event: any): void {\r\n // No dialog buttons are implemented in this dashboard\r\n }\r\n\r\n actionButtonClicked(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.ApplicationListForm.applicationPlaceholder: {\r\n switch (event.event.type) {\r\n case FormActions.ApplicationListForm.View:\r\n case FormActions.ApplicationListForm.Edit: {\r\n this.router.navigate(['/', RouteConstants.application.prefix, event.event.data.id]);\r\n break;\r\n }\r\n case FormActions.ApplicationListForm.ManageEnvironments: {\r\n this.router.navigate(['/', RouteConstants.applicationDashboard.prefix, event.event.data.id]);\r\n break;\r\n }\r\n case FormActions.ApplicationListForm.Custom: {\r\n switch (event.event.data.buttonType) {\r\n case FormCustomActions.ApplicationListForm.Add: {\r\n this.router.navigate(['/', RouteConstants.application.prefix]);\r\n break;\r\n }\r\n case FormCustomActions.ApplicationListForm.BulkExport: {\r\n const applicationExportToDataTablesRequest = this.getApplicationExportToDataTablesRequest();\r\n this.excelExportService.exportApplicationsToXlsx(applicationExportToDataTablesRequest);\r\n break;\r\n }\r\n case FormCustomActions.ApplicationListForm.BulkImport: {\r\n this.importApplicationsFromXlsx();\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n importApplicationsFromXlsx(): void {\r\n this.excelImportService.importApplicationsFromXlsx()\r\n .pipe(take(1))\r\n .subscribe(excelImportResult => {\r\n if (!excelImportResult.isCancelled) {\r\n this.loadGridData(this.filterHandler.getFilterRequest());\r\n }\r\n });\r\n }\r\n\r\n private getApplicationExportToDataTablesRequest(): ExportToDataTablesRequest {\r\n const entities = this.getQuestionValue(\r\n this.baseForm.model,\r\n NavTabNumbers.ApplicationListForm.applications,\r\n PageNumbers.ApplicationListForm.applications,\r\n SectionCodes.ApplicationListForm.application,\r\n QuestionCodes.ApplicationListForm.applicationPlaceholder);\r\n const entityIds = entities.map(entity => entity.id);\r\n const applicationExportToDataTablesRequest: ExportToDataTablesRequest = { entityIds };\r\n return applicationExportToDataTablesRequest;\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { NgRecaptcha3Service } from 'ng-recaptcha3';\r\n\r\nimport { CoreService, DataService, DialogService, SpinnerService } from 'dspx-core';\r\n\r\nimport { ComponentSelectors, PopupCodes } from '../../constants/app-data.constants';\r\nimport { ApiEndpointKeys } from '../../constants/api-endpoints.constants';\r\n\r\nimport { ComponentDeactivationService } from '../../services/component-deactivation.service';\r\nimport { ErrorService } from '../../services/error.service';\r\nimport { FormDataService } from '../../services/form-data.service';\r\nimport { DialogHelperService } from '../../services/dialog-helper.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ApplicationUserService } from '../../services/application-user-service';\r\nimport { FormatHtmlDetailsService } from '../../services/format-html-details-service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseApplicationUserComponent } from '../base-application-user-component/base-application-user-component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.UserForm.UserRegistration,\r\n templateUrl: './application-user-registration.component.html'\r\n})\r\nexport class ApplicationUserRegistrationComponent extends BaseApplicationUserComponent {\r\n\r\n constructor(\r\n protected componentDeactivationService: ComponentDeactivationService,\r\n protected router: Router,\r\n protected route: ActivatedRoute,\r\n protected recaptchaService: NgRecaptcha3Service,\r\n protected errorService: ErrorService,\r\n protected coreService: CoreService,\r\n protected dataService: DataService,\r\n protected dialogService: DialogService,\r\n protected spinnerService: SpinnerService,\r\n protected appDataService: AppDataService,\r\n protected formDataService: FormDataService,\r\n protected dialogHelperService: DialogHelperService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected applicationUserService: ApplicationUserService,\r\n protected formatHtmlDetailsService: FormatHtmlDetailsService,\r\n protected userProfileService: UserProfileService) {\r\n\r\n super(\r\n componentDeactivationService,\r\n router,\r\n route,\r\n recaptchaService,\r\n errorService,\r\n coreService,\r\n dataService,\r\n dialogService,\r\n spinnerService,\r\n appDataService,\r\n formDataService,\r\n dialogHelperService,\r\n htmlHelperService,\r\n applicationUserService,\r\n formatHtmlDetailsService,\r\n userProfileService);\r\n\r\n this.settings = {\r\n isMyApps: false,\r\n hasAnonymousAccess: true,\r\n\r\n draftModeEndpointKey: ApiEndpointKeys.getUserRegistrationDraftConfigAndResponse,\r\n editModeEndpointKey: '',\r\n insertModeEndpointKey: ApiEndpointKeys.getUserRegistrationConfigAndResponse,\r\n\r\n getIdForDraftMode: (paramMap, navigationState) => navigationState?.draftId,\r\n getIdForEditMode: (paramMap, navigationState) => '',\r\n getIdForInsertMode: (paramMap, navigationState) => paramMap.get('id'),\r\n\r\n getIsDraftMode: (paramMap, navigationState) => !!navigationState?.draftId,\r\n getIsEditMode: (paramMap, navigationState) => false,\r\n\r\n getIsEmailReadOnly: (isDraftMode, isEditMode) => true,\r\n\r\n getApplicationUserId: (event, navigationState, isDraftMode, isEditMode) => '',\r\n getApplicationUserRegistrationId: (event, navigationState, isDraftMode, isEditMode) => isDraftMode ? navigationState?.applicationUserRegistrationId : event.id,\r\n\r\n navigateOnCancel: () => this.navigate(['/']),\r\n navigateAfterSave: () => this.navigate(['/'], true),\r\n\r\n saveSuccessfulPopup: PopupCodes.UserForm.SaveSuccessfulRegistration,\r\n customErrorPopups: null,\r\n\r\n showUserRequestDetailsEndpoint: '',\r\n withdrawUserRequestEndpoint: '',\r\n\r\n componentSelector: ComponentSelectors.UserForm.UserRegistration\r\n };\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { NgRecaptcha3Service } from 'ng-recaptcha3';\r\n\r\nimport { CardSetTransformationService, CoreService, DataService, DialogService, SpinnerService } from 'dspx-core';\r\n\r\nimport { AppDataKeys, ComponentSelectors, PopupCodes, ReadOnlyAccessPageActionButtons } from '../../constants/app-data.constants';\r\nimport { ApiEndpointKeys, ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { Templates, Versions } from '../../constants/templates.constants';\r\n\r\nimport { UserVerificationSaveRequest } from '../../interfaces/user-verification-save-request.interface';\r\nimport { UserVerificationSaveResult } from '../../interfaces/user-verification-save-result.interface';\r\n\r\nimport { ComponentDeactivationService } from '../../services/component-deactivation.service';\r\nimport { ErrorService } from '../../services/error.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { DialogHelperService } from '../../services/dialog-helper.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\n\r\nimport { BaseDetailComponent } from '../base-detail-component/base-detail-component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.UserVerificationForm.UserVerification,\r\n templateUrl: './application-user-verification.component.html'\r\n})\r\nexport class ApplicationUserVerificationComponent extends BaseDetailComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n id = '';\r\n formServiceEndpoint: string = ApiEndpointKeys.getFormConfig;\r\n templateId: number = Templates.userVerification;\r\n versionNo: number = Versions.latest;\r\n activeDialog: string;\r\n\r\n constructor(\r\n protected dialogService: DialogService,\r\n protected appDataService: AppDataService,\r\n protected dialogHelperService: DialogHelperService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected componentDeactivationService: ComponentDeactivationService,\r\n protected router: Router,\r\n private coreService: CoreService,\r\n private errorService: ErrorService,\r\n private dataService: DataService,\r\n private spinnerService: SpinnerService,\r\n private recaptchaService: NgRecaptcha3Service) {\r\n super(dialogService, appDataService, dialogHelperService, htmlHelperService, componentDeactivationService, router);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.coreService.applicationFunctions['canSave'] = () => this.isFormEditable;\r\n this.coreService.applicationFunctions['cancel'] = () => this.cancel(null);\r\n }\r\n\r\n formLoaded(event: any) {\r\n const recaptchaSiteKey = this.appDataService.getAppData(AppDataKeys.googleRecaptchaSiteKey);\r\n this.recaptchaService.init(recaptchaSiteKey).then(status => {\r\n console.log('reCAPTCHA service init: ' + status);\r\n });\r\n\r\n this.isFormEditable = !!event?.isFormEditable;\r\n\r\n this.ensurePageActionButtonsAreEnabledOnFormLoad(ReadOnlyAccessPageActionButtons.UserVerificationForm);\r\n }\r\n\r\n save(event: any) {\r\n this.recaptchaService.getToken().then(\r\n token => {\r\n const saveDataRequest: UserVerificationSaveRequest = {\r\n template: this.templateId,\r\n versionNumber: this.versionNo,\r\n id: this.id,\r\n response: event.model,\r\n expectedLastUpdateTime: event.lastUpdatedTime,\r\n isSubmit: false,\r\n recaptchaToken: token\r\n }\r\n if (!event.isFormValid) {\r\n this.baseForm.markAllFieldsAsTouched();\r\n if (!this.baseForm.fields[0]?.formControl.valid) {\r\n this.baseForm.showValidationSummary(true);\r\n this.dialogService.showDialog(PopupCodes.Common.ValidationError);\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n },\r\n error => {\r\n console.log('reCAPTCHA service getToken error: ' + error);\r\n });\r\n }\r\n\r\n saveData(request: UserVerificationSaveRequest) {\r\n this.spinnerService.showSpinner();\r\n this.dataService.saveData(ApiEndpoints.applicationUser.verifyUserRegistration, request)\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe((data: UserVerificationSaveResult) => {\r\n this.spinnerService.hideSpinner();\r\n this.activeDialog = PopupCodes.UserVerificationForm.VerificationCompleted;\r\n this.dialogService.showDialog(this.activeDialog);\r\n });\r\n }\r\n\r\n cancel(event: any) {\r\n this.navigateBackToLandingPage();\r\n }\r\n\r\n dialogSubmitted(event: any) {\r\n if (this.activeDialog === PopupCodes.UserVerificationForm.VerificationCompleted) {\r\n this.navigateBackToLandingPage(true);\r\n }\r\n }\r\n\r\n private navigateBackToLandingPage(ignoreUnsavedChanges = false): void {\r\n this.navigate(['/'], ignoreUnsavedChanges);\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { NgRecaptcha3Service } from 'ng-recaptcha3';\r\n\r\nimport { CoreService, DataService, DialogService, SpinnerService } from 'dspx-core';\r\n\r\nimport { RouteConstants } from '../../constants/route.constants';\r\nimport { ComponentSelectors, PopupCodes } from '../../constants/app-data.constants';\r\nimport { ApiEndpointKeys, ApiEndpoints } from '../../constants/api-endpoints.constants';\r\n\r\nimport { ComponentDeactivationService } from '../../services/component-deactivation.service';\r\nimport { ErrorService } from '../../services/error.service';\r\nimport { FormDataService } from '../../services/form-data.service';\r\nimport { DialogHelperService } from '../../services/dialog-helper.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ApplicationUserService } from '../../services/application-user-service';\r\nimport { FormatHtmlDetailsService } from '../../services/format-html-details-service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseApplicationUserComponent } from '../base-application-user-component/base-application-user-component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.UserForm.User,\r\n templateUrl: './application-user.component.html'\r\n})\r\nexport class ApplicationUserComponent extends BaseApplicationUserComponent {\r\n\r\n constructor(\r\n protected componentDeactivationService: ComponentDeactivationService,\r\n protected router: Router,\r\n protected route: ActivatedRoute,\r\n protected recaptchaService: NgRecaptcha3Service,\r\n protected errorService: ErrorService,\r\n protected coreService: CoreService,\r\n protected dataService: DataService,\r\n protected dialogService: DialogService,\r\n protected spinnerService: SpinnerService,\r\n protected appDataService: AppDataService,\r\n protected formDataService: FormDataService,\r\n protected dialogHelperService: DialogHelperService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected applicationUserService: ApplicationUserService,\r\n protected formatHtmlDetailsService: FormatHtmlDetailsService,\r\n protected userProfileService: UserProfileService) {\r\n\r\n super(\r\n componentDeactivationService,\r\n router,\r\n route,\r\n recaptchaService,\r\n errorService,\r\n coreService,\r\n dataService,\r\n dialogService,\r\n spinnerService,\r\n appDataService,\r\n formDataService,\r\n dialogHelperService,\r\n htmlHelperService,\r\n applicationUserService,\r\n formatHtmlDetailsService,\r\n userProfileService);\r\n\r\n this.settings = {\r\n isMyApps: false,\r\n hasAnonymousAccess: false,\r\n\r\n draftModeEndpointKey: ApiEndpointKeys.getApplicationUserDraftConfigAndResponse,\r\n editModeEndpointKey: ApiEndpointKeys.getApplicationUserConfigAndResponse,\r\n insertModeEndpointKey: ApiEndpointKeys.getApplicationUserEmptyConfigAndResponse,\r\n\r\n getIdForDraftMode: (paramMap, navigationState) => navigationState?.draftId,\r\n getIdForEditMode: (paramMap, navigationState) => paramMap.get('id'),\r\n getIdForInsertMode: (paramMap, navigationState) => '',\r\n\r\n getIsDraftMode: (paramMap, navigationState) => !!navigationState?.draftId,\r\n getIsEditMode: (paramMap, navigationState) => !!paramMap.get('id'),\r\n\r\n getIsEmailReadOnly: (isDraftMode, isEditMode) => isEditMode,\r\n\r\n getApplicationUserId: (event, navigationState, isDraftMode, isEditMode) => isDraftMode ? navigationState?.applicationUserId : (isEditMode ? event.id : ''),\r\n getApplicationUserRegistrationId: (event, navigationState, isDraftMode, isEditMode) => '',\r\n\r\n navigateOnCancel: () => this.navigate(['/', RouteConstants.user.list]),\r\n navigateAfterSave: () => this.navigate(['/', RouteConstants.user.list], true),\r\n\r\n saveSuccessfulPopup: PopupCodes.UserForm.SaveSuccessful,\r\n customErrorPopups: null,\r\n\r\n showUserRequestDetailsEndpoint: ApiEndpoints.userRequest.getDetails,\r\n withdrawUserRequestEndpoint: ApiEndpoints.userRequest.withdraw,\r\n\r\n componentSelector: ComponentSelectors.UserForm.User\r\n };\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { CardSetTransformationService, CoreService, DataService, DialogService, SpinnerService } from 'dspx-core';\r\n\r\nimport { ComponentSelectors, PopupCodes, ReadOnlyAccessPageActionButtons, ServerErrorPopupCodes } from '../../constants/app-data.constants';\r\nimport { ApiEndpointKeys, ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\nimport { Templates, Versions } from '../../constants/templates.constants';\r\n\r\nimport { SaveRequest } from '../../interfaces/save-request.interface';\r\nimport { SaveResult } from '../../interfaces/save-result.interface';\r\n\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ComponentDeactivationService } from '../../services/component-deactivation.service';\r\nimport { ErrorService } from '../../services/error.service';\r\nimport { FormDataService } from '../../services/form-data.service';\r\nimport { DialogHelperService } from '../../services/dialog-helper.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseDetailComponent } from '../base-detail-component/base-detail-component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.ApplicationForm.Application,\r\n templateUrl: './application.component.html'\r\n})\r\nexport class ApplicationComponent extends BaseDetailComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n id = '';\r\n formServiceEndpoint: string = ApiEndpointKeys.getFormConfig;\r\n templateId: number = Templates.application;\r\n versionNo: number = Versions.latest;\r\n activeDialog: string;\r\n editing = false;\r\n\r\n private isViewModeForDetails = true;\r\n\r\n constructor(\r\n protected dialogService: DialogService,\r\n protected appDataService: AppDataService,\r\n protected dialogHelperService: DialogHelperService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected componentDeactivationService: ComponentDeactivationService,\r\n protected router: Router,\r\n private route: ActivatedRoute,\r\n private errorService: ErrorService,\r\n private coreService: CoreService,\r\n private dataService: DataService,\r\n private spinnerService: SpinnerService,\r\n private formDataService: FormDataService,\r\n private userProfileService: UserProfileService) {\r\n super(dialogService, appDataService, dialogHelperService, htmlHelperService, componentDeactivationService, router);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.route.paramMap.subscribe((paramMap: ParamMap) => {\r\n const id = paramMap.get('id');\r\n if (id) {\r\n this.id = id;\r\n this.formServiceEndpoint = ApiEndpointKeys.getApplicationConfigAndResponse;\r\n this.editing = true;\r\n }\r\n });\r\n\r\n const isEditingFunctionalRole = (sectionIndex: number) => this.formDataService.applicationFormIsEditingFunctionalRole(this.baseForm.model, sectionIndex);\r\n const isEditingReviewDefinition = (sectionIndex: number) => this.formDataService.applicationFormIsEditingReviewDefinition(this.baseForm.model, sectionIndex);\r\n\r\n this.coreService.conditionFunctions['isEditing'] = () =>\r\n this.editing;\r\n this.coreService.conditionFunctions['isFunctionalRoleCodeReadOnly'] = (pageIndex: number, sectionIndex: number) =>\r\n isEditingFunctionalRole(sectionIndex);\r\n this.coreService.conditionFunctions['isReviewDefinitionNameReadOnly'] = (pageIndex: number, sectionIndex: number) =>\r\n isEditingReviewDefinition(sectionIndex);\r\n this.coreService.conditionFunctions['isReviewDefinitionEnvironmentReadOnly'] = (pageIndex: number, sectionIndex: number) =>\r\n isEditingReviewDefinition(sectionIndex);\r\n\r\n this.coreService.applicationFunctions['canSave'] = () => this.isFormEditable;\r\n this.coreService.applicationFunctions['cancel'] = () => this.cancel(null);\r\n this.coreService.applicationFunctions['manageEnvironments'] = () => this.manageEnvironments(null);\r\n\r\n this.formDataService.configureApplicationFormViewMode(\r\n () => this.baseForm.fields,\r\n () => this.isFormEditable,\r\n () => this.editing,\r\n (enabled: boolean) => this.isViewModeForDetails = enabled,\r\n () => this.isViewModeForDetails);\r\n\r\n this.formDataService.configureApplicationFormRepeatingSection(\r\n () => this.isFormEditable);\r\n }\r\n\r\n formLoaded(event: any): void {\r\n this.isFormEditable = !!event?.isFormEditable;\r\n if (!this.isFormEditable) {\r\n // If the form is being shown as read-only, then switch to Edit mode (all fields will be disabled anyway), because View mode does not display all fields.\r\n this.isViewModeForDetails = false;\r\n }\r\n\r\n this.ensurePageActionButtonsAreEnabledOnFormLoad(ReadOnlyAccessPageActionButtons.ApplicationForm);\r\n\r\n this.handlePostFormLoadActions(event);\r\n}\r\n\r\n save(event: any): void {\r\n const saveDataRequest: SaveRequest = {\r\n template: this.templateId,\r\n versionNumber: this.versionNo,\r\n id: this.id,\r\n response: event.model,\r\n expectedLastUpdateTime: event.lastUpdatedTime,\r\n isSubmit: false\r\n }\r\n if (!event.isFormValid) {\r\n this.baseForm.markAllFieldsAsTouched();\r\n if (!this.baseForm.fields[0]?.formControl.valid) {\r\n this.baseForm.showValidationSummary(true);\r\n this.dialogService.showDialog(PopupCodes.Common.ValidationError);\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n\r\n private saveData(request: SaveRequest): void {\r\n this.spinnerService.showSpinner();\r\n this.dataService.saveData(ApiEndpoints.application.save, request)\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe((data: SaveResult) => {\r\n this.spinnerService.hideSpinner();\r\n if (this.handleWarnings(request, data, r => this.saveData(r))) {\r\n return;\r\n }\r\n if (ServerErrorPopupCodes.SaveApplication.includes(data.message)) {\r\n this.activeDialog = data.message;\r\n }\r\n else {\r\n this.id = data.id;\r\n this.activeDialog = PopupCodes.ApplicationForm.SaveSuccessful;\r\n }\r\n this.dialogHelperService.showDialog(this.activeDialog, null, data.details);\r\n });\r\n }\r\n\r\n cancel(event: any): void {\r\n this.navigateBackToApplicationList();\r\n }\r\n\r\n manageEnvironments(event: any): void {\r\n this.navigateToApplicationDashboard();\r\n }\r\n\r\n dialogSubmitted(event: any): void {\r\n if (this.activeDialog === PopupCodes.ApplicationForm.SaveSuccessful) {\r\n this.navigateBackToApplicationList(true);\r\n }\r\n }\r\n\r\n private navigateBackToApplicationList(ignoreUnsavedChanges = false): void {\r\n this.navigate(['/', RouteConstants.application.list], ignoreUnsavedChanges);\r\n }\r\n\r\n private navigateToApplicationDashboard(ignoreUnsavedChanges = false): void {\r\n this.navigate(['/', RouteConstants.application.prefix, this.id, RouteConstants.application.applicationDashboardFragment], ignoreUnsavedChanges);\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { SpinnerService, DialogService, MessagePlaceholders, CardSetTransformationService } from 'dspx-core';\r\n\r\nimport { AppDataKeys, AppSelector, ComponentSelectors, DashboardNames, FilterQuestionCodes, FilterQuestionLabels, FormActions, FormCustomActions, NavTabNumbers, PageNumbers, PopupCodes, QuestionCodes, SectionCodes } from '../../constants/app-data.constants';\r\nimport { ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { Templates } from '../../constants/templates.constants';\r\nimport { UserRequestSource } from '../../constants/user-request-source';\r\n\r\nimport { ApprovalGridFilterRequest } from '../../interfaces/approval-grid-filter-request.interface';\r\nimport { UserRequestUniqueKey } from '../../interfaces/user-request-unique-key.interface';\r\nimport { GetUserRequestDetailsResponse } from '../../interfaces/get-user-request-details-response.interface';\r\nimport { ExportToDataTablesRequest } from '../../interfaces/export-to-data-tables-request.interface';\r\n\r\nimport { ResponseParserService } from '../../services/response-parser.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ErrorService } from '../../services/error.service';\r\nimport { ExcelExportService } from '../../services/excel-export.service';\r\nimport { FormatHtmlDetailsService } from '../../services/format-html-details-service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseListComponent } from '../base-list-component/base-list.component';\r\n\r\ntype BulkOperationSettings = {\r\n additionalFields?: any,\r\n apiEndpoint: string,\r\n completionPopupCode: string\r\n};\r\n\r\n@Component({\r\n selector: ComponentSelectors.ApprovalListForm.ApprovalList,\r\n templateUrl: './approval-list.component.html'\r\n})\r\nexport class ApprovalListComponent extends BaseListComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n templateId: number = Templates.approvalList;\r\n\r\n private activeDialog: string;\r\n \r\n constructor(\r\n protected route: ActivatedRoute,\r\n protected router: Router,\r\n protected spinnerService: SpinnerService,\r\n protected dialogService: DialogService,\r\n protected responseParserService: ResponseParserService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected appDataService: AppDataService,\r\n private errorService: ErrorService,\r\n private excelExportService: ExcelExportService,\r\n private formatHtmlDetailsService: FormatHtmlDetailsService,\r\n private userProfileService: UserProfileService) {\r\n\r\n super(\r\n route,\r\n router,\r\n spinnerService,\r\n dialogService,\r\n responseParserService,\r\n htmlHelperService,\r\n appDataService);\r\n\r\n this.initialise(\r\n [NavTabNumbers.ApprovalListForm.approvals, PageNumbers.ApprovalListForm.approvals],\r\n () => ApiEndpoints.dashboard.getUserAccessRequestsForApproval,\r\n {\r\n getFilterName: () => DashboardNames.ApprovalList,\r\n sectionPath: [NavTabNumbers.ApprovalListForm.approvals, PageNumbers.ApprovalListForm.approvals, SectionCodes.ApprovalListForm.approvals],\r\n searchQuestionCode: QuestionCodes.ApprovalListForm.approvalSearch,\r\n customQuestionCode: QuestionCodes.ApprovalListForm.approvalFilter,\r\n customModelVisibleKeys: ['type', 'application', 'environment', 'role', 'organisation', 'escalationLevels'],\r\n getFilterRequestFromModels: (searchModel: any, customModel: any) => ({\r\n searchTerm: searchModel,\r\n type: customModel?.[FilterQuestionCodes.ApprovalListForm.approvalFilterRequestType],\r\n application: customModel?.[FilterQuestionCodes.ApprovalListForm.approvalFilterApplication],\r\n environment: customModel?.[FilterQuestionCodes.ApprovalListForm.approvalFilterEnvironment],\r\n roles: customModel?.[FilterQuestionCodes.ApprovalListForm.approvalFilterFunctionalRole],\r\n organisation: customModel?.[FilterQuestionCodes.ApprovalListForm.approvalFilterOrganisation],\r\n escalationLevels: customModel?.[FilterQuestionCodes.ApprovalListForm.approvalFilterEscalationLevel]\r\n }),\r\n getDefaultFilterRequest: () => null,\r\n progressiveModelUpdate: {\r\n filterQuestionPath: [NavTabNumbers.ApprovalListForm.approvals, PageNumbers.ApprovalListForm.approvals, SectionCodes.ApprovalListForm.approvals, QuestionCodes.ApprovalListForm.approvalFilter],\r\n filterSubQuestionCodeAncestorGroup: [FilterQuestionCodes.ApprovalListForm.approvalFilterApplication],\r\n filterSubQuestionCodeDescendantGroups: [[FilterQuestionCodes.ApprovalListForm.approvalFilterEnvironment], [FilterQuestionCodes.ApprovalListForm.approvalFilterFunctionalRole]]\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.filterHandler.setInitialFilterRequest();\r\n }\r\n\r\n formLoad(event: any): void {\r\n this.loadGridDataOnFormLoad(this.filterHandler.getInitialFilterRequest());\r\n if (this.filterHandler.hasNonEmptyCustomProperties(this.filterHandler.getInitialFilterRequest())) {\r\n this.htmlHelperService.clickButtonByTitle(AppSelector, ComponentSelectors.ApprovalListForm.ApprovalList, FilterQuestionLabels.ApprovalListForm);\r\n }\r\n }\r\n\r\n filterData(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.ApprovalListForm.approvalSearch:\r\n case QuestionCodes.ApprovalListForm.approvalFilter: {\r\n this.loadGridData(this.filterHandler.saveFilterRequest(event.action));\r\n break;\r\n }\r\n }\r\n }\r\n\r\n dialogButtonClicked(event: any): void {\r\n\r\n const activeDialog = this.activeDialog;\r\n delete this.activeDialog;\r\n\r\n switch (activeDialog) {\r\n case PopupCodes.ApprovalListForm.ApprovalsApprovalConfirmation: {\r\n this.approveAccessRequests(event?.accessRequests);\r\n break;\r\n }\r\n case PopupCodes.ApprovalListForm.ApprovalsRejectionConfirmation: {\r\n this.rejectAccessRequests(event?.accessRequests, event?.reasonForRejection);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n actionButtonClicked(event: any): void {\r\n this.registerSelectedItems(event);\r\n switch (event.field.key) {\r\n case QuestionCodes.ApprovalListForm.approvalPlaceholder: {\r\n switch (event.event.type) {\r\n case FormActions.ApprovalListForm.Details: {\r\n const request = event.event.data;\r\n const requestUniqueKey = { userRequestSource: UserRequestSource.Access, id: request.id };\r\n this.showUserRequestDetails(requestUniqueKey);\r\n break;\r\n }\r\n case FormActions.ApprovalListForm.Custom: {\r\n switch (event.event.data.buttonType) {\r\n case FormCustomActions.ApprovalListForm.Approve: {\r\n const selectedItems = this.getSelectedItems(event);\r\n this.confirmApproveAccessRequests(selectedItems);\r\n break;\r\n }\r\n case FormCustomActions.ApprovalListForm.Reject: {\r\n const selectedItems = this.getSelectedItems(event);\r\n this.confirmRejectAccessRequests(selectedItems);\r\n break;\r\n }\r\n case FormCustomActions.ApprovalListForm.BulkExport: {\r\n const approvalExportToDataTablesRequest = this.getApprovalExportToDataTablesRequest();\r\n this.excelExportService.exportApprovalsToXlsx(approvalExportToDataTablesRequest);\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private showUserRequestDetails(requestUniqueKey: UserRequestUniqueKey): void {\r\n this.appDataService.post(ApiEndpoints.userRequest.getDetails, requestUniqueKey)\r\n .pipe(take(1))\r\n .subscribe((response: GetUserRequestDetailsResponse) => {\r\n this.dialogService.showSimplePopup(this.formatHtmlDetailsService.formatUserRequestDetailsHtml(response), 'Request Details', 'Close');\r\n });\r\n }\r\n\r\n private confirmApproveAccessRequests(accessRequests: any[]): void {\r\n this.confirmBulkOperation(PopupCodes.ApprovalListForm.ApprovalsApprovalConfirmation, accessRequests);\r\n }\r\n\r\n private confirmRejectAccessRequests(accessRequests: any[]): void {\r\n this.confirmBulkOperation(PopupCodes.ApprovalListForm.ApprovalsRejectionConfirmation, accessRequests);\r\n }\r\n\r\n private confirmBulkOperation(popupCode: string, accessRequests: any[]): void {\r\n\r\n if (accessRequests.length === 0) {\r\n this.dialogService.showDialog(PopupCodes.ApprovalListForm.ApprovalsNoneSelected);\r\n return;\r\n }\r\n\r\n const maxBulkOperationItemCount = this.appDataService.getAppData(AppDataKeys.maxBulkOperationItemCount);\r\n if (accessRequests.length > parseInt(maxBulkOperationItemCount, 10)) {\r\n this.dialogService.showDialog(PopupCodes.ApprovalListForm.ApprovalsTooManyItems, null, { maxBulkOperationItemCount });\r\n return;\r\n }\r\n\r\n const popupModel = { accessRequests };\r\n const popupMessagePlaceholders = { itemCount: accessRequests.length.toString() };\r\n this.openDialog(popupCode, popupModel, popupMessagePlaceholders);\r\n }\r\n\r\n private openDialog(popupCode: string, popupModel?: any, popupMessagePlaceholders?: MessagePlaceholders): void {\r\n this.activeDialog = popupCode;\r\n this.dialogService.showDialog(popupCode, popupModel, popupMessagePlaceholders);\r\n };\r\n\r\n private approveAccessRequests(accessRequests: any[]): void {\r\n const settings: BulkOperationSettings = {\r\n apiEndpoint: ApiEndpoints.approval.approve,\r\n completionPopupCode: PopupCodes.ApprovalListForm.ApprovalsApprovalCompleted\r\n };\r\n this.performBulkOperation(accessRequests, settings);\r\n }\r\n\r\n private rejectAccessRequests(accessRequests: any[], reasonForRejection: string): void {\r\n const settings: BulkOperationSettings = {\r\n additionalFields: { reasonForRejection },\r\n apiEndpoint: ApiEndpoints.approval.reject,\r\n completionPopupCode: PopupCodes.ApprovalListForm.ApprovalsRejectionCompleted\r\n };\r\n this.performBulkOperation(accessRequests, settings);\r\n }\r\n\r\n private performBulkOperation(\r\n accessRequests: any[],\r\n settings: BulkOperationSettings): void {\r\n\r\n const accessRequestIds = accessRequests.map(accessRequest => accessRequest.id);\r\n this.appDataService.post(settings.apiEndpoint, { accessRequestIds, ...settings.additionalFields })\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe(() => {\r\n const onComplete = () => this.dialogService.showDialog(settings.completionPopupCode);\r\n this.loadGridDataAfterSave(this.filterHandler.getFilterRequest(), onComplete);\r\n });\r\n }\r\n\r\n private getApprovalExportToDataTablesRequest(): ExportToDataTablesRequest {\r\n const entities = this.getQuestionValue(\r\n this.baseForm.model,\r\n NavTabNumbers.ApprovalListForm.approvals,\r\n PageNumbers.ApprovalListForm.approvals,\r\n SectionCodes.ApprovalListForm.approvals,\r\n QuestionCodes.ApprovalListForm.approvalPlaceholder);\r\n const entityIds = entities.map(entity => entity.id);\r\n const approvalExportToDataTablesRequest: ExportToDataTablesRequest = { entityIds };\r\n return approvalExportToDataTablesRequest;\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { NgRecaptcha3Service } from 'ng-recaptcha3';\r\n\r\nimport { CardSetTransformationService, CoreService, DataService, DialogResult, DialogService, RepeaterElementType, SpinnerService } from 'dspx-core';\r\n\r\nimport {\r\n AppDataKeys,\r\n AppSelector,\r\n FormActions,\r\n NavTabNumbers,\r\n OptionSetCodes,\r\n PageNumbers,\r\n PopupCodes,\r\n QuestionCodes,\r\n ReadOnlyAccessPageActionButtons,\r\n SectionCodes,\r\n ServerCallDebounceTimeMs,\r\n ServerErrorPopupCodes\r\n} from '../../constants/app-data.constants';\r\nimport { ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { Templates, Versions } from '../../constants/templates.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\nimport { RequestSaveResultStatus } from '../../constants/request-save-result-status';\r\n\r\nimport { UserSaveRequest } from '../../interfaces/user-save-request.interface';\r\nimport { UserSaveResult } from '../../interfaces/user-save-result.interface';\r\nimport { UserOrganisationChangeRequest } from '../../interfaces/user-organisation-change-request.interface';\r\nimport { UserOrganisationChangeResponse } from '../../interfaces/user-organisation-change-response.interface';\r\nimport { UserOrganisation } from '../../interfaces/user-organisation.interface';\r\nimport { UserRequestUniqueKey } from '../../interfaces/user-request-unique-key.interface';\r\nimport { GetUserRequestDetailsResponse } from '../../interfaces/get-user-request-details-response.interface';\r\nimport { GetInternalUserProfileRequest } from '../../interfaces/get-internal-user-profile-request.interface';\r\nimport { GetInternalUserProfileResponse } from '../../interfaces/get-internal-user-profile-response.interface';\r\nimport { WithdrawUserRequestResponse } from '../../interfaces/withdraw-user-request-response.interface';\r\nimport { AccessDefinitionsByRequiredProperty } from '../../interfaces/access-definitions-by-required-property.interface';\r\nimport { AccessDefinitionAdditionalInfo } from '../../interfaces/access-definition-additional-info.interface';\r\nimport { PopupInfo } from '../../interfaces/popup-info.interface';\r\n\r\nimport { ComponentDeactivationService } from '../../services/component-deactivation.service';\r\nimport { ErrorService } from '../../services/error.service';\r\nimport { FormDataService } from '../../services/form-data.service';\r\nimport { DialogHelperService } from '../../services/dialog-helper.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ApplicationUserService } from '../../services/application-user-service';\r\nimport { FormatHtmlDetailsService } from '../../services/format-html-details-service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseDetailComponent, ReadOnlyGrid } from '../base-detail-component/base-detail-component';\r\n\r\ntype NavigationState = { [k: string]: any; };\r\ntype GetModeIdFunction = (paramMap: ParamMap, navigationState: NavigationState) => string;\r\ntype GetIsModeFunction = (paramMap: ParamMap, navigationState: NavigationState) => boolean;\r\ntype GetIsEmailReadOnlyFunction = (isDraftMode: boolean, isEditMode: boolean) => boolean;\r\ntype GetIdAfterFormLoadFunction = (event: any, navigationState: NavigationState, isDraftMode: boolean, isEditMode: boolean) => string;\r\ntype NavigateFunction = () => void;\r\n\r\ntype Settings =\r\n{\r\n isMyApps: boolean;\r\n hasAnonymousAccess: boolean;\r\n\r\n draftModeEndpointKey: string;\r\n editModeEndpointKey: string;\r\n insertModeEndpointKey: string;\r\n\r\n getIdForDraftMode: GetModeIdFunction;\r\n getIdForEditMode: GetModeIdFunction;\r\n getIdForInsertMode: GetModeIdFunction;\r\n\r\n getIsDraftMode: GetIsModeFunction;\r\n getIsEditMode: GetIsModeFunction;\r\n\r\n getIsEmailReadOnly: GetIsEmailReadOnlyFunction;\r\n\r\n getApplicationUserId: GetIdAfterFormLoadFunction;\r\n getApplicationUserRegistrationId: GetIdAfterFormLoadFunction;\r\n\r\n navigateOnCancel: NavigateFunction;\r\n navigateAfterSave: NavigateFunction;\r\n\r\n saveSuccessfulPopup: string;\r\n customErrorPopups: Map;\r\n\r\n showUserRequestDetailsEndpoint: string;\r\n withdrawUserRequestEndpoint: string;\r\n\r\n componentSelector: string;\r\n};\r\n\r\n@Component({ template: '' })\r\nexport class BaseApplicationUserComponent extends BaseDetailComponent implements OnInit {\r\n\r\n id: string;\r\n formServiceEndpoint: string;\r\n\r\n templateId: number = Templates.user;\r\n versionNo: number = Versions.latest;\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n protected settings: Settings;\r\n\r\n private activeDialog: string;\r\n\r\n private isDraftMode: boolean;\r\n private isEditMode: boolean;\r\n\r\n private isViewModeForUserProfile: boolean;\r\n \r\n private internalDomains: Set = new Set();\r\n private email: string;\r\n private isInternalUser: boolean;\r\n private handleEmailChangeDebounceTimeout: ReturnType;\r\n\r\n private accessDefinitionCodesByRequiredProperty: AccessDefinitionsByRequiredProperty = {\r\n requiringReasonForRequest: new Set(),\r\n requiringUserOrganisationRoleType: new Set()\r\n };\r\n private additionalInfoByAccessDefinitionCode: Map = new Map();\r\n private allowLegacyAccountOperations: boolean;\r\n\r\n private organisationUpdateIsNotAllowed: boolean;\r\n private organisation: UserOrganisation = { hasOrganisation: null, optionalOrganisation: null, organisationId: null };\r\n private applicationBeingEdited: string;\r\n private environmentBeingEdited: string\r\n\r\n private draftId: string;\r\n private applicationUserId: string;\r\n private applicationUserRegistrationId: string;\r\n \r\n private navigationState: NavigationState;\r\n\r\n private changeUserOrganisationEndpoint: string;\r\n private saveEndpoint: string;\r\n\r\n private ldapNotFederatedAccountSignInUrl: string;\r\n\r\n private readOnlyGridControlGroupNames = {\r\n userRequests: 'userRequestVisibility',\r\n appSupportAssignments: 'appSupportAssignmentVisibility',\r\n appAdministratorAssignments: 'appAdministratorAssignmentVisibility',\r\n orgAuthorityAssignments: 'orgAuthorityAssignmentVisibility',\r\n orgSupportAssignments: 'orgSupportAssignmentVisibility'\r\n };\r\n\r\n constructor(\r\n protected componentDeactivationService: ComponentDeactivationService,\r\n protected router: Router,\r\n protected route: ActivatedRoute,\r\n protected recaptchaService: NgRecaptcha3Service,\r\n protected errorService: ErrorService,\r\n protected coreService: CoreService,\r\n protected dataService: DataService,\r\n protected dialogService: DialogService,\r\n protected spinnerService: SpinnerService,\r\n protected appDataService: AppDataService,\r\n protected formDataService: FormDataService,\r\n protected dialogHelperService: DialogHelperService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected applicationUserService: ApplicationUserService,\r\n protected formatHtmlDetailsService: FormatHtmlDetailsService,\r\n protected userProfileService: UserProfileService) {\r\n\r\n super(dialogService, appDataService, dialogHelperService, htmlHelperService, componentDeactivationService, router);\r\n\r\n this.navigationState = this.router.getCurrentNavigation()?.extras?.state;\r\n\r\n this.readOnlyGridRegistry = {\r\n [this.readOnlyGridControlGroupNames.userRequests]: new ReadOnlyGrid(),\r\n [this.readOnlyGridControlGroupNames.appSupportAssignments]: new ReadOnlyGrid(),\r\n [this.readOnlyGridControlGroupNames.appAdministratorAssignments]: new ReadOnlyGrid(),\r\n [this.readOnlyGridControlGroupNames.orgAuthorityAssignments]: new ReadOnlyGrid(),\r\n [this.readOnlyGridControlGroupNames.orgSupportAssignments]: new ReadOnlyGrid()\r\n };\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.changeUserOrganisationEndpoint = this.settings.hasAnonymousAccess\r\n ? ApiEndpoints.applicationUser.changeUserOrganisationAnonymous\r\n : ApiEndpoints.applicationUser.changeUserOrganisation;\r\n\r\n this.saveEndpoint = this.settings.hasAnonymousAccess\r\n ? ApiEndpoints.applicationUser.saveAnonymous\r\n : ApiEndpoints.applicationUser.save;\r\n\r\n if (!this.settings.hasAnonymousAccess) {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n }\r\n\r\n this.route.paramMap.subscribe((paramMap: ParamMap) => {\r\n const idForDraftMode = this.settings.getIdForDraftMode(paramMap, this.navigationState);\r\n const idForEditMode = this.settings.getIdForEditMode(paramMap, this.navigationState);\r\n const idForInsertMode = this.settings.getIdForInsertMode(paramMap, this.navigationState);\r\n\r\n const isDraftMode = this.settings.getIsDraftMode(paramMap, this.navigationState);\r\n const isEditMode = this.settings.getIsEditMode(paramMap, this.navigationState);\r\n\r\n this.draftId = idForDraftMode;\r\n this.isDraftMode = isDraftMode;\r\n this.isEditMode = isEditMode;\r\n\r\n if (isDraftMode) {\r\n // New or existing record after a reload due to organisation change\r\n this.setDirtyFlagAfterLoading();\r\n this.formServiceEndpoint = this.settings.draftModeEndpointKey;\r\n this.id = idForDraftMode;\r\n }\r\n else if (isEditMode) {\r\n // Existing record on first load\r\n this.resetDirtyFlagAfterLoading();\r\n this.formServiceEndpoint = this.settings.editModeEndpointKey;\r\n this.id = idForEditMode;\r\n }\r\n else {\r\n // New record on first load\r\n this.resetDirtyFlagAfterLoading();\r\n this.formServiceEndpoint = this.settings.insertModeEndpointKey;\r\n this.id = idForInsertMode;\r\n }\r\n });\r\n\r\n const isEditingAccessDefinition = (sectionIndex: number) =>\r\n this.formDataService.userFormIsEditingAccessDefinition(this.baseForm.model, sectionIndex);\r\n\r\n const showReasonForRequest = (sectionIndex: number) =>\r\n this.accessDefinitionCodesByRequiredProperty.requiringReasonForRequest.has(this.getAccessDefinitionCode(sectionIndex));\r\n const showUserOrganisationRoleType = (sectionIndex: number) =>\r\n this.accessDefinitionCodesByRequiredProperty.requiringUserOrganisationRoleType.has(this.getAccessDefinitionCode(sectionIndex)); \r\n\r\n this.coreService.conditionFunctions['isOrganisationReadOnly'] = () => this.organisationUpdateIsNotAllowed;\r\n this.coreService.conditionFunctions['isEmailReadOnly'] = () => this.settings.getIsEmailReadOnly(this.isDraftMode, this.isEditMode);\r\n this.coreService.conditionFunctions['isOtherEmailsReadOnly'] = () => true;\r\n this.coreService.conditionFunctions['isUserProfileReadOnly'] = () => this.isInternalUser;\r\n this.coreService.conditionFunctions['isLegacyUsernameReadOnly'] = () => true;\r\n this.coreService.conditionFunctions['isLegacyUserIdReadOnly'] = () => true;\r\n this.coreService.conditionFunctions['isEditing'] = () => this.isEditMode;\r\n this.coreService.conditionFunctions['isEditingAccessDefinition'] = (pageIndex: number, sectionIndex: number) => isEditingAccessDefinition(sectionIndex);\r\n this.coreService.conditionFunctions['showReasonForRequest'] = (args: string[]) => showReasonForRequest(parseInt(args[1]));\r\n this.coreService.conditionFunctions['showUserOrganisationRoleType'] = (args: string[]) => showUserOrganisationRoleType(parseInt(args[1])); \r\n this.coreService.conditionFunctions['shouldShowGridControl'] = (args: string[]) => this.shouldShowReadOnlyGrid(args[0], args[1]);\r\n\r\n this.coreService.applicationFunctions['canSave'] = () => this.isFormEditable;\r\n this.coreService.applicationFunctions['cancel'] = () => this.cancel(null);\r\n\r\n this.formDataService.configureUserFormViewMode(\r\n () => this.baseForm.fields,\r\n () => this.isFormEditable,\r\n () => this.isEditMode,\r\n (enabled: boolean) => this.isViewModeForUserProfile = enabled,\r\n () => this.isViewModeForUserProfile,\r\n () => this.allowLegacyAccountOperations,\r\n () => this.legacyAccountLogin(),\r\n () => this.legacyAccountReset());\r\n\r\n this.formDataService.configureUserFormReadOnlyGridViewMode(\r\n () => this.toggleReadOnlyGridVisibility(this.readOnlyGridControlGroupNames.userRequests),\r\n () => this.toggleReadOnlyGridVisibility(this.readOnlyGridControlGroupNames.appAdministratorAssignments),\r\n () => this.toggleReadOnlyGridVisibility(this.readOnlyGridControlGroupNames.appSupportAssignments),\r\n () => this.toggleReadOnlyGridVisibility(this.readOnlyGridControlGroupNames.orgAuthorityAssignments),\r\n () => this.toggleReadOnlyGridVisibility(this.readOnlyGridControlGroupNames.orgSupportAssignments));\r\n\r\n const isEditItemAllowed = (sectionIndex?: number) =>\r\n !isEditingAccessDefinition(sectionIndex)\r\n const isBrowseApplicationAllowed = (sectionIndex?: number) =>\r\n this.settings.isMyApps && isEditingAccessDefinition(sectionIndex)\r\n\r\n this.formDataService.configureUserFormRepeatingSection(\r\n () => this.isFormEditable,\r\n (sectionIndex: number) => isEditItemAllowed(sectionIndex),\r\n (sectionIndex: number) => isBrowseApplicationAllowed(sectionIndex),\r\n (sectionIndex: number) => this.browseApplication(sectionIndex),\r\n (sectionIndex: number, onComplete: (cancel: boolean) => void) => this.confirmRevokeUserAccess(sectionIndex, onComplete));\r\n\r\n this.ldapNotFederatedAccountSignInUrl = this.appDataService.getAppData(AppDataKeys.ldapNotFederatedAccountSignInUrl);\r\n }\r\n\r\n formLoaded(event: any): void {\r\n\r\n if (this.settings.hasAnonymousAccess) {\r\n const recaptchaSiteKey = this.appDataService.getAppData(AppDataKeys.googleRecaptchaSiteKey);\r\n this.recaptchaService.init(recaptchaSiteKey).then(status => {\r\n console.log('reCAPTCHA service init: ' + status);\r\n });\r\n }\r\n\r\n this.isFormEditable = !!event?.isFormEditable;\r\n if (!this.isFormEditable) {\r\n // If the form is being shown as read-only, then switch to Edit mode (all fields will be disabled anyway), because View mode does not display all fields.\r\n this.isViewModeForUserProfile = false;\r\n\r\n // If the form is being shown as read-only, then toggle all read-only grids to \"show\" mode.\r\n this.toggleReadOnlyGridVisibility(this.readOnlyGridControlGroupNames.userRequests);\r\n this.toggleReadOnlyGridVisibility(this.readOnlyGridControlGroupNames.appAdministratorAssignments);\r\n this.toggleReadOnlyGridVisibility(this.readOnlyGridControlGroupNames.appSupportAssignments);\r\n this.toggleReadOnlyGridVisibility(this.readOnlyGridControlGroupNames.orgAuthorityAssignments);\r\n this.toggleReadOnlyGridVisibility(this.readOnlyGridControlGroupNames.orgSupportAssignments);\r\n }\r\n else if (this.isDraftMode) {\r\n // If it is new or existing record after a reload due to organisation change, then switch to Edit mode, because it was in Edit mode already before the reload.\r\n this.isViewModeForUserProfile = false;\r\n }\r\n else {\r\n this.isViewModeForUserProfile = true;\r\n }\r\n\r\n this.ensurePageActionButtonsAreEnabledOnFormLoad(ReadOnlyAccessPageActionButtons.UserForm);\r\n\r\n this.internalDomains = new Set(event.internalDomains ?? []);\r\n this.email = this.getEmailFromModel();\r\n this.isInternalUser = this.isInternalEmail(this.email);\r\n\r\n this.accessDefinitionCodesByRequiredProperty = {\r\n requiringReasonForRequest: new Set(event.accessDefinitionCodesByRequiredProperty?.requiringReasonForRequest ?? []),\r\n requiringUserOrganisationRoleType: new Set(event.accessDefinitionCodesByRequiredProperty?.requiringUserOrganisationRoleType ?? [])\r\n };\r\n this.additionalInfoByAccessDefinitionCode = new Map(Object.entries(event.additionalInfoByAccessDefinitionCode ?? {}));\r\n this.allowLegacyAccountOperations = event.allowLegacyAccountOperations;\r\n\r\n this.organisationUpdateIsNotAllowed = event.organisationUpdateIsNotAllowed;\r\n this.organisation = this.applicationUserService.getUserOrganisation(this.baseForm.model);\r\n\r\n this.applicationUserId = this.settings.getApplicationUserId(event, this.navigationState, this.isDraftMode, this.isEditMode);\r\n this.applicationUserRegistrationId = this.settings.getApplicationUserRegistrationId(event, this.navigationState, this.isDraftMode, this.isEditMode);\r\n\r\n event.popupCode = event.popupCode ? event.popupCode : this.navigationState?.popupCode;\r\n const onPopupClosed = (popupCode: string, dialogResult: DialogResult) => {\r\n switch (popupCode) {\r\n case PopupCodes.UserForm.CannotChangeOrganisation: {\r\n this.scrollToAccessDefinitionSection();\r\n break;\r\n }\r\n }\r\n }\r\n this.handlePostFormLoadActions(event, onPopupClosed);\r\n\r\n this.forceRenderAsync();\r\n }\r\n\r\n modelChanged(event: any): void {\r\n this.handleSingleCheckBoxChanges();\r\n this.handleOrganisationChange();\r\n this.handleEmailChangeWithDebounce();\r\n this.preSelectSingleEnvironmentAndRoleByUserSelection();\r\n }\r\n\r\n save(event: any): void {\r\n if (this.internalUserNotFound()) {\r\n this.showInternalUserProfileNotification();\r\n return;\r\n }\r\n const saveDataRequest: UserSaveRequest = {\r\n template: this.templateId,\r\n versionNumber: this.versionNo,\r\n id: this.applicationUserId,\r\n response: event.model,\r\n expectedLastUpdateTime: event.lastUpdatedTime,\r\n isSubmit: false,\r\n organisationId: this.organisation.organisationId,\r\n isMyApps: this.settings.isMyApps,\r\n recaptchaToken: null, // to be set later\r\n applicationUserRegistrationId: this.applicationUserRegistrationId\r\n }\r\n if (!event.isFormValid) {\r\n this.baseForm.markAllFieldsAsTouched();\r\n if (!this.baseForm.fields[0]?.formControl.valid) {\r\n this.baseForm.showValidationSummary(true);\r\n this.dialogService.showDialog(PopupCodes.Common.ValidationError);\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n\r\n cancel(event: any): void {\r\n this.settings.navigateOnCancel();\r\n }\r\n\r\n dialogSubmitted(event: any): void {\r\n\r\n const activeDialog = this.activeDialog;\r\n delete this.activeDialog;\r\n\r\n switch (activeDialog) {\r\n case PopupCodes.UserForm.NoUserAccessDefinitions:\r\n case PopupCodes.UserForm.DuplicateUserAccessDefinition: {\r\n this.scrollToAccessDefinitionSection();\r\n break;\r\n }\r\n case this.settings.saveSuccessfulPopup: {\r\n this.settings.navigateAfterSave();\r\n break;\r\n }\r\n case PopupCodes.UserForm.RevokeUserRequestConfirmation: {\r\n this.revokeUserRequest(event?.sectionIndex, event?.onComplete, event?.reasonForRequestRevoke);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n actionButtonClicked(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.UserForm.userRequestGrid: {\r\n switch (event.event.type) {\r\n case FormActions.UserForm.Details: {\r\n const request = event.event.data;\r\n const requestUniqueKey = { userRequestSource: request.userRequestSource, id: request.id };\r\n this.showUserRequestDetails(requestUniqueKey);\r\n break;\r\n }\r\n case FormActions.UserForm.Withdraw: {\r\n const request = event.event.data;\r\n const requestUniqueKey = { userRequestSource: request.userRequestSource, id: request.id };\r\n this.withdrawUserRequest(requestUniqueKey);\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private saveData(request: UserSaveRequest): void {\r\n\r\n const saveDataFunction = (request: UserSaveRequest) => {\r\n this.spinnerService.showSpinner();\r\n this.dataService.saveData(this.saveEndpoint, request)\r\n .pipe(take(1), this.errorService.errorHandler(this.settings.customErrorPopups))\r\n .subscribe((data: UserSaveResult) => {\r\n this.spinnerService.hideSpinner();\r\n if (this.handleWarnings(request, data, r => this.saveData(r))) {\r\n return;\r\n }\r\n if (ServerErrorPopupCodes.SaveUser.includes(data.message)) {\r\n this.activeDialog = data.message;\r\n }\r\n else {\r\n this.activeDialog = this.settings.saveSuccessfulPopup;\r\n }\r\n this.dialogHelperService.showDialog(this.activeDialog, null, data.details);\r\n });\r\n };\r\n\r\n if (this.settings.hasAnonymousAccess) {\r\n this.recaptchaService.getToken().then(\r\n token => {\r\n request.recaptchaToken = token;\r\n saveDataFunction(request);\r\n },\r\n error => console.log('reCAPTCHA service getToken error: ' + error));\r\n }\r\n else {\r\n saveDataFunction(request);\r\n }\r\n }\r\n\r\n private scrollToAccessDefinitionSection(): void {\r\n const accessDefinitionTopOfAddButtonId = this.formDataService.getSectionRepeaterHtmlElementId(\r\n this.baseForm.fields,\r\n [NavTabNumbers.UserForm.applicationAccess, PageNumbers.UserForm.applicationAccess, SectionCodes.UserForm.applicationRef],\r\n RepeaterElementType.TopOfAddButton);\r\n if (accessDefinitionTopOfAddButtonId) {\r\n this.htmlHelperService.setFocusToHtmlElementById(accessDefinitionTopOfAddButtonId, null);\r\n }\r\n }\r\n\r\n private showUserRequestDetails(requestUniqueKey: UserRequestUniqueKey): void {\r\n this.appDataService.post(this.settings.showUserRequestDetailsEndpoint, requestUniqueKey)\r\n .pipe(take(1))\r\n .subscribe((response: GetUserRequestDetailsResponse) => {\r\n this.dialogService.showSimplePopup(this.formatHtmlDetailsService.formatUserRequestDetailsHtml(response), 'Request Details', 'Close');\r\n });\r\n }\r\n\r\n private withdrawUserRequest(requestUniqueKey: UserRequestUniqueKey): void {\r\n this.dialogService\r\n .showConfirm(PopupCodes.UserForm.WithdrawUserRequestConfirmation)\r\n .pipe(take(1))\r\n .subscribe(data => {\r\n switch (data as DialogResult) {\r\n case DialogResult.ACCEPTED: {\r\n this.appDataService.post(this.settings.withdrawUserRequestEndpoint, requestUniqueKey)\r\n .pipe(take(1))\r\n .subscribe((response: WithdrawUserRequestResponse) => {\r\n this.applicationUserService.replaceUserRequestGrid(this.baseForm.model, response.userRequestGridModel);\r\n this.forceRender();\r\n });\r\n break;\r\n }\r\n case DialogResult.REJECTED: {\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getAccessDefinitionCode(sectionIndex: number): string {\r\n const accessDefinitionCode = this.applicationUserService.getAccessDefinitionCode(this.baseForm.model, sectionIndex);\r\n return accessDefinitionCode;\r\n };\r\n\r\n private getAccessDefinitionAdditionalInfo(sectionIndex: number): AccessDefinitionAdditionalInfo {\r\n const accessDefinitionCode = this.getAccessDefinitionCode(sectionIndex);\r\n const accessDefinitionAdditionalInfo = this.additionalInfoByAccessDefinitionCode.get(accessDefinitionCode);\r\n return accessDefinitionAdditionalInfo;\r\n }\r\n\r\n private confirmRevokeUserAccess(sectionIndex: number, onComplete: (cancel: boolean) => void): void {\r\n const popupModel = { sectionIndex, onComplete };\r\n this.activeDialog = PopupCodes.UserForm.RevokeUserRequestConfirmation;\r\n this.dialogService.showDialog(this.activeDialog, popupModel);\r\n };\r\n\r\n private revokeUserRequest(sectionIndex: number, onComplete: (cancel: boolean) => void, reasonForRequestRevoke: string) {\r\n this.applicationUserService.addToRevokedAccessDefinitions(this.baseForm.model, sectionIndex, reasonForRequestRevoke);\r\n onComplete(false);\r\n }\r\n\r\n private browseApplication(sectionIndex: number): void {\r\n const applicationUrl = this.getAccessDefinitionAdditionalInfo(sectionIndex)?.applicationUrl;\r\n if (!applicationUrl) {\r\n return;\r\n }\r\n this.openInNewTabAbsoluteUrl(applicationUrl);\r\n }\r\n\r\n private legacyAccountLogin(): void {\r\n this.openInNewTabAbsoluteUrl(this.ldapNotFederatedAccountSignInUrl);\r\n }\r\n\r\n private legacyAccountReset(): void {\r\n this.navigate(['/', RouteConstants.userLegacyProfileSetup.resetEdit]);\r\n }\r\n\r\n private handleSingleCheckBoxChanges(): void {\r\n this.applicationUserService.handleSingleCheckBoxQuestionChanges(\r\n () => this.baseForm.model,\r\n model => this.baseForm.model = model);\r\n }\r\n \r\n private handleOrganisationChange(): void {\r\n const model = this.baseForm.model;\r\n const lastUpdatedTime = this.baseForm.lastUpdatedTime;\r\n const organisation = this.applicationUserService.getUserOrganisation(model);\r\n if (organisation.hasOrganisation === OptionSetCodes.UserForm.YesNo.Yes && !organisation.optionalOrganisation) {\r\n return;\r\n }\r\n if (organisation.organisationId !== this.organisation.organisationId) {\r\n\r\n const previousOrganisation = this.organisation;\r\n this.organisation = organisation;\r\n\r\n const changeOrganisationFunction = (token: string) => {\r\n const userOrganisationChangeRequest: UserOrganisationChangeRequest = {\r\n template: this.templateId,\r\n versionNumber: this.versionNo,\r\n id: this.applicationUserId,\r\n response: JSON.stringify(model),\r\n expectedLastUpdateTime: lastUpdatedTime,\r\n isSubmit: false,\r\n organisationId: organisation.organisationId,\r\n isMyApps: this.settings.isMyApps,\r\n recaptchaToken: token,\r\n applicationUserRegistrationId: this.applicationUserRegistrationId,\r\n draftId: this.draftId,\r\n previousOrganisation: previousOrganisation\r\n };\r\n this.dataService.saveData(this.changeUserOrganisationEndpoint, userOrganisationChangeRequest)\r\n .pipe(take(1))\r\n .subscribe((data: UserOrganisationChangeResponse) => {\r\n const newNavigationState: NavigationState = {\r\n draftId: data.draftId,\r\n applicationUserId: this.applicationUserId,\r\n applicationUserRegistrationId: this.applicationUserRegistrationId,\r\n popupCode: data.popupCode\r\n };\r\n this.reloadPage(true, { state: newNavigationState });\r\n });\r\n }\r\n\r\n if (this.settings.hasAnonymousAccess) {\r\n this.recaptchaService.getToken().then(\r\n token => changeOrganisationFunction(token),\r\n error => console.log('reCAPTCHA service getToken error: ' + error));\r\n }\r\n else {\r\n changeOrganisationFunction(null);\r\n }\r\n }\r\n }\r\n\r\n private handleEmailChangeWithDebounce(): void {\r\n clearTimeout(this.handleEmailChangeDebounceTimeout);\r\n this.handleEmailChangeDebounceTimeout = setTimeout(() => this.handleEmailChange(), ServerCallDebounceTimeMs);\r\n }\r\n\r\n private preSelectSingleEnvironmentAndRoleByUserSelection(): void {\r\n const accessBeingEdited = this.applicationUserService.getAccessBeingEdited(this.baseForm.model);\r\n \r\n if (!accessBeingEdited) {\r\n return;\r\n }\r\n \r\n if (accessBeingEdited[QuestionCodes.UserForm.applicationName] !== this.applicationBeingEdited) {\r\n this.applicationBeingEdited = accessBeingEdited[QuestionCodes.UserForm.applicationName];\r\n this.updateAccessBeingEditedInModel(accessBeingEdited, QuestionCodes.UserForm.envName, accessBeingEdited[QuestionCodes.UserForm.applicationName]);\r\n // we have to delay the update of the role selection, as it depends on the environment selection\r\n // and the options are not yet loaded into the role drop down\r\n const RoleDropdownLoadMs = 200;\r\n setTimeout(() => this.updateAccessBeingEditedInModel(accessBeingEdited, QuestionCodes.UserForm.roleName, accessBeingEdited[QuestionCodes.UserForm.envName]), RoleDropdownLoadMs);\r\n }\r\n else if (accessBeingEdited[QuestionCodes.UserForm.envName] !== this.environmentBeingEdited) {\r\n this.environmentBeingEdited = accessBeingEdited[QuestionCodes.UserForm.envName];\r\n this.updateAccessBeingEditedInModel(accessBeingEdited, QuestionCodes.UserForm.roleName, accessBeingEdited[QuestionCodes.UserForm.envName]);\r\n }\r\n }\r\n\r\n private updateAccessBeingEditedInModel(accessBeingEdited: any, questionCode: string, optionSetId: string): void {\r\n if (!accessBeingEdited) {\r\n return;\r\n }\r\n\r\n if(!optionSetId || !this.hasSingleOption(questionCode, optionSetId)) {\r\n return;\r\n }\r\n\r\n let optionSet = this.getOptionSet(questionCode, optionSetId);\r\n\r\n const firstOption = optionSet[0]\r\n if (!firstOption) {\r\n return;\r\n }\r\n\r\n accessBeingEdited[questionCode] = firstOption.code;\r\n \r\n this.forceRenderByModelChange();\r\n }\r\n\r\n private getOptionSet(questionCode: string, optionSetId: string) {\r\n switch (questionCode) {\r\n case QuestionCodes.UserForm.envName:\r\n return this.baseForm.optionSets[`${OptionSetCodes.UserForm.Environment.OptionSetCode}-${QuestionCodes.UserForm.applicationName}-${optionSetId}`];\r\n case QuestionCodes.UserForm.roleName:\r\n return this.baseForm.optionSets[`${OptionSetCodes.UserForm.Role.OptionSetCode}-${QuestionCodes.UserForm.envName}-${optionSetId}`];\r\n }\r\n return null;\r\n }\r\n\r\n private hasSingleOption(questionCode: string, optionSetId: string): boolean {\r\n const optionSet = this.getOptionSet(questionCode, optionSetId);\r\n if (!optionSet) {\r\n return false;\r\n }\r\n\r\n return optionSet.length === 1;\r\n }\r\n\r\n private getEmailFromModel(): string {\r\n const email = this.applicationUserService\r\n .getUserEmail(this.baseForm.model)\r\n ?.trim()\r\n ?.toUpperCase();\r\n return email;\r\n }\r\n\r\n private isInternalEmail(email: string): boolean {\r\n if (this.internalDomains.size === 0 || !email || email.length < 3) {\r\n return false;\r\n }\r\n const indexOfAtSymbol = email.indexOf('@');\r\n if (indexOfAtSymbol <= 0) {\r\n return false;\r\n }\r\n const domain = email.substring(indexOfAtSymbol + 1);\r\n if (domain.length === 0) {\r\n return false;\r\n }\r\n const isInternalEmail = this.internalDomains.has(domain);\r\n return isInternalEmail;\r\n }\r\n\r\n private getInternalUserProfile(request: GetInternalUserProfileRequest, callback: (response: GetInternalUserProfileResponse) => void): void {\r\n this.appDataService.post(ApiEndpoints.applicationUser.getInternalUserProfile, request)\r\n .pipe(take(1))\r\n .subscribe((response: GetInternalUserProfileResponse) => callback(response));\r\n }\r\n\r\n private internalUserNotFound(): boolean {\r\n return this.isInternalUser && !this.applicationUserService.isUserProfileValid(this.baseForm.model);\r\n }\r\n\r\n private showInternalUserProfileNotification(): void {\r\n const showNotification = (severity: string, message: string) => {\r\n const isClosable = true;\r\n const isSticky = false;\r\n const durationMs = 5000;\r\n this.dialogService.showSimpleNotification(severity, message, isClosable, isSticky, durationMs);\r\n }\r\n this.internalUserNotFound()\r\n ? showNotification('error', `Internal user '${this.email}' was not found in the departmental authentication system.`)\r\n : showNotification('success', `Internal user '${this.email}' was found in the departmental authentication system.`);\r\n }\r\n\r\n private handleEmailChange(): void {\r\n\r\n const email = this.getEmailFromModel();\r\n if (this.email === email) {\r\n return;\r\n }\r\n\r\n const isInternalUser = this.isInternalEmail(email);\r\n\r\n const handleChange = (response: GetInternalUserProfileResponse) => {\r\n if (response) {\r\n this.applicationUserService.replaceUserProfile(this.baseForm.model, response);\r\n this.forceRenderByModelChange();\r\n }\r\n this.email = email;\r\n this.isInternalUser = isInternalUser;\r\n };\r\n\r\n if (isInternalUser) {\r\n // Scenario #1: the email has changed AND is internal (it doesn't matter if it was internal or external before):\r\n // - call the backend to retrieve the user profile\r\n // - set the user profile in the form\r\n // - make the user profile fields read-only\r\n // - show appropriate notification in the UI\r\n this.getInternalUserProfile({ email }, response => {\r\n handleChange(response ?? {});\r\n this.showInternalUserProfileNotification();\r\n });\r\n }\r\n else if (this.isInternalUser) {\r\n // Scenario #2: the email has changed AND went from internal to external:\r\n // - clear the user profile in the form\r\n // - make the user profile fields read-write\r\n handleChange({});\r\n }\r\n else {\r\n // Scenario #3: the email has changed AND remained external\r\n // - make no changes to the form\r\n handleChange(null);\r\n }\r\n }\r\n}\r\n","import { Component, ViewChild } from \"@angular/core\";\r\n\r\nimport { DspxCardSetBaseFormComponent } from \"dspx-core\";\r\n\r\nimport { AppDataKeys } from \"../../constants/app-data.constants\";\r\n\r\n\r\nimport { AppDataService } from \"../../services/app-data.service\";\r\nimport { HtmlHelperService, PageActionButtonPath } from \"../../services/html-helper.service\";\r\n\r\n@Component({ template: '' })\r\nexport class BaseComponent {\r\n\r\n @ViewChild(DspxCardSetBaseFormComponent)\r\n protected baseForm: DspxCardSetBaseFormComponent;\r\n\r\n constructor(\r\n protected appDataService: AppDataService,\r\n protected htmlHelperService: HtmlHelperService) {\r\n\r\n this.appDataService.setAppData(AppDataKeys.getPopupRegistryFunction, () => this.baseForm.popups);\r\n }\r\n\r\n // This ensures that a button is enabled even when the entire form is not editable.\r\n // For example, a Cancel button should always be enabled.\r\n protected ensurePageActionButtonsAreEnabledOnFormLoad(pageActionButtonPaths: PageActionButtonPath[]): void {\r\n setTimeout(\r\n () => {\r\n this.htmlHelperService.ensurePageActionButtonsAreEnabled(pageActionButtonPaths);\r\n });\r\n }\r\n}\r\n","import { Component, HostListener } from \"@angular/core\";\r\nimport { NavigationExtras, Router } from \"@angular/router\";\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { DialogResult, DialogService } from \"dspx-core\";\r\n\r\nimport { AppDataKeys } from \"../../constants/app-data.constants\";\r\n\r\nimport { SaveRequest } from \"../../interfaces/save-request.interface\";\r\nimport { SaveResult } from \"../../interfaces/save-result.interface\";\r\nimport { DeactivationGuard } from \"../../interfaces/deactivation-guard.interface\";\r\nimport { BaseResponseAndConfigResponseDto } from '../../interfaces/base-response-and-config-response.interface';\r\n\r\nimport { AppDataService } from \"../../services/app-data.service\";\r\nimport { DialogHelperService } from \"../../services/dialog-helper.service\";\r\nimport { ComponentDeactivationService } from '../../services/component-deactivation.service';\r\nimport { HtmlHelperService } from \"../../services/html-helper.service\";\r\n\r\nimport { BaseComponent } from \"../base-component/base-component\";\r\n\r\ntype FileUploadQuestion = { getQuestionModel: (formModel: any) => any };\r\n\r\nexport type ReadOnlyGridRegistry = { [key: string]: ReadOnlyGrid; };\r\n\r\nexport class ReadOnlyGrid {\r\n\r\n private isVisible: boolean;\r\n\r\n showButton: boolean;\r\n hideButton: boolean;\r\n statusBar: boolean;\r\n grid: boolean;\r\n\r\n constructor(isVisible: boolean = false) {\r\n this.setVisibility(isVisible);\r\n }\r\n\r\n setVisibility(isVisible: boolean): void {\r\n this.isVisible = isVisible;\r\n\r\n this.showButton = !isVisible;\r\n this.hideButton = isVisible;\r\n this.statusBar = isVisible;\r\n this.grid = isVisible;\r\n }\r\n\r\n toggleVisibility(): void {\r\n this.setVisibility(!this.isVisible);\r\n }\r\n\r\n static isButtonControl(controlName: string): boolean {\r\n return controlName === 'showButton' || controlName === 'hideButton';\r\n }\r\n}\r\n\r\n@Component({ template: '' })\r\nexport class BaseDetailComponent extends BaseComponent implements DeactivationGuard {\r\n\r\n protected readOnlyGridRegistry: ReadOnlyGridRegistry;\r\n\r\n protected fileUploadQuestions: FileUploadQuestion[];\r\n protected isFormEditable = false;\r\n\r\n private ignoreCanDeactivateGuard = false;\r\n\r\n constructor(\r\n protected dialogService: DialogService,\r\n protected appDataService: AppDataService,\r\n protected dialogHelperService: DialogHelperService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected componentDeactivationService: ComponentDeactivationService,\r\n protected router: Router) {\r\n\r\n super(\r\n appDataService,\r\n htmlHelperService);\r\n }\r\n\r\n canDeactivate = () => this.ignoreCanDeactivateGuard || !this.formHasUpdates();\r\n\r\n protected handleWarnings(\r\n request: TSaveRequest,\r\n data: TSaveResult,\r\n saveDataFunction: (request: TSaveRequest) => void): boolean {\r\n\r\n if (!data.warnings?.length) {\r\n return false;\r\n }\r\n\r\n this.dialogHelperService.showWarnings(data.warnings)\r\n .pipe(take(1))\r\n .subscribe(data => {\r\n switch (data as DialogResult) {\r\n case DialogResult.ACCEPTED: {\r\n request.ignoreWarnings = true;\r\n saveDataFunction(request);\r\n break;\r\n }\r\n case DialogResult.REJECTED: {\r\n break;\r\n }\r\n }\r\n });\r\n\r\n return true;\r\n }\r\n\r\n protected handlePostFormLoadActions(\r\n responseAndConfig: BaseResponseAndConfigResponseDto,\r\n onPopupClosed: (popupCode: string, dialogResult: DialogResult) => void = null) {\r\n\r\n const showDialogIfRequired = (popupCode: string) => {\r\n return new Observable(subscriber => {\r\n const nextAndComplete = () => {\r\n subscriber.next();\r\n subscriber.complete();\r\n };\r\n if (popupCode) {\r\n this.dialogService.showConfirm(popupCode)\r\n .pipe(take(1))\r\n .subscribe(data => {\r\n onPopupClosed?.(popupCode, data as DialogResult);\r\n nextAndComplete();\r\n });\r\n }\r\n else {\r\n nextAndComplete();\r\n }\r\n })\r\n };\r\n\r\n const navigateIfRequired = (clientRoute: string) => {\r\n const ignoreUnsavedChanges = true;\r\n if (clientRoute) {\r\n this.navigate(['/', ...clientRoute.split('/')], ignoreUnsavedChanges);\r\n }\r\n };\r\n\r\n showDialogIfRequired(responseAndConfig.popupCode)\r\n .subscribe(() => navigateIfRequired(responseAndConfig.forwardClientRoute));\r\n }\r\n\r\n protected openInNewTabAbsoluteUrl(absoluteUrl: string) {\r\n window.open(absoluteUrl, '_blank');\r\n }\r\n\r\n protected navigateToAbsoluteUrl(absoluteUrl: string, ignoreUnsavedChanges = false) {\r\n this.ignoreCanDeactivateGuard = ignoreUnsavedChanges;\r\n window.location.href = absoluteUrl;\r\n }\r\n\r\n protected navigate(commands: any[], ignoreUnsavedChanges = false, extras?: NavigationExtras) {\r\n this.ignoreCanDeactivateGuard = ignoreUnsavedChanges;\r\n this.router.navigate(commands, extras);\r\n }\r\n\r\n protected reloadPage(ignoreUnsavedChanges = false, extras?: NavigationExtras) {\r\n\r\n const executeReloadIgnoringUnsavedChanges = () => {\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n this.navigate([this.router.url], true, extras);\r\n };\r\n\r\n // We need to call ComponentDeactivationService.canDeactivate manually because navigating with reload option does not trigger the call automatically\r\n this.ignoreCanDeactivateGuard = ignoreUnsavedChanges;\r\n const canDeactivateResult = this.componentDeactivationService.canDeactivate(this);\r\n if (canDeactivateResult === true) {\r\n executeReloadIgnoringUnsavedChanges();\r\n }\r\n else {\r\n canDeactivateResult\r\n .pipe(take(1))\r\n .subscribe((canDeactivate: boolean) => {\r\n if (canDeactivate) {\r\n executeReloadIgnoringUnsavedChanges();\r\n }\r\n });\r\n }\r\n }\r\n\r\n protected shouldShowReadOnlyGrid(controlGroupName: string, controlName: string): boolean {\r\n if (!this.isFormEditable && ReadOnlyGrid.isButtonControl(controlName)) {\r\n // If the form is being shown as read-only, then hide all buttons (because the read-only grid is set to \"show\" mode).\r\n return false;\r\n }\r\n const readOnlyGrid = this.readOnlyGridRegistry?.[controlGroupName];\r\n return readOnlyGrid?.[controlName] ?? false;\r\n }\r\n\r\n protected toggleReadOnlyGridVisibility(controlGroupName: string, forceRender: boolean = true): void {\r\n const readOnlyGrid = this.readOnlyGridRegistry?.[controlGroupName];\r\n if (readOnlyGrid) {\r\n readOnlyGrid.toggleVisibility();\r\n if (forceRender) {\r\n this.forceRenderByModelChange();\r\n }\r\n }\r\n }\r\n\r\n protected forceRenderByModelChange(): void {\r\n this.baseForm.model = { ...this.baseForm.model };\r\n }\r\n\r\n // This is just a workaround to force the rendering of controls within a form.\r\n // This can be necessary in the following scenarios:\r\n //\r\n // - Due to a framework issue, when loading a form, any empty repeating page/section with \"repeatingItemRequired\" = true\r\n // will not be displayed until the next time the form is rendered.\r\n //\r\n // - For some controls (e.g. data-grids), an update to the model does not automatically trigger the rendering of the control.\r\n //\r\n protected forceRender(): void {\r\n if (this.baseForm.form.dirty) {\r\n this.baseForm.form.markAsPristine();\r\n this.baseForm.form.markAsDirty();\r\n }\r\n else {\r\n this.baseForm.form.markAsDirty();\r\n this.baseForm.form.markAsPristine();\r\n }\r\n }\r\n protected forceRenderAsync(): void {\r\n setTimeout(() => this.forceRender(), 200);\r\n }\r\n\r\n protected setDirtyFlagAfterLoading() {\r\n setTimeout(() => this.baseForm.form.markAsDirty(), 200);\r\n }\r\n\r\n protected resetDirtyFlagAfterLoading() {\r\n // This is just a lame workaround to address the fact that empty forms containing repeating pages/sections,\r\n // if they are configured to expand the first empty element on load, then they will cause the dirty flag to be set even if the user has not touched the form yet.\r\n setTimeout(() => this.baseForm.form.markAsPristine(), 200);\r\n }\r\n\r\n // @HostListener allows us to also guard against browser refresh, close, etc.\r\n @HostListener('window:beforeunload', ['$event'])\r\n protected unloadNotification = (event: any) => {\r\n if (!this.canDeactivate()) {\r\n // When showing the \"confirm\" popup on navigating without using Angular routing (i.e. type another URL / close the browser / etc.),\r\n // some browsers (e.g. Internet Explorer, the old non-Chromium version of Edge) will use the message below,\r\n // whereas other browsers (e.g. Chrome, Firefox) will override it with their own message\r\n event.returnValue = \"WARNING: You have unsaved changes. Press Cancel to go back and save these changes, or OK to discard these changes.\";\r\n }\r\n }\r\n\r\n protected savePreviousModel(): void {\r\n if (this.baseForm && this.baseForm.model) {\r\n const clonedModel = JSON.parse(JSON.stringify(this.baseForm.model));\r\n this.appDataService.setAppData(AppDataKeys.previousModel, clonedModel);\r\n }\r\n }\r\n\r\n private getPreviousModel(): any {\r\n return this.appDataService.getAppData(AppDataKeys.previousModel);\r\n }\r\n\r\n private formHasUpdates(): boolean {\r\n return this.baseForm.form.dirty || this.formHasUpdatesToFileUploadQuestions();\r\n }\r\n\r\n // Questions of type \"fileUpload\" do not trigger the dirty flag of the form, so we need to check them manually.\r\n private formHasUpdatesToFileUploadQuestions(): boolean {\r\n for (const fileUploadQuestion of this.fileUploadQuestions ?? []) {\r\n const currentQuestionModel = fileUploadQuestion.getQuestionModel(this.baseForm.model) ?? '';\r\n const previousQuestionModel = fileUploadQuestion.getQuestionModel(this.getPreviousModel()) ?? '';\r\n if (currentQuestionModel !== previousQuestionModel) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { catchError, EMPTY, OperatorFunction, throwError } from \"rxjs\";\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { SpinnerService, DialogService } from 'dspx-core';\r\n\r\nimport { ApiEndpointKeys } from '../../constants/api-endpoints.constants';\r\nimport { Versions } from '../../constants/templates.constants';\r\nimport { AppDataKeys, AppSelector, CustomStatusBarSelector, QueryStringParameters } from '../../constants/app-data.constants';\r\nimport { FilterAction } from '../../constants/filter-action';\r\n\r\nimport { DashboardResponse } from '../../interfaces/dashboard-response.interface';\r\n\r\nimport { PagePath, QuestionPath, ResponseParserService, SectionPath } from '../../services/response-parser.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\n\r\nimport { BaseComponent } from '../base-component/base-component';\r\n\r\ntype ProgressiveModelUpdate = {\r\n filterQuestionPath: QuestionPath;\r\n filterSubQuestionCodeAncestorGroup: string[];\r\n filterSubQuestionCodeDescendantGroups: string[][];\r\n};\r\n\r\ntype GridDataFilterSettings = {\r\n getFilterName: () => string; // function to get the name of the filter (it is used as a unique key when setting/getting the filter model into/from session storage)\r\n sectionPath: SectionPath; // path to the section - within the response JSON - that contains both \"search\" and \"custom\" models\r\n searchQuestionCode: string; // question code - within the sectionPath - that contains the \"search\" model\r\n customQuestionCode: string; // question code - within the sectionPath - that contains the \"custom\" model\r\n customModelVisibleKeys: string[]; // property names in the \"custom\" model that are associated to a UI control (some properties are not associated to a UI control)\r\n getFilterRequestFromModels: (searchModel: any, customModel: any) => TFilterRequest; // function to get the filter request from the \"search\" and \"custom\" model\r\n getDefaultFilterRequest: () => TFilterRequest; // function to get the default filter request\r\n progressiveModelUpdate?: ProgressiveModelUpdate;\r\n};\r\n\r\nclass GridDataFilterHandler {\r\n\r\n private readonly searchQuestionPath: QuestionPath;\r\n private readonly customQuestionPath: QuestionPath;\r\n\r\n private initialFilterRequest: TFilterRequest;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private responseParserService: ResponseParserService,\r\n private appDataService: AppDataService,\r\n private settings: GridDataFilterSettings,\r\n private getModel: () => any) {\r\n\r\n this.searchQuestionPath = [...this.settings.sectionPath, this.settings.searchQuestionCode];\r\n this.customQuestionPath = [...this.settings.sectionPath, this.settings.customQuestionCode];\r\n }\r\n\r\n getInitialFilterRequest(): TFilterRequest {\r\n return this.initialFilterRequest;\r\n }\r\n\r\n setInitialFilterRequest(): void {\r\n const filterFromSessionStorage = this.getFromSessionStorage()\r\n if (filterFromSessionStorage) {\r\n this.initialFilterRequest = filterFromSessionStorage;\r\n }\r\n else {\r\n this.route.queryParams.subscribe((queryStringParameters: Params) => {\r\n const filterFromQueryString = this.getGridDataFilterFromQueryString(queryStringParameters);\r\n if (filterFromQueryString) {\r\n this.setIntoSessionStorage(filterFromQueryString);\r\n this.initialFilterRequest = filterFromQueryString;\r\n }\r\n else {\r\n const defaultFilterRequest = this.settings.getDefaultFilterRequest();\r\n if (defaultFilterRequest) {\r\n this.initialFilterRequest = defaultFilterRequest;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n getFilterRequest(): TFilterRequest {\r\n return this.settings.getFilterRequestFromModels(this.getQuestionValue(...this.searchQuestionPath), this.getQuestionValue(...this.customQuestionPath));\r\n }\r\n\r\n saveFilterRequest(filterAction: FilterAction): TFilterRequest {\r\n const isClearFilters = filterAction === FilterAction.ClearFilters;\r\n if (isClearFilters) {\r\n this.setQuestionValue(...this.searchQuestionPath, null);\r\n this.setQuestionValue(...this.customQuestionPath, null);\r\n }\r\n const filterRequest = isClearFilters ? this.settings.getDefaultFilterRequest() : this.getFilterRequest();\r\n this.setIntoSessionStorage(filterRequest);\r\n return filterRequest;\r\n }\r\n\r\n hasNonEmptyCustomProperties(filterRequest: TFilterRequest): boolean {\r\n return filterRequest && this.settings.customModelVisibleKeys?.map(key => filterRequest[key])?.some(value => value != null && !(Array.isArray(value) && value.length === 0));\r\n }\r\n\r\n private getQuestionValue(navTabNumber: number, pageNumber: number, sectionCode: string, questionCode: string): any {\r\n return this.responseParserService.findQuestionModel(this.getModel(), navTabNumber, pageNumber, null, sectionCode, null, questionCode);\r\n }\r\n\r\n private setQuestionValue(navTabNumber: number, pageNumber: number, sectionCode: string, questionCode: string, newQuestionModel: any): boolean {\r\n return this.responseParserService.replaceQuestionModel(this.getModel(), navTabNumber, pageNumber, null, sectionCode, null, questionCode, newQuestionModel);\r\n }\r\n\r\n private getGridDataFilterFromQueryString(queryStringParameters: Params): TFilterRequest {\r\n try { return JSON.parse(queryStringParameters[QueryStringParameters.GridDataFilter]) as TFilterRequest; }\r\n catch { return null; }\r\n }\r\n\r\n private getFromSessionStorage() {\r\n return this.appDataService.getFromSessionStorage(this.settings.getFilterName());\r\n }\r\n\r\n private setIntoSessionStorage(filterRequest: TFilterRequest) {\r\n this.appDataService.setIntoSessionStorage(this.settings.getFilterName(), filterRequest);\r\n }\r\n}\r\n\r\n@Component({ template: '' })\r\nexport abstract class BaseListComponent extends BaseComponent {\r\n\r\n formServiceEndpoint: string = ApiEndpointKeys.getFormConfig;\r\n versionNo: number = Versions.latest;\r\n\r\n private hasMoreItemsMessage: string;\r\n\r\n protected gridPagePath: PagePath;\r\n protected getListApiEndpoint: () => string;\r\n protected filterSettings: GridDataFilterSettings;\r\n protected filterHandler: GridDataFilterHandler;\r\n\r\n constructor(\r\n protected route: ActivatedRoute,\r\n protected router: Router,\r\n protected spinnerService: SpinnerService,\r\n protected dialogService: DialogService,\r\n protected responseParserService: ResponseParserService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected appDataService: AppDataService) {\r\n\r\n super(\r\n appDataService,\r\n htmlHelperService);\r\n }\r\n\r\n protected initialise(\r\n gridPagePath: PagePath,\r\n getListApiEndpoint: () => string,\r\n filterSettings: GridDataFilterSettings = null): void {\r\n\r\n this.gridPagePath = gridPagePath;\r\n this.getListApiEndpoint = getListApiEndpoint;\r\n this.filterSettings = filterSettings;\r\n\r\n const hasFilters = !!this.filterSettings;\r\n this.filterHandler = hasFilters\r\n ? new GridDataFilterHandler(this.route, this.responseParserService, this.appDataService, this.filterSettings, () => this.baseForm.model)\r\n : null;\r\n\r\n const maxGridRowCount = this.appDataService.getAppData(AppDataKeys.maxGridRowCount);\r\n const extraMessage = hasFilters\r\n ? `Please use the filters to refine your search criteria.`\r\n : `Only the first ${maxGridRowCount} items are being displayed.`;\r\n this.hasMoreItemsMessage = `The search results have exceeded the ${maxGridRowCount} item limit. ${extraMessage}`;\r\n }\r\n\r\n protected loadGridDataOnFormLoad(filterRequest?: T): void {\r\n // This guarantees that the spinner is displayed during the execution of loadGridData, when loadGridData is called from within the onFormLoad event handler.\r\n // The caller of the onFormLoad event handler calls hideSpinner after the event handler returns.\r\n // This causes the call to showSpinner inside loadGridData to be useless because it is immediately followed by a call to hideSpinner.\r\n // To work around the issue, we call loadGridData on the next event cycle, so that the call to showSpinner inside loadGridData happens after call to hideSpinner.\r\n this.loadGridDataAsync(filterRequest, () => { }, false);\r\n }\r\n\r\n protected loadGridDataAfterSave(filterRequest?: T, onComplete = () => { }): void {\r\n // This guarantees that the spinner is displayed during the execution of loadGridData, when loadGridData is called after a save operation.\r\n // It also allows to specify an action to be executed after the completion of loadGridData (for example, showing a dialog popup to confirm saving succeeded).\r\n // Finally, it suppress any error handling (e.g. showing an error popup) that might happen if loadGridData fails, to avoid interfering with onComplete.\r\n this.loadGridDataAsync(filterRequest, onComplete, true);\r\n }\r\n\r\n protected loadGridDataAsync(filterRequest?: T, onComplete = () => { }, suppressErrorHandler = false): void {\r\n setTimeout(() => {\r\n this.loadGridData(filterRequest, onComplete, suppressErrorHandler);\r\n });\r\n }\r\n\r\n protected loadGridData(filterRequest?: T, onComplete = () => { }, suppressErrorHandler = false): void {\r\n const errorHandler = () => \r\n >(catchError((error: HttpErrorResponse) => {\r\n this.spinnerService.hideSpinner();\r\n onComplete();\r\n if (suppressErrorHandler) {\r\n return EMPTY;\r\n }\r\n return throwError(() => error);\r\n }));\r\n this.spinnerService.showSpinner();\r\n this.appDataService.post(this.getListApiEndpoint(), filterRequest ?? {})\r\n .pipe(take(1), errorHandler())\r\n .subscribe((data: DashboardResponse) => {\r\n this.spinnerService.hideSpinner();\r\n if (this.responseParserService.findPageModel(data?.response, ...this.gridPagePath, null)) {\r\n this.clearSelectedItemsOfAllControls();\r\n this.updateModel(data.response, (model: any) => this.baseForm.model = model);\r\n\r\n const statusBarHtmlElement = document.querySelector(`${AppSelector} ${CustomStatusBarSelector}`);\r\n if (statusBarHtmlElement) {\r\n const statusBarContent = data?.hasMoreItems ? this.hasMoreItemsMessage : '';\r\n statusBarHtmlElement.innerHTML = statusBarContent;\r\n }\r\n }\r\n onComplete();\r\n });\r\n }\r\n\r\n // This is a register of the selected items of all the grid controls in the component\r\n // (typically there is only one grid control per component, but better be generic).\r\n // FieldKey is the questionCode of the grid control, and the value is the array of selected items.\r\n private _selectedItemsRegister: { [fieldKey: string]: any[] } = {};\r\n\r\n // Register the original object containing the selected items, so that it can be cleared later if needed.\r\n protected registerSelectedItems(event: any): any[] {\r\n const fieldKey = event?.field?.key;\r\n const selectedItems = event?.event?.data?.selectedItems;\r\n if (fieldKey && selectedItems) {\r\n this._selectedItemsRegister[fieldKey] = selectedItems;\r\n }\r\n return selectedItems;\r\n }\r\n\r\n // Clear the selected items of all registered grid controls\r\n protected clearSelectedItemsOfAllControls(): void {\r\n for (const fieldKey in this._selectedItemsRegister) {\r\n this.clearSelectedItems(fieldKey);\r\n }\r\n }\r\n\r\n // Clear the selected items of a registered grid control\r\n protected clearSelectedItems(fieldKey: string): void {\r\n if (fieldKey) {\r\n const selectedItems = this._selectedItemsRegister[fieldKey];\r\n if (selectedItems) {\r\n selectedItems.length = 0; // Clear the array in place to ensure the selected items are cleared\r\n }\r\n }\r\n }\r\n\r\n // Get a copy of the selected items which excludes any invalid items.\r\n protected getSelectedItems(event: any): any[] {\r\n const selectedItems = this.registerSelectedItems(event); // Ensure the grid control is registered, just to be sure\r\n return selectedItems\r\n ?.filter(item => !!item) // Double-clicking on rows results in items containing an empty string being added, which we need to remove.\r\n ?? [];\r\n }\r\n\r\n // NOTE: these methods only work for questions inside non-repeating sections inside non-repeating pages\r\n protected getQuestionValue(model: any, navTabNumber: number, pageNumber: number, sectionCode: string, questionCode: string): any {\r\n return this.responseParserService.findQuestionModel(model, navTabNumber, pageNumber, null, sectionCode, null, questionCode);\r\n }\r\n protected setQuestionValue(model: any, navTabNumber: number, pageNumber: number, sectionCode: string, questionCode: string, newQuestionModel: any): boolean {\r\n return this.responseParserService.replaceQuestionModel(model, navTabNumber, pageNumber, null, sectionCode, null, questionCode, newQuestionModel);\r\n }\r\n\r\n // This method updates the model and, if required, performs successive model updates to ensure dependent filter dropdowns are initialised correctly.\r\n private updateModel(model: any, setModel: (m: any) => void): void {\r\n\r\n let isProgressiveModelUpdateRequired = false;\r\n\r\n const progressiveModelUpdate = this.filterSettings?.progressiveModelUpdate;\r\n if (progressiveModelUpdate && progressiveModelUpdate.filterQuestionPath) {\r\n\r\n const filterQuestionModel = this.getQuestionValue(model, ...progressiveModelUpdate.filterQuestionPath);\r\n if (filterQuestionModel) {\r\n\r\n const ancestorGroup = progressiveModelUpdate.filterSubQuestionCodeAncestorGroup ?? [];\r\n if (ancestorGroup.some(ancestor => filterQuestionModel[ancestor])) {\r\n\r\n const descendantGroups = (progressiveModelUpdate.filterSubQuestionCodeDescendantGroups ?? []).map(descendantGroup => descendantGroup ?? []);\r\n if (descendantGroups.some(descendantGroup => descendantGroup.length > 0)) {\r\n\r\n isProgressiveModelUpdateRequired = true;\r\n\r\n // Store all values of descendant filters for later and update the model to clear all values of descendant filters.\r\n const storedFilterQuestionModel = JSON.parse(JSON.stringify(filterQuestionModel));\r\n for (let groupIndex = 0; groupIndex < descendantGroups.length; groupIndex++) {\r\n const descendantGroup = descendantGroups[groupIndex];\r\n for (let descendantIndex = 0; descendantIndex < descendantGroup.length; descendantIndex++) {\r\n const descendant = descendantGroup[descendantIndex];\r\n delete filterQuestionModel[descendant];\r\n }\r\n }\r\n setModel(model);\r\n\r\n // Recursively go through all descendant groups and update the model with the stored values.\r\n const updateModelForNextDescendantGroup = (filterQuestionModel: any, groupIndex: number) => {\r\n if (groupIndex < descendantGroups.length) {\r\n const descendantGroup = descendantGroups[groupIndex];\r\n setTimeout(() => {\r\n for (let descendantIndex = 0; descendantIndex < descendantGroup.length; descendantIndex++) {\r\n const descendant = descendantGroup[descendantIndex];\r\n filterQuestionModel[descendant] = storedFilterQuestionModel[descendant];\r\n }\r\n setModel({...model});\r\n updateModelForNextDescendantGroup(filterQuestionModel, groupIndex + 1);\r\n });\r\n }\r\n };\r\n updateModelForNextDescendantGroup(filterQuestionModel, 0);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!isProgressiveModelUpdateRequired) {\r\n // If no dependent questions are configured, then simply update the model once.\r\n setModel(model);\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { Guid } from 'guid-typescript';\r\n\r\nimport { CardSetTransformationService, CoreService, DataService, DialogService, FileService, SpinnerService } from 'dspx-core';\r\n\r\nimport { ComponentSelectors, NavTabNumbers, PageNumbers, PopupCodes, QuestionCodes, ReadOnlyAccessPageActionButtons, SectionCodes, ServerErrorPopupCodes } from '../../constants/app-data.constants';\r\nimport { ApiEndpointKeys, ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { Templates, Versions } from '../../constants/templates.constants';\r\nimport { RequestSaveResultStatus } from '../../constants/request-save-result-status';\r\n\r\nimport { SaveRequest } from '../../interfaces/save-request.interface';\r\nimport { SaveResult } from '../../interfaces/save-result.interface';\r\nimport { PopupInfo } from '../../interfaces/popup-info.interface';\r\n\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ComponentDeactivationService } from '../../services/component-deactivation.service';\r\nimport { ErrorService } from '../../services/error.service';\r\nimport { ResponseParserService } from '../../services/response-parser.service';\r\nimport { DialogHelperService } from '../../services/dialog-helper.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseDetailComponent } from '../base-detail-component/base-detail-component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.GlobalSetupForm.GlobalSetup,\r\n templateUrl: './global-setup.component.html'\r\n})\r\nexport class GlobalSetupComponent extends BaseDetailComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n id = '';\r\n formServiceEndpoint: string = ApiEndpointKeys.getGlobalSetupConfigAndResponse;\r\n templateId: number = Templates.globalSetup;\r\n versionNo: number = Versions.latest;\r\n activeDialog: string;\r\n \r\n constructor(\r\n protected dialogService: DialogService,\r\n protected appDataService: AppDataService,\r\n protected dialogHelperService: DialogHelperService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected componentDeactivationService: ComponentDeactivationService,\r\n protected router: Router,\r\n private fileService: FileService,\r\n private errorService: ErrorService,\r\n private coreService: CoreService,\r\n private dataService: DataService,\r\n private spinnerService: SpinnerService,\r\n private responseParserService: ResponseParserService,\r\n private userProfileService: UserProfileService) {\r\n super(dialogService, appDataService, dialogHelperService, htmlHelperService, componentDeactivationService, router);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.coreService.applicationFunctions['canSave'] = () => this.isFormEditable;\r\n\r\n this.fileService.endpoints = {\r\n fileUploadEndpoint: 'GlobalSetup/UploadDocument',\r\n fileRemoveEndpoint: 'GlobalSetup/RemoveDocument',\r\n fileDownloadEndpoint: 'api/GlobalSetup/DownloadDocument'\r\n }\r\n this.coreService.fileUploadFormIdentifiers = {\r\n [QuestionCodes.GlobalSetupForm.userGuidesForAnonymousUser]: Guid.EMPTY,\r\n [QuestionCodes.GlobalSetupForm.userGuidesForUser]: Guid.EMPTY,\r\n [QuestionCodes.GlobalSetupForm.userGuidesForOrganisationSupport]: Guid.EMPTY,\r\n [QuestionCodes.GlobalSetupForm.userGuidesForOrganisationAuthority]: Guid.EMPTY,\r\n [QuestionCodes.GlobalSetupForm.userGuidesForApplicationSupport]: Guid.EMPTY,\r\n [QuestionCodes.GlobalSetupForm.userGuidesForApplicationAdministrator]: Guid.EMPTY,\r\n [QuestionCodes.GlobalSetupForm.userGuidesForAdminReadOnly]: Guid.EMPTY,\r\n [QuestionCodes.GlobalSetupForm.userGuidesForIdamReviewer]: Guid.EMPTY,\r\n [QuestionCodes.GlobalSetupForm.userGuidesForIdamOnboarder]: Guid.EMPTY,\r\n [QuestionCodes.GlobalSetupForm.userGuidesForIdamApprover]: Guid.EMPTY,\r\n [QuestionCodes.GlobalSetupForm.userGuidesForIdamAdministrator]: Guid.EMPTY\r\n };\r\n\r\n const getUserGuidesQuestionModel = (model: any, questionCode: string) =>\r\n this.responseParserService.findQuestionModel(\r\n model,\r\n NavTabNumbers.GlobalSetupForm.userGuides,\r\n PageNumbers.GlobalSetupForm.userGuides,\r\n null,\r\n SectionCodes.GlobalSetupForm.userGuides,\r\n null,\r\n questionCode);\r\n this.fileUploadQuestions = [\r\n { getQuestionModel: model => getUserGuidesQuestionModel(model, QuestionCodes.GlobalSetupForm.userGuidesForAnonymousUser) },\r\n { getQuestionModel: model => getUserGuidesQuestionModel(model, QuestionCodes.GlobalSetupForm.userGuidesForUser) },\r\n { getQuestionModel: model => getUserGuidesQuestionModel(model, QuestionCodes.GlobalSetupForm.userGuidesForOrganisationSupport) },\r\n { getQuestionModel: model => getUserGuidesQuestionModel(model, QuestionCodes.GlobalSetupForm.userGuidesForOrganisationAuthority) },\r\n { getQuestionModel: model => getUserGuidesQuestionModel(model, QuestionCodes.GlobalSetupForm.userGuidesForApplicationSupport) },\r\n { getQuestionModel: model => getUserGuidesQuestionModel(model, QuestionCodes.GlobalSetupForm.userGuidesForApplicationAdministrator) },\r\n { getQuestionModel: model => getUserGuidesQuestionModel(model, QuestionCodes.GlobalSetupForm.userGuidesForAdminReadOnly) },\r\n { getQuestionModel: model => getUserGuidesQuestionModel(model, QuestionCodes.GlobalSetupForm.userGuidesForIdamReviewer) },\r\n { getQuestionModel: model => getUserGuidesQuestionModel(model, QuestionCodes.GlobalSetupForm.userGuidesForIdamOnboarder) },\r\n { getQuestionModel: model => getUserGuidesQuestionModel(model, QuestionCodes.GlobalSetupForm.userGuidesForIdamApprover) },\r\n { getQuestionModel: model => getUserGuidesQuestionModel(model, QuestionCodes.GlobalSetupForm.userGuidesForIdamAdministrator) }\r\n ];\r\n }\r\n\r\n formLoaded(event: any): void {\r\n this.isFormEditable = !!event?.isFormEditable;\r\n\r\n this.ensurePageActionButtonsAreEnabledOnFormLoad(ReadOnlyAccessPageActionButtons.GlobalSetupForm);\r\n\r\n this.savePreviousModel();\r\n\r\n this.handlePostFormLoadActions(event);\r\n }\r\n\r\n save(event: any): void {\r\n const saveDataRequest: SaveRequest = {\r\n template: this.templateId,\r\n versionNumber: this.versionNo,\r\n id: this.id,\r\n response: event.model,\r\n expectedLastUpdateTime: event.lastUpdatedTime,\r\n isSubmit: false\r\n }\r\n if (!event.isFormValid) {\r\n this.baseForm.markAllFieldsAsTouched();\r\n if (!this.baseForm.fields[0]?.formControl.valid) {\r\n this.baseForm.showValidationSummary(true);\r\n this.dialogService.showDialog(PopupCodes.Common.ValidationError);\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n\r\n private saveData(request: SaveRequest): void {\r\n const customErrorPopups = new Map([\r\n [RequestSaveResultStatus.UpdatedSinceReadTime, { popupCode: 'customConcurrencyError' }]\r\n ]);\r\n this.spinnerService.showSpinner();\r\n this.dataService.saveData(ApiEndpoints.globalSetup.save, request)\r\n .pipe(take(1), this.errorService.errorHandler(customErrorPopups))\r\n .subscribe((data: SaveResult) => {\r\n this.spinnerService.hideSpinner();\r\n if (this.handleWarnings(request, data, r => this.saveData(r))) {\r\n return;\r\n }\r\n if (ServerErrorPopupCodes.SaveGlobalSetup.includes(data.message)) {\r\n this.activeDialog = data.message;\r\n }\r\n else {\r\n this.id = data.id;\r\n this.activeDialog = PopupCodes.GlobalSetupForm.SaveSuccessful;\r\n }\r\n this.dialogHelperService.showDialog(this.activeDialog, null, data.details);\r\n });\r\n }\r\n\r\n cancel(event: any): void {\r\n this.reloadPage();\r\n }\r\n\r\n dialogSubmitted(event: any): void {\r\n if (this.activeDialog === PopupCodes.GlobalSetupForm.SaveSuccessful) {\r\n this.reloadPage(true);\r\n }\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { FileSaverService } from 'ngx-filesaver';\r\n\r\nimport { Guid } from 'guid-typescript';\r\n\r\nimport { DialogService, Dialogs, FileService, LoggedInUser } from 'dspx-core';\r\n\r\nimport { AppDataKeys, ComponentSelectors, DepartmentOfFamiliesFairnessAndHousing, DepartmentOfHealth } from '../../constants/app-data.constants';\r\nimport { ApiEndpoints } from '../../constants/api-endpoints.constants';\r\n\r\nimport { FileModel } from '../../interfaces/file-upload-question-model.interface';\r\nimport { UserGuideConfig } from '../../interfaces/user-guide-config.interface';\r\nimport { GetGlobalSettingsResponse } from '../../interfaces/get-global-settings-response.interface';\r\n\r\nimport { AppDataService } from '../../services/app-data.service';\r\n\r\n@Component({\r\n selector: ComponentSelectors.Other.Help,\r\n templateUrl: './help.component.html'\r\n})\r\nexport class HelpComponent implements OnInit {\r\n\r\n dhWebsitePrivacyStatementUrl: string;\r\n dffhWebsitePrivacyStatementUrl: string;\r\n technicalSupportEmail: string;\r\n eBusinessPortalName: string;\r\n eBusinessPortalUrl: string;\r\n\r\n constructor(\r\n private fileSaverService: FileSaverService,\r\n private fileService: FileService,\r\n private dialogService: DialogService,\r\n private appDataService: AppDataService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dhWebsitePrivacyStatementUrl = `${DepartmentOfHealth.url}privacy`;\r\n this.dffhWebsitePrivacyStatementUrl = `${DepartmentOfFamiliesFairnessAndHousing.url}privacy-statement`;\r\n this.technicalSupportEmail = this.appDataService.getAppData(AppDataKeys.technicalSupportEmail);\r\n this.eBusinessPortalName = this.appDataService.getAppData(AppDataKeys.ldapLegacyUserOnboardingPortalName);\r\n this.eBusinessPortalUrl = this.appDataService.getAppData(AppDataKeys.ldapNotFederatedAccountSignInUrl)\r\n }\r\n\r\n onClickUserGuide(id: string): boolean {\r\n this.downloadUserGuide(id);\r\n return false; // this is to ensure that the anchor tag does not navigate to the href\r\n }\r\n\r\n get userGuides(): FileModel[] {\r\n return (this.isUserLoggedIn ? this.userGuideConfig?.loggedInUserGuides : this.userGuideConfig?.anonymousUserGuides)?.files ?? [];\r\n }\r\n\r\n get userGuidesAreAvailable(): boolean {\r\n return this.userGuides.length > 0;\r\n }\r\n\r\n private downloadUserGuide(id: string): void {\r\n const apiEndpoint = this.isUserLoggedIn ? ApiEndpoints.help.downloadUserGuide : ApiEndpoints.help.downloadUserGuideAnonymous;\r\n this.fileService.endpoints = {\r\n fileUploadEndpoint: null,\r\n fileRemoveEndpoint: null,\r\n fileDownloadEndpoint: `api/${apiEndpoint}`\r\n }\r\n this.fileService.download(Guid.EMPTY, id)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: response => {\r\n const dispositionHeader = response.headers.get('content-disposition');\r\n const fileName = this.appDataService.getContentFileName(dispositionHeader);\r\n this.fileSaverService.save(response.body, fileName);\r\n },\r\n error: error => {\r\n this.dialogService.showDialog(Dialogs.SERVER_ERROR);\r\n }\r\n });\r\n }\r\n\r\n private get isUserLoggedIn(): boolean {\r\n return !!this.userProfile;\r\n }\r\n\r\n private get userGuideConfig(): UserGuideConfig {\r\n return this.globalSettings?.userGuideConfig;\r\n }\r\n\r\n private get userProfile(): LoggedInUser {\r\n return this.appDataService.getAppData(AppDataKeys.userProfile);\r\n }\r\n\r\n private get globalSettings(): GetGlobalSettingsResponse {\r\n return this.appDataService.getAppData(AppDataKeys.globalSettings);\r\n }\r\n}\r\n","\r\n
\r\n

Help

\r\n
\r\n
\r\n \r\n \r\n Depending on your access, registered users representing funded agencies have access to an increasing number of applications that assist them to carry out their service delivery functions and day to day dealings with the Department.\r\n \r\n \r\n

\r\n To request access you need to complete the following steps:\r\n

\r\n
    \r\n
  1. \r\n Access a New User Registration form by clicking 'Register' button on the Login page.\r\n
  2. \r\n
  3. \r\n All mandatory fields (displayed with a star) must be completed.\r\n
  4. \r\n
  5. \r\n Please read and accept the Department's 'Conditions of Use'.\r\n
  6. \r\n
\r\n
\r\n \r\n

This site supports the following web browsers:

\r\n
    \r\n
  • Edge
  • \r\n
  • Chrome
  • \r\n
  • While other browsers may work with this site, their compatibility is not guaranteed.
  • \r\n
\r\n

Cookies

\r\n

\r\n This site requires your browser to accept cookies from this site.\r\n

\r\n

\r\n All cookies from the Department's site will remain active for the current browser session only. Once you terminate the current browser session, the cookies will be removed.\r\n

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

\r\n The Request Registration form requires you to complete in full the following:\r\n

\r\n

\r\n Individuals and/or representatives from funded Agencies of the Department and personnel within business areas of the Department are able to request access to applications through the Departments' website.\r\n

\r\n

\r\n To complete the Registration form, please fill in all mandatory details (with a star) under each heading as per instructions below:\r\n

\r\n
    \r\n
  • \r\n User's Organisation Details - Specify the details of the organisation of the user requesting access.\r\n
  • \r\n
  • \r\n User's Personal Details - Specify the details of the user requesting access.\r\n
  • \r\n
  • \r\n Conditions Of Use - As a mandatory requirement you are required to read, accept, and acknowledge the 'Conditions of Use' before submitting your registration.\r\n
  • \r\n
  • \r\n Current Application Access - Please specify the Department's application(s), environment and the role that you wish to request access to.\r\n
  • \r\n
\r\n
\r\n \r\n

\r\n The Department of Health / Department of Families, Fairness and Housing endorses fair information handling practices. Any information provided, including identification of individuals, will be used only for the purpose intended and where the intention includes confidentiality, information will be retained as such unless otherwise required by law.\r\n

\r\n Please refer to the below Privacy links for further information\r\n \r\n
\r\n \r\n

\r\n Email addresses provided via this site will only be used to respond to specific user queries and will not be added to any mailing lists, nor disclosed to any other party without the user's knowledge and consent and as intended, unless required by law.\r\n

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

\r\n Some of the older departmental applications are managed by a separate portal: the {{eBusinessPortalName}}.\r\n If you still need to access that portal, click here.\r\n

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

\r\n Please refer to these user guides for more information\r\n

\r\n \r\n

\r\n If you have further questions, please contact the support team via Technical Support\r\n

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

\r\n Please contact the support team via Technical Support\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, SecurityContext, ViewEncapsulation } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nimport { ComponentSelectors } from '../../constants/app-data.constants';\r\n\r\nimport { InformationBannerConfig } from '../../interfaces/information-banner-config.interface';\r\n\r\ntype DividerDisplay = 'always' | 'auto' | 'never';\r\ntype DividerConfig = { top: DividerDisplay; bottom: DividerDisplay; }\r\n\r\n@Component({\r\n selector: ComponentSelectors.Other.InformationBanner,\r\n templateUrl: './information-banner.component.html',\r\n styleUrls: ['./information-banner.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class InformationBannerComponent {\r\n\r\n private readonly defaultConfig: InformationBannerConfig = {\r\n message: '',\r\n foregroundColour: 'black',\r\n backgroundColour: 'khaki'\r\n };\r\n private _config: InformationBannerConfig = this.defaultConfig;\r\n @Input()\r\n get config(): InformationBannerConfig {\r\n return this._config;\r\n };\r\n set config(config: InformationBannerConfig) {\r\n this._config = config ?? this.defaultConfig;\r\n this._config.message = this.sanitiseHtml(this._config.message ?? this.defaultConfig.message);\r\n this._config.foregroundColour = this._config.foregroundColour ?? this.defaultConfig.foregroundColour;\r\n this._config.backgroundColour = this._config.backgroundColour ?? this.defaultConfig.backgroundColour;\r\n } \r\n\r\n private readonly defaultDividerConfig: DividerConfig = {\r\n top: 'never',\r\n bottom: 'never'\r\n };\r\n private _dividerConfig: DividerConfig = this.defaultDividerConfig;\r\n @Input()\r\n get dividerConfig(): DividerConfig {\r\n return this._dividerConfig;\r\n };\r\n set dividerConfig(dividerConfig: DividerConfig) {\r\n this._dividerConfig = dividerConfig ?? this.defaultDividerConfig;\r\n this._dividerConfig.top = this._dividerConfig.top ?? this.defaultDividerConfig.top;\r\n this._dividerConfig.bottom = this._dividerConfig.bottom ?? this.defaultDividerConfig.bottom;\r\n }\r\n\r\n constructor(\r\n private sanitizer: DomSanitizer) {\r\n }\r\n\r\n private sanitiseHtml(html: string): string {\r\n const sanitisedHtml = this.sanitizer.sanitize(SecurityContext.HTML, html);\r\n return sanitisedHtml;\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { AppDataKeys, ComponentSelectors } from '../../constants/app-data.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\n\r\nimport { AppDataService } from '../../services/app-data.service';\r\n\r\n@Component({\r\n selector: ComponentSelectors.Other.Landing,\r\n templateUrl: './landing.component.html'\r\n})\r\nexport class LandingComponent implements OnInit {\r\n\r\n acceptTerms = false;\r\n showConditions = false;\r\n userTermsAndConditions: string;\r\n\r\n constructor(\r\n private router: Router,\r\n private appDataService: AppDataService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userTermsAndConditions = this.appDataService.getAppData(AppDataKeys.userTermsAndConditions);\r\n }\r\n\r\n showConditionSection() {\r\n this.showConditions = true;\r\n return false;\r\n }\r\n\r\n hideConditionSection() {\r\n this.showConditions = false;\r\n }\r\n\r\n signIn() {\r\n window.open(ApiEndpoints.authentication.signIn, '_self');\r\n }\r\n\r\n register() {\r\n this.router.navigate(['/', RouteConstants.user.verify]);\r\n }\r\n}\r\n","

Sign In

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

Conditions Of Use

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

Please refer to Help for instructions.

\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { NgRecaptcha3Service } from 'ng-recaptcha3';\r\n\r\nimport { CoreService, DataService, DialogService, SpinnerService } from 'dspx-core';\r\n\r\nimport { ComponentSelectors, PopupCodes } from '../../constants/app-data.constants';\r\nimport { ApiEndpointKeys, ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { RequestSaveResultStatus } from '../../constants/request-save-result-status';\r\n\r\nimport { PopupInfo } from '../../interfaces/popup-info.interface';\r\n\r\nimport { ComponentDeactivationService } from '../../services/component-deactivation.service';\r\nimport { ErrorService } from '../../services/error.service';\r\nimport { FormDataService } from '../../services/form-data.service';\r\nimport { DialogHelperService } from '../../services/dialog-helper.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ApplicationUserService } from '../../services/application-user-service';\r\nimport { FormatHtmlDetailsService } from '../../services/format-html-details-service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseApplicationUserComponent } from '../base-application-user-component/base-application-user-component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.UserForm.MyApps,\r\n templateUrl: './my-apps.component.html'\r\n})\r\nexport class MyAppsComponent extends BaseApplicationUserComponent {\r\n\r\n constructor(\r\n protected componentDeactivationService: ComponentDeactivationService,\r\n protected router: Router,\r\n protected route: ActivatedRoute,\r\n protected recaptchaService: NgRecaptcha3Service,\r\n protected errorService: ErrorService,\r\n protected coreService: CoreService,\r\n protected dataService: DataService,\r\n protected dialogService: DialogService,\r\n protected spinnerService: SpinnerService,\r\n protected appDataService: AppDataService,\r\n protected formDataService: FormDataService,\r\n protected dialogHelperService: DialogHelperService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected applicationUserService: ApplicationUserService,\r\n protected formatHtmlDetailsService: FormatHtmlDetailsService,\r\n protected userProfileService: UserProfileService) {\r\n\r\n super(\r\n componentDeactivationService,\r\n router,\r\n route,\r\n recaptchaService,\r\n errorService,\r\n coreService,\r\n dataService,\r\n dialogService,\r\n spinnerService,\r\n appDataService,\r\n formDataService,\r\n dialogHelperService,\r\n htmlHelperService,\r\n applicationUserService,\r\n formatHtmlDetailsService,\r\n userProfileService);\r\n\r\n this.settings = {\r\n isMyApps: true,\r\n hasAnonymousAccess: false,\r\n\r\n draftModeEndpointKey: ApiEndpointKeys.getMyAppsDraftConfigAndResponse,\r\n editModeEndpointKey: ApiEndpointKeys.getMyAppsConfigAndResponse,\r\n insertModeEndpointKey: '',\r\n\r\n getIdForDraftMode: (paramMap, navigationState) => navigationState?.draftId,\r\n getIdForEditMode: (paramMap, navigationState) => '',\r\n getIdForInsertMode: (paramMap, navigationState) => '',\r\n\r\n getIsDraftMode: (paramMap, navigationState) => !!navigationState?.draftId,\r\n getIsEditMode: (paramMap, navigationState) => true,\r\n\r\n getIsEmailReadOnly: (isDraftMode, isEditMode) => isEditMode,\r\n\r\n getApplicationUserId: (event, navigationState, isDraftMode, isEditMode) => isDraftMode ? navigationState?.applicationUserId : (isEditMode ? event.id : ''),\r\n getApplicationUserRegistrationId: (event, navigationState, isDraftMode, isEditMode) => '',\r\n\r\n navigateOnCancel: () => this.reloadPage(),\r\n navigateAfterSave: () => this.reloadPage(true),\r\n\r\n saveSuccessfulPopup: PopupCodes.UserForm.SaveSuccessfulMyApps,\r\n customErrorPopups: new Map([\r\n [RequestSaveResultStatus.UpdatedSinceReadTime, { popupCode: 'customConcurrencyError' }]\r\n ]),\r\n\r\n showUserRequestDetailsEndpoint: ApiEndpoints.applicationUser.getMyAppsUserRequestDetails,\r\n withdrawUserRequestEndpoint: ApiEndpoints.applicationUser.withdrawMyAppsUserRequest,\r\n\r\n componentSelector: ComponentSelectors.UserForm.MyApps\r\n };\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { AppDataKeys, ComponentSelectors } from '../../constants/app-data.constants';\r\n\r\nimport { AppDataService } from '../../services/app-data.service';\r\n\r\n@Component({\r\n selector: ComponentSelectors.Other.OnBehalfOfTermsAndConditions,\r\n templateUrl: './on-behalf-of-terms-and-conditions.component.html'\r\n})\r\nexport class OnBehalfOfTermsAndConditionsComponent implements OnInit {\r\n\r\n onBehalfOfTermsAndConditions: string;\r\n\r\n constructor(\r\n private appDataService: AppDataService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.onBehalfOfTermsAndConditions = this.appDataService.getAppData(AppDataKeys.onBehalfOfTermsAndConditions);\r\n }\r\n}\r\n","

Terms & Conditions - Organisation Authority

\r\n\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { CardSetTransformationService, DialogService, SpinnerService } from 'dspx-core';\r\n\r\nimport { FormActions, FormCustomActions, NavTabNumbers, PageNumbers, SectionCodes, QuestionCodes, FilterQuestionDefaults, FilterQuestionCodes, ComponentSelectors, DashboardNames, AppSelector, FilterQuestionLabels } from '../../constants/app-data.constants';\r\nimport { ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { Templates } from '../../constants/templates.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\n\r\nimport { OrganisationGridFilterRequest } from '../../interfaces/organisation-grid-filter-request.interface';\r\nimport { ExportToDataTablesRequest } from '../../interfaces/export-to-data-tables-request.interface';\r\n\r\nimport { ResponseParserService } from '../../services/response-parser.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ExcelExportService } from '../../services/excel-export.service';\r\nimport { ExcelImportService } from '../../services/excel-import.service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseListComponent } from '../base-list-component/base-list.component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.OrganisationListForm.OrganisationList,\r\n templateUrl: './organisation-list.component.html'\r\n})\r\nexport class OrganisationListComponent extends BaseListComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n templateId: number = Templates.organisationList;\r\n\r\n constructor(\r\n protected route: ActivatedRoute,\r\n protected router: Router,\r\n protected spinnerService: SpinnerService,\r\n protected dialogService: DialogService,\r\n protected responseParserService: ResponseParserService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected appDataService: AppDataService,\r\n private excelExportService: ExcelExportService,\r\n private excelImportService: ExcelImportService,\r\n private userProfileService: UserProfileService) {\r\n\r\n super(\r\n route,\r\n router,\r\n spinnerService,\r\n dialogService,\r\n responseParserService,\r\n htmlHelperService,\r\n appDataService);\r\n\r\n this.initialise(\r\n [NavTabNumbers.OrganisationListForm.organisations, PageNumbers.OrganisationListForm.organisations],\r\n () => ApiEndpoints.dashboard.getOrganisations,\r\n {\r\n getFilterName: () => DashboardNames.OrganisationList,\r\n sectionPath: [NavTabNumbers.OrganisationListForm.organisations, PageNumbers.OrganisationListForm.organisations, SectionCodes.OrganisationListForm.organisation],\r\n searchQuestionCode: QuestionCodes.OrganisationListForm.organisationSearch,\r\n customQuestionCode: QuestionCodes.OrganisationListForm.organisationFilter,\r\n customModelVisibleKeys: ['active'],\r\n getFilterRequestFromModels: (searchModel: any, customModel: any) => ({\r\n searchTerm: searchModel,\r\n active: customModel?.[FilterQuestionCodes.OrganisationListForm.organisationFilterActive]\r\n }),\r\n getDefaultFilterRequest: () => ({\r\n active: FilterQuestionDefaults.OrganisationListForm.organisationFilterActive\r\n })\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.filterHandler.setInitialFilterRequest();\r\n }\r\n\r\n formLoad(event: any): void {\r\n this.loadGridDataOnFormLoad(this.filterHandler.getInitialFilterRequest());\r\n if (this.filterHandler.hasNonEmptyCustomProperties(this.filterHandler.getInitialFilterRequest())) {\r\n this.htmlHelperService.clickButtonByTitle(AppSelector, ComponentSelectors.OrganisationListForm.OrganisationList, FilterQuestionLabels.OrganisationListForm);\r\n }\r\n }\r\n\r\n filterData(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.OrganisationListForm.organisationSearch:\r\n case QuestionCodes.OrganisationListForm.organisationFilter: {\r\n this.loadGridData(this.filterHandler.saveFilterRequest(event.action));\r\n break;\r\n }\r\n }\r\n }\r\n\r\n dialogButtonClicked(event: any): void {\r\n // No dialog buttons are implemented in this dashboard\r\n }\r\n\r\n actionButtonClicked(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.OrganisationListForm.organisationPlaceholder: {\r\n switch (event.event.type) {\r\n case FormActions.OrganisationListForm.View:\r\n case FormActions.OrganisationListForm.Edit: {\r\n this.router.navigate(['/', RouteConstants.organisation.prefix, event.event.data.id]);\r\n break;\r\n }\r\n case FormActions.OrganisationListForm.Custom: {\r\n switch (event.event.data.buttonType) {\r\n case FormCustomActions.OrganisationListForm.Add: {\r\n this.router.navigate(['/', RouteConstants.organisation.prefix]);\r\n break;\r\n }\r\n case FormCustomActions.OrganisationListForm.BulkExport: {\r\n const organisationExportToDataTablesRequest = this.getOrganisationExportToDataTablesRequest();\r\n this.excelExportService.exportOrganisationsToXlsx(organisationExportToDataTablesRequest);\r\n break;\r\n }\r\n case FormCustomActions.OrganisationListForm.BulkImport: {\r\n this.importOrganisationsFromXlsx();\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n importOrganisationsFromXlsx(): void {\r\n this.excelImportService.importOrganisationsFromXlsx()\r\n .pipe(take(1))\r\n .subscribe(excelImportResult => {\r\n if (!excelImportResult.isCancelled) {\r\n this.loadGridData(this.filterHandler.getFilterRequest());\r\n }\r\n });\r\n }\r\n\r\n private getOrganisationExportToDataTablesRequest(): ExportToDataTablesRequest {\r\n const entities = this.getQuestionValue(\r\n this.baseForm.model,\r\n NavTabNumbers.OrganisationListForm.organisations,\r\n PageNumbers.OrganisationListForm.organisations,\r\n SectionCodes.OrganisationListForm.organisation,\r\n QuestionCodes.OrganisationListForm.organisationPlaceholder);\r\n const entityIds = entities.map(entity => entity.id);\r\n const organisationExportToDataTablesRequest: ExportToDataTablesRequest = { entityIds };\r\n return organisationExportToDataTablesRequest;\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { CardSetTransformationService, CoreService, DataService, DialogService, SpinnerService } from 'dspx-core';\r\n\r\nimport { ComponentSelectors, PopupCodes, ReadOnlyAccessPageActionButtons, ServerErrorPopupCodes } from '../../constants/app-data.constants';\r\nimport { ApiEndpointKeys, ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\nimport { Templates, Versions } from '../../constants/templates.constants';\r\n\r\nimport { SaveRequest } from '../../interfaces/save-request.interface';\r\nimport { SaveResult } from '../../interfaces/save-result.interface';\r\n\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ComponentDeactivationService } from '../../services/component-deactivation.service';\r\nimport { ErrorService } from '../../services/error.service';\r\nimport { FormDataService } from '../../services/form-data.service';\r\nimport { DialogHelperService } from '../../services/dialog-helper.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseDetailComponent, ReadOnlyGrid } from '../base-detail-component/base-detail-component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.OrganisationForm.Organisation,\r\n templateUrl: './organisation.component.html'\r\n})\r\nexport class OrganisationComponent extends BaseDetailComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n id = '';\r\n formServiceEndpoint: string = ApiEndpointKeys.getFormConfig;\r\n templateId: number = Templates.organisation;\r\n versionNo: number = Versions.latest;\r\n activeDialog: string;\r\n editing = false;\r\n\r\n private isViewModeForDetails = true;\r\n\r\n private isOrganisationExternalCodeReadOnly: boolean;\r\n private isReviewDefinitionReadOnly: boolean;\r\n\r\n private readOnlyGridControlGroupNames = {\r\n customApprovals: 'customApprovalVisibility'\r\n };\r\n\r\n constructor(\r\n protected dialogService: DialogService,\r\n protected appDataService: AppDataService,\r\n protected dialogHelperService: DialogHelperService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected componentDeactivationService: ComponentDeactivationService,\r\n protected router: Router,\r\n private route: ActivatedRoute,\r\n private errorService: ErrorService,\r\n private coreService: CoreService,\r\n private dataService: DataService,\r\n private spinnerService: SpinnerService,\r\n private formDataService: FormDataService,\r\n private userProfileService: UserProfileService) {\r\n\r\n super(dialogService, appDataService, dialogHelperService, htmlHelperService, componentDeactivationService, router);\r\n\r\n this.readOnlyGridRegistry = {\r\n [this.readOnlyGridControlGroupNames.customApprovals]: new ReadOnlyGrid()\r\n };\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.route.paramMap.subscribe((paramMap: ParamMap) => {\r\n const id = paramMap.get('id');\r\n if (id) {\r\n this.id = id;\r\n this.formServiceEndpoint = ApiEndpointKeys.getOrganisationConfigAndResponse;\r\n this.editing = true;\r\n }\r\n });\r\n\r\n const isEditingSubOrganisation = (sectionIndex: number) => this.formDataService.organisationFormIsEditingSubOrganisation(this.baseForm.model, sectionIndex);\r\n const isEditingOrganisationExternalCode = (sectionIndex: number) => this.formDataService.organisationFormIsEditingOrganisationExternalCode(this.baseForm.model, sectionIndex);\r\n const isEditingReviewDefinition = (sectionIndex: number) => this.formDataService.organisationFormIsEditingReviewDefinition(this.baseForm.model, sectionIndex);\r\n\r\n this.coreService.conditionFunctions['isCodeReadOnly'] = () =>\r\n this.editing;\r\n\r\n this.coreService.conditionFunctions['isSubOrganisationCodeReadOnly'] = (pageIndex: number, sectionIndex: number) =>\r\n isEditingSubOrganisation(sectionIndex);\r\n\r\n this.coreService.conditionFunctions['isOrganisationExternalCodeTypeReadOnly'] = (pageIndex: number, sectionIndex: number) =>\r\n this.isOrganisationExternalCodeReadOnly ||\r\n isEditingOrganisationExternalCode(sectionIndex);\r\n\r\n this.coreService.conditionFunctions['isOrganisationExternalCodeValueReadOnly'] = () =>\r\n this.isOrganisationExternalCodeReadOnly;\r\n\r\n this.coreService.conditionFunctions['isReviewDefinitionNameReadOnly'] = (pageIndex: number, sectionIndex: number) =>\r\n this.isReviewDefinitionReadOnly ||\r\n isEditingReviewDefinition(sectionIndex);\r\n\r\n this.coreService.conditionFunctions['shouldShowGridControl'] = (args: string[]) => this.shouldShowReadOnlyGrid(args[0], args[1]);\r\n\r\n this.coreService.applicationFunctions['canSave'] = () => this.isFormEditable;\r\n this.coreService.applicationFunctions['cancel'] = () => this.cancel(null);\r\n\r\n this.formDataService.configureOrganisationFormViewMode(\r\n () => this.baseForm.fields,\r\n () => this.isFormEditable,\r\n () => this.editing,\r\n (enabled: boolean) => this.isViewModeForDetails = enabled,\r\n () => this.isViewModeForDetails);\r\n\r\n this.formDataService.configureOrganisationFormReadOnlyGridViewMode(\r\n () => this.toggleReadOnlyGridVisibility(this.readOnlyGridControlGroupNames.customApprovals));\r\n\r\n this.formDataService.configureOrganisationFormRepeatingSection(\r\n () => this.isFormEditable,\r\n () => this.isOrganisationExternalCodeReadOnly,\r\n () => this.isReviewDefinitionReadOnly,\r\n (sectionIndex: number) => isEditingReviewDefinition(sectionIndex));\r\n }\r\n\r\n formLoaded(event: any): void {\r\n this.isFormEditable = !!event?.isFormEditable;\r\n if (!this.isFormEditable) {\r\n // If the form is being shown as read-only, then switch to Edit mode (all fields will be disabled anyway), because View mode does not display all fields.\r\n this.isViewModeForDetails = false;\r\n\r\n // If the form is being shown as read-only, then toggle all read-only grids to \"show\" mode.\r\n this.toggleReadOnlyGridVisibility(this.readOnlyGridControlGroupNames.customApprovals);\r\n }\r\n\r\n this.ensurePageActionButtonsAreEnabledOnFormLoad(ReadOnlyAccessPageActionButtons.OrganisationForm);\r\n\r\n this.isOrganisationExternalCodeReadOnly = event.isOrganisationExternalCodeReadOnly;\r\n this.isReviewDefinitionReadOnly = event.isReviewDefinitionReadOnly;\r\n\r\n this.handlePostFormLoadActions(event);\r\n }\r\n\r\n save(event: any): void {\r\n const saveDataRequest: SaveRequest = {\r\n template: this.templateId,\r\n versionNumber: this.versionNo,\r\n id: this.id,\r\n response: event.model,\r\n expectedLastUpdateTime: event.lastUpdatedTime,\r\n isSubmit: false\r\n }\r\n if (!event.isFormValid) {\r\n this.baseForm.markAllFieldsAsTouched();\r\n if (!this.baseForm.fields[0]?.formControl.valid) {\r\n this.baseForm.showValidationSummary(true);\r\n this.dialogService.showDialog(PopupCodes.Common.ValidationError);\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n\r\n private saveData(request: SaveRequest): void {\r\n this.spinnerService.showSpinner();\r\n this.dataService.saveData(ApiEndpoints.organisation.save, request)\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe((data: SaveResult) => {\r\n this.spinnerService.hideSpinner();\r\n if (this.handleWarnings(request, data, r => this.saveData(r))) {\r\n return;\r\n }\r\n if (ServerErrorPopupCodes.SaveOrganisation.includes(data.message)) {\r\n this.activeDialog = data.message;\r\n }\r\n else {\r\n this.id = data.id;\r\n this.activeDialog = PopupCodes.OrganisationForm.SaveSuccessful;\r\n }\r\n this.dialogHelperService.showDialog(this.activeDialog, null, data.details);\r\n });\r\n }\r\n\r\n cancel(event: any): void {\r\n this.navigateBackToDashboard();\r\n }\r\n\r\n dialogSubmitted(event: any): void {\r\n if (this.activeDialog === PopupCodes.OrganisationForm.SaveSuccessful) {\r\n this.navigateBackToDashboard(true);\r\n }\r\n }\r\n\r\n private navigateBackToDashboard(ignoreUnsavedChanges = false): void {\r\n this.navigate(['/', RouteConstants.organisation.list], ignoreUnsavedChanges);\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { SpinnerService, DialogService, CardSetTransformationService } from 'dspx-core';\r\n\r\nimport { AppSelector, ComponentSelectors, DashboardNames, FilterQuestionCodes, FilterQuestionDefaults, FilterQuestionLabels, FormActions, FormCustomActions, NavTabNumbers, PageNumbers, QuestionCodes, SectionCodes } from '../../constants/app-data.constants';\r\nimport { ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { Templates } from '../../constants/templates.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\n\r\nimport { ReferenceDataGridFilterRequest } from '../../interfaces/reference-data-grid-filter-request.interface';\r\nimport { ExportToDataTablesRequest } from '../../interfaces/export-to-data-tables-request.interface';\r\n\r\nimport { ResponseParserService } from '../../services/response-parser.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ExcelExportService } from '../../services/excel-export.service';\r\nimport { ExcelImportService } from '../../services/excel-import.service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseListComponent } from '../base-list-component/base-list.component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.ReferenceDataListForm.ReferenceDataList,\r\n templateUrl: './reference-data-list.component.html'\r\n})\r\nexport class ReferenceDataListComponent extends BaseListComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n templateId: number = Templates.referenceDataList;\r\n\r\n constructor(\r\n protected route: ActivatedRoute,\r\n protected router: Router,\r\n protected spinnerService: SpinnerService,\r\n protected dialogService: DialogService,\r\n protected responseParserService: ResponseParserService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected appDataService: AppDataService,\r\n private excelExportService: ExcelExportService,\r\n private excelImportService: ExcelImportService,\r\n private userProfileService: UserProfileService) {\r\n\r\n super(\r\n route,\r\n router,\r\n spinnerService,\r\n dialogService,\r\n responseParserService,\r\n htmlHelperService,\r\n appDataService);\r\n\r\n this.initialise(\r\n [NavTabNumbers.ReferenceDataListForm.referenceData, PageNumbers.ReferenceDataListForm.referenceData],\r\n () => ApiEndpoints.dashboard.getReferenceDataCategories,\r\n {\r\n getFilterName: () => DashboardNames.ReferenceDataList,\r\n sectionPath: [NavTabNumbers.ReferenceDataListForm.referenceData, PageNumbers.ReferenceDataListForm.referenceData, SectionCodes.ReferenceDataListForm.config],\r\n searchQuestionCode: QuestionCodes.ReferenceDataListForm.referenceDataSearch,\r\n customQuestionCode: QuestionCodes.ReferenceDataListForm.referenceDataFilter,\r\n customModelVisibleKeys: ['active'],\r\n getFilterRequestFromModels: (searchModel: any, customModel: any) => ({\r\n searchTerm: searchModel,\r\n active: customModel?.[FilterQuestionCodes.ReferenceDataListForm.referenceDataFilterActive]\r\n }),\r\n getDefaultFilterRequest: () => ({\r\n active: FilterQuestionDefaults.ReferenceDataListForm.referenceDataFilterActive\r\n })\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.filterHandler.setInitialFilterRequest();\r\n }\r\n\r\n formLoad(event: any): void {\r\n this.loadGridDataOnFormLoad(this.filterHandler.getInitialFilterRequest());\r\n if (this.filterHandler.hasNonEmptyCustomProperties(this.filterHandler.getInitialFilterRequest())) {\r\n this.htmlHelperService.clickButtonByTitle(AppSelector, ComponentSelectors.ReferenceDataListForm.ReferenceDataList, FilterQuestionLabels.ReferenceDataListForm);\r\n }\r\n }\r\n\r\n filterData(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.ReferenceDataListForm.referenceDataSearch:\r\n case QuestionCodes.ReferenceDataListForm.referenceDataFilter: {\r\n this.loadGridData(this.filterHandler.saveFilterRequest(event.action));\r\n }\r\n }\r\n }\r\n\r\n dialogButtonClicked(event: any): void {\r\n // No dialog buttons are implemented in this dashboard\r\n }\r\n\r\n actionButtonClicked(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.ReferenceDataListForm.referenceDataPlaceholder: {\r\n switch (event.event.type) {\r\n case FormActions.ReferenceDataListForm.View:\r\n case FormActions.ReferenceDataListForm.Edit: {\r\n this.router.navigate(['/', RouteConstants.referenceData.prefix, event.event.data.id]);\r\n break;\r\n }\r\n case FormActions.ReferenceDataListForm.Custom: {\r\n switch (event.event.data.buttonType) {\r\n case FormCustomActions.ReferenceDataListForm.Add: {\r\n this.router.navigate(['/', RouteConstants.referenceData.prefix]);\r\n break;\r\n }\r\n case FormCustomActions.ReferenceDataListForm.BulkExport: {\r\n const referenceDataExportToDataTablesRequest = this.getReferenceDataExportToDataTablesRequest();\r\n this.excelExportService.exportReferenceDataToXlsx(referenceDataExportToDataTablesRequest);\r\n break;\r\n }\r\n case FormCustomActions.ReferenceDataListForm.BulkImport: {\r\n this.importReferenceDataFromXlsx();\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n importReferenceDataFromXlsx(): void {\r\n this.excelImportService.importReferenceDataFromXlsx()\r\n .pipe(take(1))\r\n .subscribe(excelImportResult => {\r\n if (!excelImportResult.isCancelled) {\r\n this.loadGridData(this.filterHandler.getFilterRequest());\r\n }\r\n });\r\n }\r\n\r\n private getReferenceDataExportToDataTablesRequest(): ExportToDataTablesRequest {\r\n const entities = this.getQuestionValue(\r\n this.baseForm.model,\r\n NavTabNumbers.ReferenceDataListForm.referenceData,\r\n PageNumbers.ReferenceDataListForm.referenceData,\r\n SectionCodes.ReferenceDataListForm.config,\r\n QuestionCodes.ReferenceDataListForm.referenceDataPlaceholder);\r\n const entityIds = entities.map(entity => entity.id);\r\n const referenceDataExportToDataTablesRequest: ExportToDataTablesRequest = { entityIds };\r\n return referenceDataExportToDataTablesRequest;\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { CardSetTransformationService, CoreService, DataService, DialogService, SpinnerService } from 'dspx-core';\r\n\r\nimport { ComponentSelectors, PopupCodes, ReadOnlyAccessPageActionButtons, ServerErrorPopupCodes } from '../../constants/app-data.constants';\r\nimport { ApiEndpointKeys, ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { Templates, Versions } from '../../constants/templates.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\n\r\nimport { SaveRequest } from '../../interfaces/save-request.interface';\r\nimport { SaveResult } from '../../interfaces/save-result.interface';\r\n\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ComponentDeactivationService } from '../../services/component-deactivation.service';\r\nimport { ErrorService } from '../../services/error.service';\r\nimport { FormDataService } from '../../services/form-data.service';\r\nimport { DialogHelperService } from '../../services/dialog-helper.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseDetailComponent } from '../base-detail-component/base-detail-component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.ReferenceDataForm.ReferenceData,\r\n templateUrl: './reference-data.component.html'\r\n})\r\nexport class ReferenceDataComponent extends BaseDetailComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n id = '';\r\n formServiceEndpoint: string = ApiEndpointKeys.getFormConfig;\r\n templateId: number = Templates.referenceData;\r\n versionNo: number = Versions.latest;\r\n activeDialog: string;\r\n editing = false;\r\n\r\n private isViewModeForCategory = true;\r\n\r\n private undeletableReferenceDataIds: Set;\r\n\r\n constructor(\r\n protected dialogService: DialogService,\r\n protected appDataService: AppDataService,\r\n protected dialogHelperService: DialogHelperService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected componentDeactivationService: ComponentDeactivationService,\r\n protected router: Router,\r\n private route: ActivatedRoute,\r\n private errorService: ErrorService,\r\n private coreService: CoreService,\r\n private dataService: DataService,\r\n private spinnerService: SpinnerService,\r\n private formDataService: FormDataService,\r\n private userProfileService: UserProfileService) {\r\n super(dialogService, appDataService, dialogHelperService, htmlHelperService, componentDeactivationService, router);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.route.paramMap.subscribe((paramMap: ParamMap) => {\r\n const id = paramMap.get('id');\r\n if (id) {\r\n this.id = id;\r\n this.formServiceEndpoint = ApiEndpointKeys.getReferenceDataConfigAndResponse;\r\n this.editing = true;\r\n }\r\n else {\r\n this.resetDirtyFlagAfterLoading();\r\n }\r\n });\r\n\r\n const isEditingRefValue = (sectionIndex: number) => this.formDataService.referenceDataFormIsEditingRefValue(this.baseForm.model, sectionIndex);\r\n const isUndeletableRefValue = (sectionIndex: number) => this.undeletableReferenceDataIds.has(this.formDataService.referenceDataFormGetRefValueId(this.baseForm.model, sectionIndex));\r\n\r\n this.coreService.conditionFunctions['isEditing'] = () => this.editing;\r\n this.coreService.conditionFunctions['isEditingRefValue'] = (pageIndex: number, sectionIndex: number) => isEditingRefValue(sectionIndex);\r\n\r\n this.coreService.applicationFunctions['canSave'] = () => this.isFormEditable;\r\n this.coreService.applicationFunctions['cancel'] = () => this.cancel(null);\r\n\r\n this.formDataService.configureReferenceDataFormViewMode(\r\n () => this.baseForm.fields,\r\n () => this.isFormEditable,\r\n () => this.editing,\r\n (enabled: boolean) => this.isViewModeForCategory = enabled,\r\n () => this.isViewModeForCategory);\r\n\r\n this.formDataService.configureReferenceDataFormRepeatingSection(\r\n () => this.isFormEditable,\r\n (sectionIndex: number) => !isUndeletableRefValue(sectionIndex));\r\n }\r\n\r\n formLoaded(event: any): void {\r\n this.isFormEditable = !!event?.isFormEditable;\r\n if (!this.isFormEditable) {\r\n // If the form is being shown as read-only, then switch to Edit mode (all fields will be disabled anyway), because View mode does not display all fields.\r\n this.isViewModeForCategory = false;\r\n }\r\n\r\n this.ensurePageActionButtonsAreEnabledOnFormLoad(ReadOnlyAccessPageActionButtons.ReferenceDataForm);\r\n\r\n this.undeletableReferenceDataIds = new Set(event.undeletableReferenceDataIds);\r\n\r\n this.handlePostFormLoadActions(event);\r\n }\r\n\r\n save(event: any): void {\r\n const saveDataRequest: SaveRequest = {\r\n template: this.templateId,\r\n versionNumber: this.versionNo,\r\n id: this.id,\r\n response: event.model,\r\n expectedLastUpdateTime: event.lastUpdatedTime,\r\n isSubmit: false\r\n }\r\n if (!event.isFormValid) {\r\n this.baseForm.markAllFieldsAsTouched();\r\n if (!this.baseForm.fields[0]?.formControl.valid) {\r\n this.baseForm.showValidationSummary(true);\r\n this.dialogService.showDialog(PopupCodes.Common.ValidationError);\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n\r\n private saveData(request: SaveRequest): void {\r\n this.spinnerService.showSpinner();\r\n this.dataService.saveData(ApiEndpoints.referenceData.save, request)\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe((data: SaveResult) => {\r\n this.spinnerService.hideSpinner();\r\n if (this.handleWarnings(request, data, r => this.saveData(r))) {\r\n return;\r\n }\r\n if (ServerErrorPopupCodes.SaveReferenceData.includes(data.message)) {\r\n this.activeDialog = data.message;\r\n }\r\n else {\r\n this.id = data.id;\r\n this.activeDialog = PopupCodes.ReferenceDataForm.SaveSuccessful;\r\n }\r\n this.dialogHelperService.showDialog(this.activeDialog, null, data.details);\r\n });\r\n }\r\n\r\n cancel(event: any): void {\r\n this.navigateBackToDashboard();\r\n }\r\n\r\n dialogSubmitted(event: any): void {\r\n if (this.activeDialog === PopupCodes.ReferenceDataForm.SaveSuccessful) {\r\n this.navigateBackToDashboard(true);\r\n }\r\n }\r\n\r\n private navigateBackToDashboard(ignoreUnsavedChanges = false): void {\r\n this.navigate(['/', RouteConstants.referenceData.list], ignoreUnsavedChanges);\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { CardSetTransformationService, DialogService, SpinnerService } from 'dspx-core';\r\n\r\nimport { FormActions, FormCustomActions, NavTabNumbers, PageNumbers, SectionCodes, QuestionCodes, FilterQuestionDefaults, FilterQuestionCodes, ComponentSelectors, PopupCodes, OptionSetCodes, DashboardNames, AppSelector, FilterQuestionLabels } from '../../constants/app-data.constants';\r\nimport { ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { Templates } from '../../constants/templates.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\n\r\nimport { ReviewDefinitionGridFilterRequest } from '../../interfaces/review-definition-grid-filter-request.interface';\r\nimport { ExportToDataTablesRequest } from '../../interfaces/export-to-data-tables-request.interface';\r\n\r\nimport { ResponseParserService } from '../../services/response-parser.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ExcelExportService } from '../../services/excel-export.service';\r\nimport { ExcelImportService } from '../../services/excel-import.service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseListComponent } from '../base-list-component/base-list.component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.ReviewDefinitionListForm.ReviewDefinitionList,\r\n templateUrl: './review-definition-list.component.html'\r\n})\r\nexport class ReviewDefinitionListComponent extends BaseListComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n templateId: number = Templates.reviewDefinitionList;\r\n\r\n private activeDialog: string;\r\n\r\n constructor(\r\n protected route: ActivatedRoute,\r\n protected router: Router,\r\n protected spinnerService: SpinnerService,\r\n protected dialogService: DialogService,\r\n protected responseParserService: ResponseParserService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected appDataService: AppDataService,\r\n private excelExportService: ExcelExportService,\r\n private excelImportService: ExcelImportService,\r\n private userProfileService: UserProfileService) {\r\n\r\n super(\r\n route,\r\n router,\r\n spinnerService,\r\n dialogService,\r\n responseParserService,\r\n htmlHelperService,\r\n appDataService);\r\n\r\n this.initialise(\r\n [NavTabNumbers.ReviewDefinitionListForm.reviewDefinitions, PageNumbers.ReviewDefinitionListForm.reviewDefinitions],\r\n () => ApiEndpoints.dashboard.getReviewDefinitions,\r\n {\r\n getFilterName: () => DashboardNames.ReviewDefinitionList,\r\n sectionPath: [NavTabNumbers.ReviewDefinitionListForm.reviewDefinitions, PageNumbers.ReviewDefinitionListForm.reviewDefinitions, SectionCodes.ReviewDefinitionListForm.reviewDefinition],\r\n searchQuestionCode: QuestionCodes.ReviewDefinitionListForm.reviewDefinitionSearch,\r\n customQuestionCode: QuestionCodes.ReviewDefinitionListForm.reviewDefinitionFilter,\r\n customModelVisibleKeys: ['active'],\r\n getFilterRequestFromModels: (searchModel: any, customModel: any) => ({\r\n searchTerm: searchModel,\r\n active: customModel?.[FilterQuestionCodes.ReviewDefinitionListForm.reviewDefinitionFilterActive]\r\n }),\r\n getDefaultFilterRequest: () => ({\r\n active: FilterQuestionDefaults.ReviewDefinitionListForm.reviewDefinitionFilterActive\r\n })\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.filterHandler.setInitialFilterRequest();\r\n }\r\n\r\n formLoad(event: any): void {\r\n this.loadGridDataOnFormLoad(this.filterHandler.getInitialFilterRequest());\r\n if (this.filterHandler.hasNonEmptyCustomProperties(this.filterHandler.getInitialFilterRequest())) {\r\n this.htmlHelperService.clickButtonByTitle(AppSelector, ComponentSelectors.ReviewDefinitionListForm.ReviewDefinitionList, FilterQuestionLabels.ReviewDefinitionListForm);\r\n }\r\n }\r\n\r\n filterData(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.ReviewDefinitionListForm.reviewDefinitionSearch:\r\n case QuestionCodes.ReviewDefinitionListForm.reviewDefinitionFilter: {\r\n this.loadGridData(this.filterHandler.saveFilterRequest(event.action));\r\n break;\r\n }\r\n }\r\n }\r\n\r\n dialogButtonClicked(event: any): void {\r\n const activeDialog = this.activeDialog;\r\n delete this.activeDialog;\r\n\r\n switch (activeDialog) {\r\n case PopupCodes.ReviewDefinitionListForm.BulkExportChoice: {\r\n const reviewDefinitionExportToDataTablesRequest = this.getReviewDefinitionExportToDataTablesRequest();\r\n switch (event?.bulkExportType) {\r\n case OptionSetCodes.ReviewDefinitionListForm.BulkExportType.Standard: {\r\n this.excelExportService.exportReviewDefinitionsToXlsx(reviewDefinitionExportToDataTablesRequest);\r\n break;\r\n }\r\n case OptionSetCodes.ReviewDefinitionListForm.BulkExportType.ImportCompatible: {\r\n this.excelExportService.exportReviewDefinitionsToXlsxImportCompatible(reviewDefinitionExportToDataTablesRequest);\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n actionButtonClicked(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.ReviewDefinitionListForm.reviewDefinitionPlaceholder: {\r\n switch (event.event.type) {\r\n case FormActions.ReviewDefinitionListForm.View:\r\n case FormActions.ReviewDefinitionListForm.Edit: {\r\n this.router.navigate(['/', RouteConstants.reviewDefinition.prefix, event.event.data.id]);\r\n break;\r\n }\r\n case FormActions.ReviewDefinitionListForm.Custom: {\r\n switch (event.event.data.buttonType) {\r\n case FormCustomActions.ReviewDefinitionListForm.Add: {\r\n this.router.navigate(['/', RouteConstants.reviewDefinition.prefix]);\r\n break;\r\n }\r\n case FormCustomActions.ReviewDefinitionListForm.BulkExportChooseType: {\r\n const popupModel = { bulkExportType: OptionSetCodes.ReviewDefinitionListForm.BulkExportType.Standard }\r\n this.activeDialog = PopupCodes.ReviewDefinitionListForm.BulkExportChoice;\r\n this.dialogService.showDialog(this.activeDialog, popupModel);\r\n break;\r\n }\r\n case FormCustomActions.ReviewDefinitionListForm.BulkExport: {\r\n const reviewDefinitionExportToDataTablesRequest = this.getReviewDefinitionExportToDataTablesRequest();\r\n this.excelExportService.exportReviewDefinitionsToXlsx(reviewDefinitionExportToDataTablesRequest);\r\n break;\r\n }\r\n case FormCustomActions.ReviewDefinitionListForm.BulkImport: {\r\n this.importReviewDefinitionsFromXlsx();\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n importReviewDefinitionsFromXlsx(): void {\r\n this.excelImportService.importReviewDefinitionsFromXlsx()\r\n .pipe(take(1))\r\n .subscribe(excelImportResult => {\r\n if (!excelImportResult.isCancelled) {\r\n this.loadGridData(this.filterHandler.getFilterRequest());\r\n }\r\n });\r\n }\r\n\r\n private getReviewDefinitionExportToDataTablesRequest(): ExportToDataTablesRequest {\r\n const entities = this.getQuestionValue(\r\n this.baseForm.model,\r\n NavTabNumbers.ReviewDefinitionListForm.reviewDefinitions,\r\n PageNumbers.ReviewDefinitionListForm.reviewDefinitions,\r\n SectionCodes.ReviewDefinitionListForm.reviewDefinition,\r\n QuestionCodes.ReviewDefinitionListForm.reviewDefinitionPlaceholder);\r\n const entityIds = entities.map(entity => entity.id);\r\n const reviewDefinitionExportToDataTablesRequest: ExportToDataTablesRequest = { entityIds };\r\n return reviewDefinitionExportToDataTablesRequest;\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { CardSetTransformationService, CoreService, DataService, DialogService, SpinnerService } from 'dspx-core';\r\n\r\nimport { ComponentSelectors, FormActions, PopupCodes, QuestionCodes, ReadOnlyAccessPageActionButtons, ServerErrorPopupCodes } from '../../constants/app-data.constants';\r\nimport { ApiEndpointKeys, ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\nimport { Templates, Versions } from '../../constants/templates.constants';\r\n\r\nimport { SaveRequest } from '../../interfaces/save-request.interface';\r\nimport { SaveResult } from '../../interfaces/save-result.interface';\r\n\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ComponentDeactivationService } from '../../services/component-deactivation.service';\r\nimport { ErrorService } from '../../services/error.service';\r\nimport { FormDataService } from '../../services/form-data.service';\r\nimport { DialogHelperService } from '../../services/dialog-helper.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseDetailComponent, ReadOnlyGrid } from '../base-detail-component/base-detail-component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.ReviewDefinitionForm.ReviewDefinition,\r\n templateUrl: './review-definition.component.html'\r\n})\r\nexport class ReviewDefinitionComponent extends BaseDetailComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n id = '';\r\n formServiceEndpoint: string = ApiEndpointKeys.getFormConfig;\r\n templateId: number = Templates.reviewDefinition;\r\n versionNo: number = Versions.latest;\r\n activeDialog: string;\r\n editing = false;\r\n\r\n private isViewModeForDetails = true;\r\n\r\n private readOnlyGridControlGroupNames = {\r\n reviewOccurrenceHistory: 'reviewOccurrenceHistoryVisibility'\r\n };\r\n\r\n constructor(\r\n protected dialogService: DialogService,\r\n protected appDataService: AppDataService,\r\n protected dialogHelperService: DialogHelperService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected componentDeactivationService: ComponentDeactivationService,\r\n protected router: Router,\r\n private route: ActivatedRoute,\r\n private errorService: ErrorService,\r\n private coreService: CoreService,\r\n private dataService: DataService,\r\n private spinnerService: SpinnerService,\r\n private formDataService: FormDataService,\r\n private userProfileService: UserProfileService) {\r\n\r\n super(dialogService, appDataService, dialogHelperService, htmlHelperService, componentDeactivationService, router);\r\n\r\n this.readOnlyGridRegistry = {\r\n [this.readOnlyGridControlGroupNames.reviewOccurrenceHistory]: new ReadOnlyGrid()\r\n };\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.route.paramMap.subscribe((paramMap: ParamMap) => {\r\n const id = paramMap.get('id');\r\n if (id) {\r\n this.id = id;\r\n this.formServiceEndpoint = ApiEndpointKeys.getReviewDefinitionConfigAndResponse;\r\n this.editing = true;\r\n }\r\n });\r\n\r\n this.coreService.conditionFunctions['isCodeReadOnly'] = () =>\r\n this.editing;\r\n\r\n this.coreService.conditionFunctions['shouldShowGridControl'] = (args: string[]) => this.shouldShowReadOnlyGrid(args[0], args[1]);\r\n\r\n this.coreService.applicationFunctions['canSave'] = () => this.isFormEditable;\r\n this.coreService.applicationFunctions['cancel'] = () => this.cancel(null);\r\n\r\n this.formDataService.configureReviewDefinitionFormViewMode(\r\n () => this.baseForm.fields,\r\n () => this.isFormEditable,\r\n () => this.editing,\r\n (enabled: boolean) => this.isViewModeForDetails = enabled,\r\n () => this.isViewModeForDetails);\r\n\r\n this.formDataService.configureReviewDefinitionFormReadOnlyGridViewMode(\r\n () => this.toggleReadOnlyGridVisibility(this.readOnlyGridControlGroupNames.reviewOccurrenceHistory));\r\n }\r\n\r\n formLoaded(event: any): void {\r\n this.isFormEditable = !!event?.isFormEditable;\r\n if (!this.isFormEditable) {\r\n // If the form is being shown as read-only, then switch to Edit mode (all fields will be disabled anyway), because View mode does not display all fields.\r\n this.isViewModeForDetails = false;\r\n\r\n // If the form is being shown as read-only, then toggle all read-only grids to \"show\" mode.\r\n this.toggleReadOnlyGridVisibility(this.readOnlyGridControlGroupNames.reviewOccurrenceHistory);\r\n }\r\n\r\n this.ensurePageActionButtonsAreEnabledOnFormLoad(ReadOnlyAccessPageActionButtons.ReviewDefinitionForm);\r\n \r\n this.handlePostFormLoadActions(event);\r\n }\r\n\r\n actionButtonClicked(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.ReviewDefinitionForm.reviewOccurrenceHistoryGrid: {\r\n switch (event.event.type) {\r\n case FormActions.ReviewDefinitionForm.View: {\r\n this.router.navigate([\r\n '/',\r\n RouteConstants.reviewDefinition.prefix,\r\n this.id,\r\n RouteConstants.reviewDefinition.reviewOccurrenceDetailFragment,\r\n event.event.data.id,\r\n RouteConstants.reviewDefinition.reviewDecisionListFragment\r\n ]);\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n save(event: any): void {\r\n const saveDataRequest: SaveRequest = {\r\n template: this.templateId,\r\n versionNumber: this.versionNo,\r\n id: this.id,\r\n response: event.model,\r\n expectedLastUpdateTime: event.lastUpdatedTime,\r\n isSubmit: false\r\n }\r\n if (!event.isFormValid) {\r\n this.baseForm.markAllFieldsAsTouched();\r\n if (!this.baseForm.fields[0]?.formControl.valid) {\r\n this.baseForm.showValidationSummary(true);\r\n this.dialogService.showDialog(PopupCodes.Common.ValidationError);\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n\r\n private saveData(request: SaveRequest): void {\r\n this.spinnerService.showSpinner();\r\n this.dataService.saveData(ApiEndpoints.reviewDefinition.save, request)\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe((data: SaveResult) => {\r\n this.spinnerService.hideSpinner();\r\n if (this.handleWarnings(request, data, r => this.saveData(r))) {\r\n return;\r\n }\r\n if (ServerErrorPopupCodes.SaveReviewDefinition.includes(data.message)) {\r\n this.activeDialog = data.message;\r\n }\r\n else {\r\n this.id = data.id;\r\n this.activeDialog = PopupCodes.ReviewDefinitionForm.SaveSuccessful;\r\n }\r\n this.dialogHelperService.showDialog(this.activeDialog, null, data.details);\r\n });\r\n }\r\n\r\n cancel(event: any): void {\r\n this.navigateBackToDashboard();\r\n }\r\n\r\n dialogSubmitted(event: any): void {\r\n if (this.activeDialog === PopupCodes.ReviewDefinitionForm.SaveSuccessful) {\r\n this.navigateBackToDashboard(true);\r\n }\r\n }\r\n \r\n private navigateBackToDashboard(ignoreUnsavedChanges = false): void {\r\n this.navigate(['/', RouteConstants.reviewDefinition.list], ignoreUnsavedChanges);\r\n }\r\n}\r\n","\r\n\r\n","import {Component, OnInit} from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { SpinnerService, DialogService, MessagePlaceholders, CoreService, CardSetTransformationService } from 'dspx-core';\r\n\r\nimport { AppDataKeys, AppSelector, ComponentSelectors, DashboardNames, FilterQuestionCodes, FilterQuestionDefaults, FilterQuestionLabels, FormActions, FormCustomActions, NavTabNumbers, PageNumbers, PopupCodes, QuestionCodes, ReadOnlyAccessPageActionButtons, SectionCodes } from '../../constants/app-data.constants';\r\nimport { ApiEndpointKeys, ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { Templates } from '../../constants/templates.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\n\r\nimport { ReviewGridFilterRequest } from '../../interfaces/review-grid-filter-request.interface';\r\nimport { GetReviewDecisionDetailsRequest } from '../../interfaces/get-review-decision-details-request.interface';\r\nimport { GetReviewDecisionDetailsResponse } from '../../interfaces/get-review-decision-details-response.interface';\r\nimport { ExportToDataTablesRequest } from '../../interfaces/export-to-data-tables-request.interface';\r\n\r\nimport { ResponseParserService } from '../../services/response-parser.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ErrorService } from '../../services/error.service';\r\nimport { ExcelExportService } from '../../services/excel-export.service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\nimport { FormatHtmlDetailsService } from '../../services/format-html-details-service';\r\n\r\nimport { BaseListComponent } from '../base-list-component/base-list.component';\r\n\r\ntype BulkOperationSettings = {\r\n additionalFields?: any,\r\n apiEndpoint: string,\r\n completionPopupCode: string\r\n};\r\n\r\n@Component({\r\n selector: ComponentSelectors.ReviewListForm.ReviewList,\r\n templateUrl: './review-list.component.html'\r\n})\r\nexport class ReviewListComponent extends BaseListComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n templateId: number = Templates.reviewList;\r\n\r\n isAdminMode = false;\r\n reviewDefinitionId = '';\r\n reviewOccurrenceId = '';\r\n\r\n private activeDialog: string;\r\n\r\n constructor(\r\n protected route: ActivatedRoute,\r\n protected router: Router,\r\n protected spinnerService: SpinnerService,\r\n protected dialogService: DialogService,\r\n protected responseParserService: ResponseParserService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected appDataService: AppDataService,\r\n private coreService: CoreService,\r\n private errorService: ErrorService,\r\n private excelExportService: ExcelExportService,\r\n private userProfileService: UserProfileService,\r\n private formatHtmlDetailsService: FormatHtmlDetailsService) {\r\n\r\n super(\r\n route,\r\n router,\r\n spinnerService,\r\n dialogService,\r\n responseParserService,\r\n htmlHelperService,\r\n appDataService);\r\n\r\n this.initialise(\r\n [NavTabNumbers.ReviewListForm.reviews, PageNumbers.ReviewListForm.reviews],\r\n () => this.isAdminMode\r\n ? ApiEndpoints.dashboard.getReviewDecisionsAdminMode\r\n : ApiEndpoints.dashboard.getReviewDecisions,\r\n {\r\n getFilterName: () => this.isAdminMode ? `${DashboardNames.ReviewListAdminMode}-${this.reviewOccurrenceId}` : DashboardNames.ReviewList,\r\n sectionPath: [NavTabNumbers.ReviewListForm.reviews, PageNumbers.ReviewListForm.reviews, SectionCodes.ReviewListForm.reviews],\r\n searchQuestionCode: QuestionCodes.ReviewListForm.reviewSearch,\r\n customQuestionCode: QuestionCodes.ReviewListForm.reviewFilter,\r\n customModelVisibleKeys: ['active', 'decisions', 'reviewType', 'application', 'environment', 'role', 'organisation', 'escalationLevel'],\r\n getFilterRequestFromModels: (searchModel: any, customModel: any) => ({\r\n searchTerm: searchModel,\r\n active: customModel?.[FilterQuestionCodes.ReviewListForm.reviewFilterActive],\r\n decisions: customModel?.[FilterQuestionCodes.ReviewListForm.reviewFilterDecision],\r\n statuses: customModel?.[FilterQuestionCodes.ReviewListForm.reviewFilterStatus],\r\n reviewType: customModel?.[FilterQuestionCodes.ReviewListForm.reviewFilterReviewType],\r\n application: customModel?.[FilterQuestionCodes.ReviewListForm.reviewFilterApplication],\r\n environment: customModel?.[FilterQuestionCodes.ReviewListForm.reviewFilterEnvironment],\r\n roles: customModel?.[FilterQuestionCodes.ReviewListForm.reviewFilterFunctionalRole],\r\n organisation: customModel?.[FilterQuestionCodes.ReviewListForm.reviewFilterOrganisation],\r\n escalationLevel: customModel?.[FilterQuestionCodes.ReviewListForm.reviewFilterEscalationLevel],\r\n reviewOccurrenceId: this.isAdminMode ? this.reviewOccurrenceId : null\r\n }),\r\n getDefaultFilterRequest: () => ({\r\n decisions: this.isAdminMode ? FilterQuestionDefaults.ReviewListForm.reviewFilterDecisionsAdminMode : FilterQuestionDefaults.ReviewListForm.reviewFilterDecisions,\r\n reviewOccurrenceId: this.isAdminMode ? this.reviewOccurrenceId : null\r\n }),\r\n progressiveModelUpdate: {\r\n filterQuestionPath: [NavTabNumbers.ReviewListForm.reviews, PageNumbers.ReviewListForm.reviews, SectionCodes.ReviewListForm.reviews, QuestionCodes.ReviewListForm.reviewFilter],\r\n filterSubQuestionCodeAncestorGroup: [FilterQuestionCodes.ReviewListForm.reviewFilterApplication],\r\n filterSubQuestionCodeDescendantGroups: [[FilterQuestionCodes.ReviewListForm.reviewFilterEnvironment], [FilterQuestionCodes.ReviewListForm.reviewFilterFunctionalRole]]\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.route.paramMap.subscribe((paramMap: ParamMap) => {\r\n const reviewDefinitionId = paramMap.get('reviewDefinitionId');\r\n const reviewOccurrenceId = paramMap.get('reviewOccurrenceId');\r\n if (reviewDefinitionId && reviewOccurrenceId) {\r\n this.isAdminMode = true;\r\n this.reviewDefinitionId = reviewDefinitionId;\r\n this.reviewOccurrenceId = reviewOccurrenceId;\r\n this.formServiceEndpoint = ApiEndpointKeys.getReviewDecisionsAdminModeConfigAndResponse;\r\n }\r\n\r\n this.filterHandler.setInitialFilterRequest();\r\n });\r\n\r\n this.coreService.applicationFunctions['alwaysFalse'] = () => false; // This ensures that all the other buttons have the same \"secondary\" styling\r\n this.coreService.applicationFunctions['cancel'] = () => this.cancel(null);\r\n }\r\n\r\n formLoad(event: any): void {\r\n this.ensurePageActionButtonsAreEnabledOnFormLoad(ReadOnlyAccessPageActionButtons.ReviewListForm);\r\n\r\n this.loadGridDataOnFormLoad(this.filterHandler.getInitialFilterRequest());\r\n if (this.filterHandler.hasNonEmptyCustomProperties(this.filterHandler.getInitialFilterRequest())) {\r\n this.htmlHelperService.clickButtonByTitle(AppSelector, ComponentSelectors.ReviewListForm.ReviewList, FilterQuestionLabels.ReviewListForm);\r\n }\r\n }\r\n\r\n filterData(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.ReviewListForm.reviewSearch:\r\n case QuestionCodes.ReviewListForm.reviewFilter: {\r\n this.loadGridData(this.filterHandler.saveFilterRequest(event.action));\r\n break;\r\n }\r\n }\r\n }\r\n\r\n dialogButtonClicked(event: any): void {\r\n\r\n const activeDialog = this.activeDialog;\r\n delete this.activeDialog;\r\n\r\n switch (activeDialog) {\r\n case PopupCodes.ReviewListForm.ReviewApprovalConfirmation: {\r\n this.approveReviewDecisions(event?.reviewDecisions);\r\n break;\r\n }\r\n case PopupCodes.ReviewListForm.ReviewDenialConfirmation: {\r\n this.denyReviewDecisions(event?.reviewDecisions, event?.reasonForDenial);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n actionButtonClicked(event: any): void {\r\n this.registerSelectedItems(event);\r\n switch (event.field.key) {\r\n case QuestionCodes.ReviewListForm.reviewPlaceholder: {\r\n switch (event.event.type) {\r\n case FormActions.ReviewListForm.Details: {\r\n this.showReviewDecisionDetails(event.event.data.id);\r\n break;\r\n }\r\n case FormActions.ReviewListForm.Custom: {\r\n switch (event.event.data.buttonType) {\r\n case FormCustomActions.ReviewListForm.Approve: {\r\n const selectedItems = this.getSelectedItems(event);\r\n this.confirmApproveReviewDecisions(selectedItems);\r\n break;\r\n }\r\n case FormCustomActions.ReviewListForm.Deny: {\r\n const selectedItems = this.getSelectedItems(event);\r\n this.confirmDenyReviewDecisions(selectedItems);\r\n break;\r\n }\r\n case FormCustomActions.ReviewListForm.Purge: {\r\n const messagePlaceholders: MessagePlaceholders = {\r\n applicationUrl: this.appDataService.getAppData(AppDataKeys.applicationUrl),\r\n userListRoute: RouteConstants.user.list\r\n };\r\n this.dialogService.showDialog(PopupCodes.ReviewListForm.ReviewPurgeInformation, null, messagePlaceholders);\r\n break;\r\n }\r\n case FormCustomActions.ReviewListForm.BulkExport: {\r\n const reviewExportToDataTablesRequest = this.getReviewExportToDataTablesRequest();\r\n this.excelExportService.exportReviewsToXlsx(reviewExportToDataTablesRequest, this.isAdminMode);\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n cancel(event: any): void {\r\n if (this.isAdminMode) {\r\n this.router.navigate(['/', RouteConstants.reviewDefinition.prefix, this.reviewDefinitionId]);\r\n }\r\n }\r\n\r\n private showReviewDecisionDetails(reviewDecisionId: string): void {\r\n const endPoint = this.isAdminMode\r\n ? ApiEndpoints.reviewDecision.getDetailsAdminMode\r\n : ApiEndpoints.reviewDecision.getDetails;\r\n const request: GetReviewDecisionDetailsRequest = {\r\n id: reviewDecisionId\r\n };\r\n this.appDataService.post(endPoint, request)\r\n .pipe(take(1))\r\n .subscribe((response: GetReviewDecisionDetailsResponse) => {\r\n this.dialogService.showSimplePopup(this.formatHtmlDetailsService.formatReviewDecisionDetailsHtml(response), 'Review Decision Details', 'Close');\r\n });\r\n }\r\n\r\n private confirmApproveReviewDecisions(reviewDecisions: any[]): void {\r\n this.confirmBulkOperation(PopupCodes.ReviewListForm.ReviewApprovalConfirmation, reviewDecisions);\r\n }\r\n\r\n private confirmDenyReviewDecisions(reviewDecisions: any[]): void {\r\n this.confirmBulkOperation(PopupCodes.ReviewListForm.ReviewDenialConfirmation, reviewDecisions);\r\n }\r\n\r\n private confirmBulkOperation(popupCode: string, reviewDecisions: any[]): void {\r\n\r\n if (reviewDecisions.length === 0) {\r\n this.dialogService.showDialog(PopupCodes.ReviewListForm.ReviewNoneSelected);\r\n return;\r\n }\r\n\r\n const maxBulkOperationItemCount = this.appDataService.getAppData(AppDataKeys.maxBulkOperationItemCount);\r\n if (reviewDecisions.length > parseInt(maxBulkOperationItemCount, 10)) {\r\n this.dialogService.showDialog(PopupCodes.ReviewListForm.ReviewTooManyItems, null, { maxBulkOperationItemCount });\r\n return;\r\n }\r\n\r\n const popupModel = { reviewDecisions };\r\n const popupMessagePlaceholders = { itemCount: reviewDecisions.length.toString() };\r\n this.openDialog(popupCode, popupModel, popupMessagePlaceholders);\r\n }\r\n\r\n private openDialog(popupCode: string, popupModel?: any, popupMessagePlaceholders?: MessagePlaceholders): void {\r\n this.activeDialog = popupCode;\r\n this.dialogService.showDialog(popupCode, popupModel, popupMessagePlaceholders);\r\n };\r\n\r\n private approveReviewDecisions(reviewDecisions: any[]): void {\r\n const settings: BulkOperationSettings = {\r\n apiEndpoint: ApiEndpoints.reviewDecision.approve,\r\n completionPopupCode: PopupCodes.ReviewListForm.ReviewApprovalCompleted\r\n };\r\n this.performBulkOperation(reviewDecisions, settings);\r\n }\r\n\r\n private denyReviewDecisions(reviewDecisions: any[], reasonForDenial: string): void {\r\n const settings: BulkOperationSettings = {\r\n additionalFields: { reasonForDenial },\r\n apiEndpoint: ApiEndpoints.reviewDecision.deny,\r\n completionPopupCode: PopupCodes.ReviewListForm.ReviewDenialCompleted\r\n };\r\n this.performBulkOperation(reviewDecisions, settings);\r\n }\r\n\r\n private performBulkOperation(\r\n reviewDecisions: any[],\r\n settings: BulkOperationSettings): void {\r\n\r\n const reviewDecisionIds = reviewDecisions.map(reviewDecision => reviewDecision.id);\r\n this.appDataService.post(settings.apiEndpoint, { reviewDecisionIds, ...settings.additionalFields })\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe(() => {\r\n const onComplete = () => this.dialogService.showDialog(settings.completionPopupCode);\r\n this.loadGridDataAfterSave(this.filterHandler.getFilterRequest(), onComplete);\r\n });\r\n }\r\n\r\n private getReviewExportToDataTablesRequest(): ExportToDataTablesRequest {\r\n const entities = this.getQuestionValue(\r\n this.baseForm.model,\r\n NavTabNumbers.ReviewListForm.reviews,\r\n PageNumbers.ReviewListForm.reviews,\r\n SectionCodes.ReviewListForm.reviews,\r\n QuestionCodes.ReviewListForm.reviewPlaceholder);\r\n const entityIds = entities.map(entity => entity.id);\r\n const reviewExportToDataTablesRequest: ExportToDataTablesRequest = { entityIds };\r\n return reviewExportToDataTablesRequest;\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { CardSetTransformationService, CoreService, DataService, DialogService, SpinnerService } from 'dspx-core';\r\n\r\nimport { ApiEndpointKeys, ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { Templates, Versions } from '../../constants/templates.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\nimport { AppDataKeys, ComponentSelectors, PopupCodes, ReadOnlyAccessPageActionButtons, ServerErrorPopupCodes } from '../../constants/app-data.constants';\r\n\r\nimport { SaveRequest } from '../../interfaces/save-request.interface';\r\nimport { SaveResult } from '../../interfaces/save-result.interface';\r\n\r\nimport { ComponentDeactivationService } from '../../services/component-deactivation.service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\nimport { ErrorService } from '../../services/error.service';\r\nimport { DialogHelperService } from '../../services/dialog-helper.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\n\r\nimport { BaseDetailComponent } from '../base-detail-component/base-detail-component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.UserLegacyProfileSetupForm.UserLegacyProfileSetup,\r\n templateUrl: './user-legacy-profile-setup.component.html'\r\n})\r\nexport class UserLegacyProfileSetupComponent extends BaseDetailComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n id = '';\r\n formServiceEndpoint: string = ApiEndpointKeys.getUserLegacyProfileSetupResetConfigAndResponse;\r\n templateId: number = Templates.userLegacyProfileSetup;\r\n versionNo: number = Versions.latest;\r\n activeDialog: string;\r\n\r\n private ldapNotFederatedAccountResetUrl: string;\r\n\r\n constructor(\r\n protected dialogService: DialogService,\r\n protected appDataService: AppDataService,\r\n protected dialogHelperService: DialogHelperService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected componentDeactivationService: ComponentDeactivationService,\r\n protected router: Router,\r\n private route: ActivatedRoute,\r\n private errorService: ErrorService,\r\n private coreService: CoreService,\r\n private dataService: DataService,\r\n private spinnerService: SpinnerService,\r\n private userProfileService: UserProfileService) {\r\n super(dialogService, appDataService, dialogHelperService, htmlHelperService, componentDeactivationService, router);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.route.paramMap.subscribe((paramMap: ParamMap) => {\r\n const id = paramMap.get('id');\r\n if (id) {\r\n this.id = id;\r\n this.formServiceEndpoint = ApiEndpointKeys.getUserLegacyProfileSetupConfigAndResponse;\r\n }\r\n });\r\n\r\n this.coreService.conditionFunctions['alwaysTrue'] = () => true;\r\n\r\n this.coreService.applicationFunctions['canSave'] = () => this.isFormEditable;\r\n this.coreService.applicationFunctions['cancel'] = () => this.cancel(null);\r\n\r\n this.ldapNotFederatedAccountResetUrl = this.appDataService.getAppData(AppDataKeys.ldapNotFederatedAccountResetUrl);\r\n }\r\n\r\n formLoaded(event: any): void {\r\n this.isFormEditable = !!event?.isFormEditable;\r\n\r\n this.ensurePageActionButtonsAreEnabledOnFormLoad(ReadOnlyAccessPageActionButtons.UserLegacyProfileSetupForm);\r\n\r\n this.handlePostFormLoadActions(event);\r\n if (event.popupCode || event.forwardClientRoute) {\r\n return;\r\n }\r\n\r\n const forwardUrl = event.forwardUrl;\r\n if (forwardUrl) {\r\n // Making sure that the spinner appears while the user is waiting for the browser to navigate away from the website.\r\n setTimeout(() => {\r\n this.spinnerService.showSpinner();\r\n setTimeout(() => {\r\n this.navigateToAbsoluteUrl(forwardUrl, true);\r\n });\r\n });\r\n return;\r\n }\r\n }\r\n\r\n save(event: any): void {\r\n const saveDataRequest: SaveRequest = {\r\n template: this.templateId,\r\n versionNumber: this.versionNo,\r\n id: this.id,\r\n response: event.model,\r\n expectedLastUpdateTime: event.lastUpdatedTime,\r\n isSubmit: false\r\n }\r\n if (!event.isFormValid) {\r\n this.baseForm.markAllFieldsAsTouched();\r\n if (!this.baseForm.fields[0]?.formControl.valid) {\r\n this.baseForm.showValidationSummary(true);\r\n this.dialogService.showDialog(PopupCodes.Common.ValidationError);\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n else {\r\n this.saveData(saveDataRequest);\r\n }\r\n }\r\n\r\n private saveData(request: SaveRequest): void {\r\n this.spinnerService.showSpinner();\r\n this.dataService.saveData(ApiEndpoints.userLegacyProfileSetup.save, request)\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe((data: SaveResult) => {\r\n this.spinnerService.hideSpinner();\r\n if (this.handleWarnings(request, data, r => this.saveData(r))) {\r\n return;\r\n }\r\n if (ServerErrorPopupCodes.SaveUserLegacyProfile.includes(data.message)) {\r\n this.activeDialog = data.message;\r\n }\r\n else {\r\n this.id = data.id;\r\n this.activeDialog = PopupCodes.UserLegacyProfileSetupForm.SaveSuccessful;\r\n }\r\n this.dialogHelperService.showDialog(this.activeDialog, null, data.details);\r\n });\r\n }\r\n \r\n cancel(event: any): void {\r\n this.navigateToMyApps();\r\n }\r\n\r\n dialogSubmitted(event: any): void {\r\n if (this.activeDialog === PopupCodes.UserLegacyProfileSetupForm.SaveSuccessful) {\r\n this.navigateToLegacyPortalAccountReset(true);\r\n }\r\n }\r\n\r\n private navigateToMyApps(ignoreUnsavedChanges = false): void {\r\n this.navigate(['/', RouteConstants.user.myApps], ignoreUnsavedChanges);\r\n }\r\n\r\n private navigateToLegacyPortalAccountReset(ignoreUnsavedChanges = false): void {\r\n this.navigateToAbsoluteUrl(this.ldapNotFederatedAccountResetUrl, ignoreUnsavedChanges);\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { DialogService, MessagePlaceholders, SpinnerService, DialogResult, CardSetTransformationService } from 'dspx-core';\r\n\r\nimport { AppSelector, ComponentSelectors, DashboardNames, FilterQuestionCodes, FilterQuestionLabels, FormActions, FormCustomActions, MinWaitForDialogToCloseMs, NavTabNumbers, OptionSetCodes, PageNumbers, PopupCodeButtonTitles, PopupCodes, QuestionCodes, SectionCodes } from '../../constants/app-data.constants';\r\nimport { ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { RouteConstants } from '../../constants/route.constants';\r\nimport { Templates } from '../../constants/templates.constants';\r\nimport { UserPurgeType } from '../../constants/user-purge-type';\r\n\r\nimport { MicrosoftInvitationRequest } from '../../interfaces/microsoft-invitation-request.interface';\r\nimport { PurgeUserRequest } from '../../interfaces/purge-user-request.interface';\r\nimport { PurgeUserResult, PurgeUserResultStatus } from '../../interfaces/purge-user-result.interface';\r\nimport { SyncUserRequest } from '../../interfaces/sync-user-request.interface';\r\nimport { SyncUserResult, SyncUserResultStatus } from '../../interfaces/sync-user-result.interface';\r\nimport { UserGridFilterRequest } from '../../interfaces/user-grid-filter-request.interface';\r\nimport { ExportToDataTablesRequest } from '../../interfaces/export-to-data-tables-request.interface';\r\nimport { DirectoryLookupConfiguration } from '../../interfaces/directory-lookup-configuration.interface';\r\nimport { PurgeFromDataTablesResponse, PurgeFromDataTablesSummary } from '../../interfaces/purge-from-data-tables-response.interface';\r\nimport { SyncFromDataTablesResponse, SyncFromDataTablesSummary } from '../../interfaces/sync-from-data-tables-response.interface';\r\n\r\nimport { ResponseParserService } from '../../services/response-parser.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ConfirmDialogPatchConfig, DialogHelperService } from '../../services/dialog-helper.service';\r\nimport { DirectoryLookupService } from '../../services/directory-lookup.service';\r\nimport { ExcelExportService } from '../../services/excel-export.service';\r\nimport { ExcelImportService } from '../../services/excel-import.service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseListComponent } from '../base-list-component/base-list.component';\r\n\r\n@Component({\r\n selector: ComponentSelectors.UserListForm.UserList,\r\n templateUrl: './user-list.component.html'\r\n})\r\nexport class UserListComponent extends BaseListComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n templateId: number = Templates.userList;\r\n\r\n private activeDialog: string;\r\n\r\n private readonly directoryLookupPatchConfig: ConfirmDialogPatchConfig = {\r\n appSelector: AppSelector,\r\n componentSelector: ComponentSelectors.UserListForm.UserList,\r\n acceptButtonTitle: PopupCodeButtonTitles.UserListForm.DirectoryLookup.Accept,\r\n rejectButtonTitle: PopupCodeButtonTitles.UserListForm.DirectoryLookup.Reject\r\n };\r\n\r\n private readonly limitedDirectoryLookupConfiguration: DirectoryLookupConfiguration = {\r\n onCloseLookup: (popupCode: string, popupModel: any) => {\r\n this.openDialog(popupCode, popupModel);\r\n }\r\n }\r\n\r\n private readonly directoryLookupConfiguration: DirectoryLookupConfiguration = {\r\n onCloseLookup: (popupCode: string, popupModel: any) => {\r\n this.openDialog(popupCode, popupModel);\r\n this.onOpenDirectoryLookupSubDialogCallBack();\r\n }\r\n }\r\n\r\n constructor(\r\n protected route: ActivatedRoute,\r\n protected router: Router,\r\n protected spinnerService: SpinnerService,\r\n protected dialogService: DialogService,\r\n protected responseParserService: ResponseParserService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected appDataService: AppDataService,\r\n private dialogHelperService: DialogHelperService,\r\n private directoryLookupService: DirectoryLookupService,\r\n private excelExportService: ExcelExportService,\r\n private excelImportService: ExcelImportService,\r\n private userProfileService: UserProfileService) {\r\n\r\n super(\r\n route,\r\n router,\r\n spinnerService,\r\n dialogService,\r\n responseParserService,\r\n htmlHelperService,\r\n appDataService);\r\n\r\n this.initialise(\r\n [NavTabNumbers.UserListForm.users, PageNumbers.UserListForm.users],\r\n () => ApiEndpoints.dashboard.getApplicationUsers,\r\n {\r\n getFilterName: () => DashboardNames.UserList,\r\n sectionPath: [NavTabNumbers.UserListForm.users, PageNumbers.UserListForm.users, SectionCodes.UserListForm.user],\r\n searchQuestionCode: QuestionCodes.UserListForm.userSearch,\r\n customQuestionCode: QuestionCodes.UserListForm.userFilter,\r\n customModelVisibleKeys: ['application', 'environment', 'role', 'organisation', 'disableApplicationAccessAutomatedEmails'],\r\n getFilterRequestFromModels: (searchModel: any, customModel: any) => ({\r\n searchTerm: searchModel,\r\n application: customModel?.[FilterQuestionCodes.UserListForm.userFilterApplication],\r\n environment: customModel?.[FilterQuestionCodes.UserListForm.userFilterEnvironment],\r\n roles: customModel?.[FilterQuestionCodes.UserListForm.userFilterFunctionalRole],\r\n organisation: customModel?.[FilterQuestionCodes.UserListForm.userFilterOrganisation],\r\n disableApplicationAccessAutomatedEmails: customModel?.[FilterQuestionCodes.UserListForm.userFilterDisableApplicationAccessAutomatedEmails]\r\n }),\r\n getDefaultFilterRequest: () => null,\r\n progressiveModelUpdate: {\r\n filterQuestionPath: [NavTabNumbers.UserListForm.users, PageNumbers.UserListForm.users, SectionCodes.UserListForm.user, QuestionCodes.UserListForm.userFilter],\r\n filterSubQuestionCodeAncestorGroup: [FilterQuestionCodes.UserListForm.userFilterApplication],\r\n filterSubQuestionCodeDescendantGroups: [[FilterQuestionCodes.UserListForm.userFilterEnvironment], [FilterQuestionCodes.UserListForm.userFilterFunctionalRole]]\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.filterHandler.setInitialFilterRequest();\r\n }\r\n\r\n formLoad(event: any): void {\r\n this.loadGridDataOnFormLoad(this.filterHandler.getInitialFilterRequest());\r\n if (this.filterHandler.hasNonEmptyCustomProperties(this.filterHandler.getInitialFilterRequest())) {\r\n this.htmlHelperService.clickButtonByTitle(AppSelector, ComponentSelectors.UserListForm.UserList, FilterQuestionLabels.UserListForm);\r\n }\r\n }\r\n\r\n filterData(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.UserListForm.userSearch:\r\n case QuestionCodes.UserListForm.userFilter: {\r\n this.loadGridData(this.filterHandler.saveFilterRequest(event.action));\r\n break;\r\n }\r\n }\r\n }\r\n\r\n dialogButtonClicked(event: any): void {\r\n\r\n const activeDialog = this.activeDialog;\r\n delete this.activeDialog;\r\n\r\n const openSearchDialogWithCloseCallback = (message: string, title: string, onCloseDialogEvent: () => void) =>\r\n this.openDialogAsync(PopupCodes.UserListForm.DirectoryLookupResult,\r\n null,\r\n { resultMessage: message },\r\n null,\r\n () => this.onOpenDirectoryLookupSubDialogCallBack(onCloseDialogEvent),\r\n true,\r\n { resultTitle: title });\r\n\r\n switch (activeDialog) {\r\n case PopupCodes.UserListForm.LimitedDirectoryLookup: {\r\n switch (event?.limitedDirectoryLookupType) {\r\n case OptionSetCodes.UserListForm.LimitedDirectoryLookupType.AzureAdUser: {\r\n this.directoryLookupService.searchAzureAdUserLimited(this.limitedDirectoryLookupConfiguration, event.limitedDirectoryLookupType, event.limitedDirectoryLookupValue, openSearchDialogWithCloseCallback);\r\n break;\r\n }\r\n case OptionSetCodes.UserListForm.LimitedDirectoryLookupType.LdapUser: {\r\n this.directoryLookupService.searchLdapProtocolUserLimited(this.limitedDirectoryLookupConfiguration, event.limitedDirectoryLookupType, event.limitedDirectoryLookupValue, openSearchDialogWithCloseCallback);\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n case PopupCodes.UserListForm.DirectoryLookup: {\r\n this.directoryLookupPopupModel = event;\r\n switch (event?.lookupDirectoryName) {\r\n case OptionSetCodes.UserListForm.LookupDirectoryName.LdapProtocol: {\r\n const popupModel = { ldapProtocolLookupType: OptionSetCodes.UserListForm.LdapProtocolLookupType.ProtocolUser };\r\n this.openDialogAsync(PopupCodes.UserListForm.LdapProtocolLookup, popupModel, null, null, () => this.onOpenDirectoryLookupSubDialogCallBack());\r\n break;\r\n }\r\n case OptionSetCodes.UserListForm.LookupDirectoryName.LdapScim: {\r\n const popupModel = { ldapScimLookupType: OptionSetCodes.UserListForm.LdapScimLookupType.ScimUser };\r\n this.openDialogAsync(PopupCodes.UserListForm.LdapScimLookup, popupModel, null, null, () => this.onOpenDirectoryLookupSubDialogCallBack());\r\n break;\r\n }\r\n case OptionSetCodes.UserListForm.LookupDirectoryName.AzureAd: {\r\n const popupModel = { azureAdLookupType: OptionSetCodes.UserListForm.AzureAdLookupType.User };\r\n this.openDialogAsync(PopupCodes.UserListForm.AzureAdLookup, popupModel, null, null, () => this.onOpenDirectoryLookupSubDialogCallBack());\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n case PopupCodes.UserListForm.LdapProtocolLookup: {\r\n switch (event?.ldapProtocolLookupType) {\r\n case OptionSetCodes.UserListForm.LdapProtocolLookupType.ProtocolUser: {\r\n this.directoryLookupService.searchLdapProtocolUser(this.directoryLookupConfiguration, event.ldapProtocolLookupType, event.ldapProtocolLookupValue, openSearchDialogWithCloseCallback);\r\n break;\r\n }\r\n case OptionSetCodes.UserListForm.LdapProtocolLookupType.ProtocolGroup: {\r\n this.directoryLookupService.searchLdapProtocolGroup(this.directoryLookupConfiguration, event.ldapProtocolLookupType, event.ldapProtocolLookupValue, openSearchDialogWithCloseCallback);\r\n break;\r\n }\r\n case OptionSetCodes.UserListForm.LdapProtocolLookupType.ProtocolOrganisation: {\r\n this.directoryLookupService.searchLdapProtocolOrganisation(this.directoryLookupConfiguration, event.ldapProtocolLookupType, event.ldapProtocolLookupValue, openSearchDialogWithCloseCallback);\r\n break;\r\n }\r\n case OptionSetCodes.UserListForm.LdapProtocolLookupType.ProtocolApplication: {\r\n this.directoryLookupService.searchLdapProtocolApplication(this.directoryLookupConfiguration, event.ldapProtocolLookupType, event.ldapProtocolLookupValue, openSearchDialogWithCloseCallback);\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n case PopupCodes.UserListForm.LdapScimLookup: {\r\n switch (event?.ldapScimLookupType) {\r\n case OptionSetCodes.UserListForm.LdapScimLookupType.ScimUser:\r\n case OptionSetCodes.UserListForm.LdapScimLookupType.ScimUserAndGroups: {\r\n this.directoryLookupService.searchLdapScimUser(this.directoryLookupConfiguration, event.ldapScimLookupType, event.ldapScimLookupOnlyExactMatch, event.ldapScimLookupValue, openSearchDialogWithCloseCallback);\r\n break;\r\n }\r\n case OptionSetCodes.UserListForm.LdapScimLookupType.ScimGroup: {\r\n this.directoryLookupService.searchLdapScimGroup(this.directoryLookupConfiguration, event.ldapScimLookupType, event.ldapScimLookupOnlyExactMatch, event.ldapScimLookupValue, openSearchDialogWithCloseCallback);\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n case PopupCodes.UserListForm.AzureAdLookup: {\r\n switch (event?.azureAdLookupType) {\r\n case OptionSetCodes.UserListForm.AzureAdLookupType.User: {\r\n this.directoryLookupService.searchAzureAdUser(this.directoryLookupConfiguration, event.azureAdLookupType, event.azureAdLookupOnlyExactMatch, event.azureAdLookupValue, openSearchDialogWithCloseCallback);\r\n break;\r\n }\r\n case OptionSetCodes.UserListForm.AzureAdLookupType.Group: {\r\n this.directoryLookupService.searchAzureAdGroup(this.directoryLookupConfiguration, event.azureAdLookupType, event.azureAdLookupOnlyExactMatch, event.azureAdLookupValue, openSearchDialogWithCloseCallback);\r\n break;\r\n }\r\n case OptionSetCodes.UserListForm.AzureAdLookupType.Domain: {\r\n this.directoryLookupService.searchAzureAdDomain(this.directoryLookupConfiguration, event.azureAdLookupType, event.azureAdLookupOnlyExactMatch, event.azureAdLookupValue, openSearchDialogWithCloseCallback);\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n case PopupCodes.UserListForm.UserSendInvitation: {\r\n if (event?.userTabSendInvitationEmail) {\r\n this.sendSingleUserInvitation(event.userTabSendInvitationEmail);\r\n }\r\n break;\r\n }\r\n case PopupCodes.UserListForm.BulkExportChoice: {\r\n const userExportToDataTablesRequest = this.getUserExportToDataTablesRequest();\r\n switch (event?.bulkExportType) {\r\n case OptionSetCodes.UserListForm.BulkExportType.Standard: {\r\n this.excelExportService.exportUsersToXlsx(userExportToDataTablesRequest);\r\n break;\r\n }\r\n case OptionSetCodes.UserListForm.BulkExportType.StandardFromEmailList: {\r\n this.htmlHelperService.uploadFile(\r\n ['.xlsx', '.xls'],\r\n file => this.validateEmailsAndExportUsersToXlsxFromEmailList(file, event),\r\n () => this.openDialog(PopupCodes.UserListForm.BulkExportChoice, event));\r\n break;\r\n }\r\n case OptionSetCodes.UserListForm.BulkExportType.ImportCompatible: {\r\n this.excelExportService.exportUsersToXlsxImportCompatible(userExportToDataTablesRequest);\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n case PopupCodes.UserListForm.PurgeUserConfirmation: {\r\n if (event?.userId && event?.userEmail) {\r\n switch (event?.purgeUserConfirmationPurgeType) {\r\n case OptionSetCodes.UserListForm.DeleteType.DbAndAzureAd: {\r\n this.purgeUser(event.userId, event.userEmail, UserPurgeType.FromBothDbAndAzureAd);\r\n break;\r\n }\r\n case OptionSetCodes.UserListForm.DeleteType.DbOnly: {\r\n this.purgeUser(event.userId, event.userEmail, UserPurgeType.FromDbOnly);\r\n break;\r\n }\r\n default: {\r\n this.purgeUser(event.userId, event.userEmail, null); // null UserPurgeType means \"let the back-end decide based on permissions\"\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n case PopupCodes.UserListForm.SyncUserConfirmation: {\r\n if (event?.userId && event?.userEmail) {\r\n this.syncUser(event.userId, event.userEmail);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n actionButtonClicked(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.UserListForm.userPlaceholder: {\r\n switch (event.event.type) {\r\n case FormActions.UserListForm.View:\r\n case FormActions.UserListForm.Edit: {\r\n this.router.navigate(['/', RouteConstants.user.prefix, event.event.data.id]);\r\n break;\r\n }\r\n case FormActions.UserListForm.Purge: {\r\n const user = event.event.data;\r\n const popupModel = { userId: user.id, userEmail: user.email };\r\n const popupMessagePlaceholders = { userEmail: user.email };\r\n this.openDialog(PopupCodes.UserListForm.PurgeUserConfirmation, popupModel, popupMessagePlaceholders)\r\n break;\r\n }\r\n case FormActions.UserListForm.Sync: {\r\n const user = event.event.data;\r\n const popupModel = { userId: user.id, userEmail: user.email };\r\n const popupMessagePlaceholders = { userEmail: user.email };\r\n this.openDialog(PopupCodes.UserListForm.SyncUserConfirmation, popupModel, popupMessagePlaceholders)\r\n break;\r\n }\r\n case FormActions.UserListForm.Custom: {\r\n switch (event.event.data.buttonType) {\r\n case FormCustomActions.UserListForm.Add: {\r\n this.router.navigate(['/', RouteConstants.user.prefix]);\r\n break;\r\n }\r\n case FormCustomActions.UserListForm.LimitedDirectoryLookup: {\r\n const popupModel = { limitedDirectoryLookupType: OptionSetCodes.UserListForm.LimitedDirectoryLookupType.AzureAdUser };\r\n this.openDialog(PopupCodes.UserListForm.LimitedDirectoryLookup, popupModel);\r\n break;\r\n }\r\n case FormCustomActions.UserListForm.DirectoryLookup: {\r\n const popupModel = { lookupDirectoryName: OptionSetCodes.UserListForm.LookupDirectoryName.AzureAd };\r\n this.openDialog(PopupCodes.UserListForm.DirectoryLookup, popupModel, null, this.directoryLookupPatchConfig);\r\n break;\r\n }\r\n case FormCustomActions.UserListForm.SendInvitation: {\r\n this.openDialog(PopupCodes.UserListForm.UserSendInvitation);\r\n break;\r\n }\r\n case FormCustomActions.UserListForm.BulkExportChooseType: {\r\n const popupModel = { bulkExportType: OptionSetCodes.UserListForm.BulkExportType.Standard };\r\n this.openDialog(PopupCodes.UserListForm.BulkExportChoice, popupModel);\r\n break;\r\n }\r\n case FormCustomActions.UserListForm.BulkExport: {\r\n const userExportToDataTablesRequest = this.getUserExportToDataTablesRequest();\r\n this.excelExportService.exportUsersToXlsx(userExportToDataTablesRequest);\r\n break;\r\n }\r\n case FormCustomActions.UserListForm.BulkImport: {\r\n this.importUsersFromXlsx();\r\n break;\r\n }\r\n case FormCustomActions.UserListForm.BulkPurge: {\r\n this.purgeUsersFromXlsx();\r\n break;\r\n }\r\n case FormCustomActions.UserListForm.BulkSync: {\r\n this.syncUsersFromXlsx();\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n importUsersFromXlsx(): void {\r\n this.excelImportService.importUsersFromXlsx()\r\n .pipe(take(1))\r\n .subscribe(excelImportResult => {\r\n if (!excelImportResult.isCancelled) {\r\n this.loadGridData(this.filterHandler.getFilterRequest());\r\n }\r\n });\r\n }\r\n\r\n purgeUsersFromXlsx(): void {\r\n\r\n const showInstructionsDialog = () =>\r\n this.dialogService.showConfirm('userPurgeInstructions');\r\n\r\n const showConfirmationDialog = (purgeResponse: PurgeFromDataTablesResponse) =>\r\n this.dialogService.showConfirm('userPurgeConfirmation', { summary: this.formatPurgeSummaryHtml(purgeResponse.summary) });\r\n\r\n const showCompletedDialog = (fileName: string, purgeResponse: PurgeFromDataTablesResponse) =>\r\n this.dialogService.showConfirm('userPurgeCompleted', { fileName, summary: this.formatPurgeSummaryHtml(purgeResponse.summary) });\r\n\r\n const onSuccess = (purgeResponse: PurgeFromDataTablesResponse) => {\r\n const fileName = this.excelExportService.exportDataTablesToXlsx(purgeResponse.exportResponse, 'BulkDelete');\r\n showCompletedDialog(fileName, purgeResponse)\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n this.loadGridData(this.filterHandler.getFilterRequest());\r\n })\r\n };\r\n\r\n const onCancel = () =>\r\n setTimeout(() => this.purgeUsersFromXlsx(), MinWaitForDialogToCloseMs);\r\n\r\n showInstructionsDialog()\r\n .pipe(take(1))\r\n .subscribe(dialogResult => {\r\n switch (dialogResult as DialogResult) {\r\n case DialogResult.ACCEPTED: {\r\n this.htmlHelperService.uploadFile(\r\n ['.xlsx', '.xls'],\r\n file => this.excelImportService.purgeUsersFromXlsx(file, showConfirmationDialog)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: purgeResponse => onSuccess(purgeResponse),\r\n error: () => onCancel()\r\n }),\r\n () => onCancel());\r\n break;\r\n }\r\n case DialogResult.REJECTED: {\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n syncUsersFromXlsx(): void {\r\n\r\n const showInstructionsDialog = () =>\r\n this.dialogService.showConfirm('userSyncInstructions');\r\n\r\n const showConfirmationDialog = (syncResponse: SyncFromDataTablesResponse) =>\r\n this.dialogService.showConfirm('userSyncConfirmation', { summary: this.formatSyncSummaryHtml(syncResponse.summary) });\r\n\r\n const showCompletedDialog = (fileName: string, syncResponse: SyncFromDataTablesResponse) =>\r\n this.dialogService.showConfirm('userSyncCompleted', { fileName, summary: this.formatSyncSummaryHtml(syncResponse.summary) });\r\n\r\n const onSuccess = (syncResponse: SyncFromDataTablesResponse) => {\r\n const fileName = this.excelExportService.exportDataTablesToXlsx(syncResponse.exportResponse, 'BulkSync');\r\n showCompletedDialog(fileName, syncResponse)\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n this.loadGridData(this.filterHandler.getFilterRequest());\r\n })\r\n };\r\n\r\n const onCancel = () =>\r\n setTimeout(() => this.syncUsersFromXlsx(), MinWaitForDialogToCloseMs);\r\n\r\n showInstructionsDialog()\r\n .pipe(take(1))\r\n .subscribe(dialogResult => {\r\n switch (dialogResult as DialogResult) {\r\n case DialogResult.ACCEPTED: {\r\n this.htmlHelperService.uploadFile(\r\n ['.xlsx', '.xls'],\r\n file => this.excelImportService.syncUsersFromXlsx(file, showConfirmationDialog)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: syncResponse => onSuccess(syncResponse),\r\n error: () => onCancel()\r\n }),\r\n () => onCancel());\r\n break;\r\n }\r\n case DialogResult.REJECTED: {\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n validateEmailsAndExportUsersToXlsxFromEmailList(file: File, bulkExportChoicePopupModel: any): void {\r\n this.excelImportService.validateEmails(file)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: emails => {\r\n const userExportToDataTablesRequest: ExportToDataTablesRequest = { entityIds: emails };\r\n this.excelExportService.exportUsersToXlsxFromEmailList(userExportToDataTablesRequest);\r\n },\r\n error: error => {\r\n this.openDialogAsync(PopupCodes.UserListForm.BulkExportChoice, bulkExportChoicePopupModel);\r\n }\r\n });\r\n }\r\n\r\n // NOTE: the framework does not provide a way to hook to the Cancel event of a dialog, so we have to use a workaround,\r\n // i.e. whenever we open a dialog under the directory lookup dialog, we add a one-off click event listener to the close button of the dialog,\r\n // so that when the dialog is closed, we can re-open the directory lookup dialog.\r\n private directoryLookupPopupModel: any;\r\n private onOpenDirectoryLookupSubDialogCallBack = (closeDialogEvent?: () => void) => {\r\n const closeDialogEventToUse = closeDialogEvent ? closeDialogEvent : () => {\r\n this.openDialogAsync(PopupCodes.UserListForm.DirectoryLookup, this.directoryLookupPopupModel, null, this.directoryLookupPatchConfig);\r\n }\r\n\r\n setTimeout(() => {\r\n const rejectButtonElement = this.htmlHelperService.getComponentDialogButtonHtmlElement(AppSelector, ComponentSelectors.UserListForm.UserList, this.directoryLookupPatchConfig.rejectButtonTitle);\r\n this.htmlHelperService.addOneOffEventListener(rejectButtonElement, 'click', closeDialogEventToUse);\r\n\r\n const closeDialogButtonElement = this.htmlHelperService.getComponentDialogIconButtonHtmlElement(AppSelector, ComponentSelectors.UserListForm.UserList, 'p-dialog-header-close');\r\n this.htmlHelperService.addOneOffEventListener(closeDialogButtonElement, 'click', closeDialogEventToUse);\r\n\r\n this.htmlHelperService.addOneOffEventListener(closeDialogButtonElement, 'keydown', (event: KeyboardEvent) => {\r\n if (event.key === 'Enter') {\r\n closeDialogEventToUse();\r\n }\r\n });\r\n \r\n this.htmlHelperService.addOneOffEventListener(document, 'keydown', (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') {\r\n closeDialogEventToUse();\r\n }\r\n });\r\n });\r\n }\r\n\r\n private openDialog(popupCode: string, popupModel?: any, popupMessagePlaceholders?: MessagePlaceholders, patchConfig?: ConfirmDialogPatchConfig, displayCloseButton?: boolean, titleMessagePlaceholders?: MessagePlaceholders): void {\r\n this.activeDialog = popupCode;\r\n if (patchConfig) {\r\n this.dialogHelperService.patchConfirmDialogValidationIssue(patchConfig);\r\n }\r\n this.dialogService.showDialog(popupCode, popupModel, popupMessagePlaceholders, displayCloseButton, null, titleMessagePlaceholders);\r\n };\r\n\r\n private openDialogAsync(popupCode: string, popupModel?: any, popupMessagePlaceholders?: MessagePlaceholders, patchConfig?: ConfirmDialogPatchConfig, onOpenDialogCallBack?: () => void, displayCloseButton?: boolean, titleMessagePlaceholders?: MessagePlaceholders): void {\r\n setTimeout(() => {\r\n this.openDialog(popupCode, popupModel, popupMessagePlaceholders, patchConfig, displayCloseButton, titleMessagePlaceholders);\r\n onOpenDialogCallBack?.();\r\n }, MinWaitForDialogToCloseMs);\r\n }\r\n\r\n private purgeUser(userId: string, userEmail: string, userPurgeType: UserPurgeType): void {\r\n this.spinnerService.showSpinner();\r\n const request: PurgeUserRequest = { userId, userPurgeType };\r\n this.appDataService.post(ApiEndpoints.applicationUser.purge, request)\r\n .pipe(take(1))\r\n .subscribe((data: PurgeUserResult) => {\r\n this.spinnerService.hideSpinner();\r\n switch (data?.status) {\r\n case PurgeUserResultStatus.Success: {\r\n this.dialogService.showDialog(PopupCodes.UserListForm.PurgeUserSuccess, null, { userEmail });\r\n this.loadGridData(this.filterHandler.getFilterRequest());\r\n break;\r\n }\r\n case PurgeUserResultStatus.Error: {\r\n this.dialogService.showDialog(`${PopupCodes.UserListForm.PurgeUserError}${data.errorCode}`, null, { ...data.errorData, userEmail });\r\n break;\r\n }\r\n default: {\r\n this.dialogService.showDialog(PopupCodes.Common.ServerError);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private syncUser(userId: string, userEmail: string): void {\r\n this.spinnerService.showSpinner();\r\n const request: SyncUserRequest = { userId };\r\n this.appDataService.post(ApiEndpoints.applicationUser.sync, request)\r\n .pipe(take(1))\r\n .subscribe((data: SyncUserResult) => {\r\n this.spinnerService.hideSpinner();\r\n switch (data?.status) {\r\n case SyncUserResultStatus.Success: {\r\n this.dialogService.showDialog(PopupCodes.UserListForm.SyncUserSuccess, null, { userEmail });\r\n this.loadGridData(this.filterHandler.getFilterRequest());\r\n break;\r\n }\r\n case SyncUserResultStatus.Error: {\r\n this.dialogService.showDialog(`${PopupCodes.UserListForm.SyncUserError}${data.errorCode}`, null, { ...data.errorData, userEmail });\r\n break;\r\n }\r\n default: {\r\n this.dialogService.showDialog(PopupCodes.Common.ServerError);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getUserExportToDataTablesRequest(): ExportToDataTablesRequest {\r\n const entities = this.getQuestionValue(\r\n this.baseForm.model,\r\n NavTabNumbers.UserListForm.users,\r\n PageNumbers.UserListForm.users,\r\n SectionCodes.UserListForm.user,\r\n QuestionCodes.UserListForm.userPlaceholder);\r\n const entityIds = entities.map(entity => entity.id);\r\n const userExportToDataTablesRequest: ExportToDataTablesRequest = { entityIds };\r\n return userExportToDataTablesRequest;\r\n }\r\n\r\n private sendSingleUserInvitation(email: string): void {\r\n const request: MicrosoftInvitationRequest = { email: email };\r\n this.appDataService.post(ApiEndpoints.applicationUser.sendInvitation, request)\r\n .pipe(take(1))\r\n .subscribe(data => {\r\n if (data) {\r\n this.spinnerService.hideSpinner();\r\n const popupCode = data.success\r\n ? PopupCodes.UserListForm.UserTabSendInvitationSuccessful\r\n : PopupCodes.UserListForm.UserTabSendInvitationFailed;\r\n this.dialogService.showDialog(popupCode);\r\n }\r\n });\r\n }\r\n\r\n private formatPurgeSummaryHtml(summary: PurgeFromDataTablesSummary) {\r\n\r\n const totalItems = summary?.totalItems?.toString();\r\n const totalSuccessItems = summary?.totalSuccessItems?.toString();\r\n const totalFailureItems = summary?.totalFailureItems?.toString();\r\n\r\n const fields: { name: string, value: string }[] = [];\r\n const addFieldIfNotEmpty = (field: { name: string, value: string }) => {\r\n if (field.value) {\r\n fields.push(field);\r\n }\r\n }\r\n addFieldIfNotEmpty({ name: 'Total items selected', value: totalItems });\r\n addFieldIfNotEmpty({ name: 'Total successes', value: totalSuccessItems });\r\n addFieldIfNotEmpty({ name: 'Total failures', value: totalFailureItems });\r\n\r\n if (fields.length === 0) {\r\n return '';\r\n }\r\n const summaryHtml =\r\n this.htmlHelperService.formatHtml('p', 'Summary:') +\r\n this.htmlHelperService.formatFields(fields);\r\n return summaryHtml;\r\n }\r\n\r\n private formatSyncSummaryHtml(summary: SyncFromDataTablesSummary) {\r\n\r\n const totalItems = summary?.totalItems?.toString();\r\n const totalSuccessItems = summary?.totalSuccessItems?.toString();\r\n const totalFailureItems = summary?.totalFailureItems?.toString();\r\n\r\n const fields: { name: string, value: string }[] = [];\r\n const addFieldIfNotEmpty = (field: { name: string, value: string }) => {\r\n if (field.value) {\r\n fields.push(field);\r\n }\r\n }\r\n addFieldIfNotEmpty({ name: 'Total items selected', value: totalItems });\r\n addFieldIfNotEmpty({ name: 'Total successes', value: totalSuccessItems });\r\n addFieldIfNotEmpty({ name: 'Total failures', value: totalFailureItems });\r\n\r\n if (fields.length === 0) {\r\n return '';\r\n }\r\n const summaryHtml =\r\n this.htmlHelperService.formatHtml('p', 'Summary:') +\r\n this.htmlHelperService.formatFields(fields);\r\n return summaryHtml;\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { DialogService, SpinnerService, DialogResult, CardSetTransformationService } from 'dspx-core';\r\n\r\nimport { AppDataKeys, AppSelector, ComponentSelectors, DashboardNames, FilterQuestionCodes, FilterQuestionLabels, FormActions, FormCustomActions, NavTabNumbers, PageNumbers, PopupCodes, QuestionCodes, SectionCodes } from '../../constants/app-data.constants';\r\nimport { ApiEndpoints } from '../../constants/api-endpoints.constants';\r\nimport { Templates } from '../../constants/templates.constants';\r\n\r\nimport { UserRequestGridFilterRequest } from '../../interfaces/user-request-grid-filter-request.interface';\r\nimport { UserRequestUniqueKey } from '../../interfaces/user-request-unique-key.interface';\r\nimport { GetUserRequestDetailsResponse } from '../../interfaces/get-user-request-details-response.interface';\r\nimport { ExportToDataTablesRequest } from '../../interfaces/export-to-data-tables-request.interface';\r\nimport { UserRequestBulkOperationResponse, UserRequestBulkOperationSummary } from '../../interfaces/user-request-bulk-operation-response.interface';\r\n\r\nimport { ResponseParserService } from '../../services/response-parser.service';\r\nimport { HtmlHelperService } from '../../services/html-helper.service';\r\nimport { AppDataService } from '../../services/app-data.service';\r\nimport { ExcelExportService } from '../../services/excel-export.service';\r\nimport { FormatHtmlDetailsService } from '../../services/format-html-details-service';\r\nimport { UserProfileService } from '../../services/user-profile.service';\r\n\r\nimport { BaseListComponent } from '../base-list-component/base-list.component';\r\n\r\ntype BulkOperationSettings = {\r\n confirmPopupCode: string,\r\n apiEndpoint: string,\r\n fileNamePrefix: string,\r\n reloadOnComplete: boolean\r\n};\r\n\r\n@Component({\r\n selector: ComponentSelectors.UserRequestListForm.UserRequestList,\r\n templateUrl: './user-request-list.component.html'\r\n})\r\nexport class UserRequestListComponent extends BaseListComponent implements OnInit {\r\n\r\n fieldTypeReplacements = CardSetTransformationService.cardSetWithFlatTabsFieldTypeReplacements;\r\n\r\n templateId: number = Templates.userRequestList;\r\n\r\n constructor(\r\n protected route: ActivatedRoute,\r\n protected router: Router,\r\n protected spinnerService: SpinnerService,\r\n protected dialogService: DialogService,\r\n protected responseParserService: ResponseParserService,\r\n protected htmlHelperService: HtmlHelperService,\r\n protected appDataService: AppDataService,\r\n private excelExportService: ExcelExportService,\r\n private formatHtmlDetailsService: FormatHtmlDetailsService,\r\n private userProfileService: UserProfileService) {\r\n\r\n super(\r\n route,\r\n router,\r\n spinnerService,\r\n dialogService,\r\n responseParserService,\r\n htmlHelperService,\r\n appDataService);\r\n\r\n this.initialise(\r\n [NavTabNumbers.UserRequestListForm.userRequests, PageNumbers.UserRequestListForm.userRequests],\r\n () => ApiEndpoints.dashboard.getUserRequests,\r\n {\r\n getFilterName: () => DashboardNames.UserRequestList,\r\n sectionPath: [NavTabNumbers.UserRequestListForm.userRequests, PageNumbers.UserRequestListForm.userRequests, SectionCodes.UserRequestListForm.userRequests],\r\n searchQuestionCode: QuestionCodes.UserRequestListForm.userRequestSearch,\r\n customQuestionCode: QuestionCodes.UserRequestListForm.userRequestFilter,\r\n customModelVisibleKeys: ['statusCategories', 'types', 'application', 'environment', 'role', 'organisation'],\r\n getFilterRequestFromModels: (searchModel: any, customModel: any) => ({\r\n searchTerm: searchModel,\r\n statusCategories: customModel?.[FilterQuestionCodes.UserRequestListForm.requestFilterRequestStatusCategory],\r\n types: customModel?.[FilterQuestionCodes.UserRequestListForm.requestFilterRequestType],\r\n application: customModel?.[FilterQuestionCodes.UserRequestListForm.requestFilterApplication],\r\n environment: customModel?.[FilterQuestionCodes.UserRequestListForm.requestFilterEnvironment],\r\n roles: customModel?.[FilterQuestionCodes.UserRequestListForm.requestFilterFunctionalRole],\r\n organisation: customModel?.[FilterQuestionCodes.UserRequestListForm.requestFilterOrganisation]\r\n }),\r\n getDefaultFilterRequest: () => null,\r\n progressiveModelUpdate: {\r\n filterQuestionPath: [NavTabNumbers.UserRequestListForm.userRequests, PageNumbers.UserRequestListForm.userRequests, SectionCodes.UserRequestListForm.userRequests, QuestionCodes.UserRequestListForm.userRequestFilter],\r\n filterSubQuestionCodeAncestorGroup: [FilterQuestionCodes.UserRequestListForm.requestFilterApplication],\r\n filterSubQuestionCodeDescendantGroups: [[FilterQuestionCodes.UserRequestListForm.requestFilterEnvironment], [FilterQuestionCodes.UserRequestListForm.requestFilterFunctionalRole]]\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userProfileService.setHeaderAndMenuFromUserProfile();\r\n\r\n this.filterHandler.setInitialFilterRequest();\r\n }\r\n\r\n formLoad(event: any): void {\r\n this.loadGridDataOnFormLoad(this.filterHandler.getInitialFilterRequest());\r\n if (this.filterHandler.hasNonEmptyCustomProperties(this.filterHandler.getInitialFilterRequest())) {\r\n this.htmlHelperService.clickButtonByTitle(AppSelector, ComponentSelectors.UserRequestListForm.UserRequestList, FilterQuestionLabels.UserRequestListForm);\r\n }\r\n }\r\n\r\n filterData(event: any): void {\r\n switch (event.field.key) {\r\n case QuestionCodes.UserRequestListForm.userRequestSearch:\r\n case QuestionCodes.UserRequestListForm.userRequestFilter: {\r\n this.loadGridData(this.filterHandler.saveFilterRequest(event.action));\r\n break;\r\n }\r\n }\r\n }\r\n\r\n dialogButtonClicked(event: any): void {\r\n // No dialog buttons are implemented in this dashboard\r\n }\r\n\r\n actionButtonClicked(event: any): void {\r\n this.registerSelectedItems(event);\r\n switch (event.field.key) {\r\n case QuestionCodes.UserRequestListForm.userRequestPlaceholder:\r\n switch (event.event.type) {\r\n case FormActions.UserRequestListForm.Details: {\r\n const request = event.event.data;\r\n const requestUniqueKey = { userRequestSource: request.userRequestSource, id: request.id };\r\n this.showUserRequestDetails(requestUniqueKey);\r\n break;\r\n }\r\n case FormActions.UserRequestListForm.Custom: {\r\n switch (event.event.data.buttonType) {\r\n case FormCustomActions.UserRequestListForm.SendInvitations: {\r\n const selectedItems = this.getSelectedItems(event);\r\n const requestUniqueKeys = selectedItems.map(request => ({ userRequestSource: request.userRequestSource, id: request.id }));\r\n this.sendUserRequestInvitations(requestUniqueKeys);\r\n break;\r\n }\r\n case FormCustomActions.UserRequestListForm.Retry: {\r\n const selectedItems = this.getSelectedItems(event);\r\n const requestUniqueKeys = selectedItems.map(request => ({ userRequestSource: request.userRequestSource, id: request.id }));\r\n this.retryUserRequests(requestUniqueKeys);\r\n break;\r\n }\r\n case FormCustomActions.UserRequestListForm.Repair: {\r\n const selectedItems = this.getSelectedItems(event);\r\n const requestUniqueKeys = selectedItems.map(request => ({ userRequestSource: request.userRequestSource, id: request.id }));\r\n this.repairUserRequests(requestUniqueKeys);\r\n break;\r\n }\r\n case FormCustomActions.UserRequestListForm.BulkExport: {\r\n const userRequestExportToDataTablesRequest = this.getUserRequestExportToDataTablesRequest();\r\n this.excelExportService.exportUserRequestsToXlsx(userRequestExportToDataTablesRequest);\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n\r\n private showUserRequestDetails(requestUniqueKey: UserRequestUniqueKey): void {\r\n this.appDataService.post(ApiEndpoints.userRequest.getDetails, requestUniqueKey)\r\n .pipe(take(1))\r\n .subscribe((response: GetUserRequestDetailsResponse) => {\r\n this.dialogService.showSimplePopup(this.formatHtmlDetailsService.formatUserRequestDetailsHtml(response), 'Request Details', 'Close');\r\n });\r\n }\r\n\r\n private sendUserRequestInvitations(requestUniqueKeys: UserRequestUniqueKey[]): void {\r\n const settings: BulkOperationSettings = {\r\n confirmPopupCode: PopupCodes.UserRequestListForm.BulkOperationConfirmSendInvitations,\r\n apiEndpoint: ApiEndpoints.userRequest.sendInvitations,\r\n fileNamePrefix: 'SendInvitations',\r\n reloadOnComplete: false\r\n };\r\n this.performBulkOperation(requestUniqueKeys, settings);\r\n }\r\n\r\n private retryUserRequests(requestUniqueKeys: UserRequestUniqueKey[]): void {\r\n const settings: BulkOperationSettings = {\r\n confirmPopupCode: PopupCodes.UserRequestListForm.BulkOperationConfirmRetry,\r\n apiEndpoint: ApiEndpoints.userRequest.retry,\r\n fileNamePrefix: 'Retry',\r\n reloadOnComplete: false\r\n };\r\n this.performBulkOperation(requestUniqueKeys, settings);\r\n }\r\n\r\n private repairUserRequests(requestUniqueKeys: UserRequestUniqueKey[]): void {\r\n const settings: BulkOperationSettings = {\r\n confirmPopupCode: PopupCodes.UserRequestListForm.BulkOperationConfirmRepair,\r\n apiEndpoint: ApiEndpoints.userRequest.repair,\r\n fileNamePrefix: 'Repair',\r\n reloadOnComplete: true\r\n };\r\n this.performBulkOperation(requestUniqueKeys, settings);\r\n }\r\n\r\n private performBulkOperation(\r\n requestUniqueKeys: UserRequestUniqueKey[],\r\n settings: BulkOperationSettings): void {\r\n\r\n if (requestUniqueKeys.length === 0) {\r\n this.dialogService.showDialog(PopupCodes.UserRequestListForm.BulkOperationNoItems);\r\n return;\r\n }\r\n\r\n const maxBulkOperationItemCount = this.appDataService.getAppData(AppDataKeys.maxBulkOperationItemCount);\r\n if (requestUniqueKeys.length > parseInt(maxBulkOperationItemCount, 10)) {\r\n this.dialogService.showDialog(PopupCodes.UserRequestListForm.BulkOperationTooManyItems, null, { maxBulkOperationItemCount });\r\n return;\r\n }\r\n\r\n const itemCount = requestUniqueKeys.length.toString();\r\n this.dialogService\r\n .showConfirm(settings.confirmPopupCode, { itemCount })\r\n .pipe(take(1))\r\n .subscribe(data => {\r\n switch (data as DialogResult) {\r\n case DialogResult.ACCEPTED: {\r\n this.excelExportService.exportToXlsx(\r\n settings.apiEndpoint,\r\n { entityIds: requestUniqueKeys },\r\n settings.fileNamePrefix,\r\n response => response.exportResponse,\r\n (response, fileName) => {\r\n const summary = this.formatBulkOperationSummary(response.summary);\r\n const onComplete = () => this.dialogService.showDialog(PopupCodes.UserRequestListForm.BulkOperationCompleted, null, { fileName, summary });\r\n if (settings.reloadOnComplete) {\r\n this.loadGridDataAfterSave(this.filterHandler.getFilterRequest(), onComplete);\r\n }\r\n else {\r\n onComplete();\r\n }\r\n });\r\n break;\r\n }\r\n case DialogResult.REJECTED: {\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private formatBulkOperationSummary(operationSummary: UserRequestBulkOperationSummary): string {\r\n const totalItems = operationSummary?.totalItems?.toString();\r\n const totalSuccessItems = operationSummary?.totalSuccessItems?.toString();\r\n const totalFailureItems = operationSummary?.totalFailureItems?.toString();\r\n const totalNotApplicableItems = operationSummary?.totalNotApplicableItems?.toString();\r\n if (!totalItems || !totalSuccessItems || !totalFailureItems || !totalNotApplicableItems) {\r\n return '';\r\n }\r\n const summary =\r\n this.htmlHelperService.formatHtml('p', 'Summary:') +\r\n this.htmlHelperService.formatFields([\r\n { name: 'Total items selected', value: totalItems },\r\n { name: 'Total successes', value: totalSuccessItems },\r\n { name: 'Total failures', value: totalFailureItems },\r\n { name: 'Total not applicable', value: totalNotApplicableItems }\r\n ]);\r\n return summary;\r\n }\r\n\r\n private getUserRequestExportToDataTablesRequest(): ExportToDataTablesRequest {\r\n const entities = this.getQuestionValue(\r\n this.baseForm.model,\r\n NavTabNumbers.UserRequestListForm.userRequests,\r\n PageNumbers.UserRequestListForm.userRequests,\r\n SectionCodes.UserRequestListForm.userRequests,\r\n QuestionCodes.UserRequestListForm.userRequestPlaceholder);\r\n const entityIds = entities.map(entity => ({ userRequestSource: entity.userRequestSource, id: entity.id }));\r\n const userRequestExportToDataTablesRequest: ExportToDataTablesRequest = { entityIds };\r\n return userRequestExportToDataTablesRequest;\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { AppDataKeys, ComponentSelectors } from '../../constants/app-data.constants';\r\n\r\nimport { AppDataService } from '../../services/app-data.service';\r\n\r\n@Component({\r\n selector: ComponentSelectors.Other.UserTermsAndConditions,\r\n templateUrl: './user-terms-and-conditions.component.html'\r\n})\r\nexport class UserTermsAndConditionsComponent implements OnInit {\r\n\r\n userTermsAndConditions: string;\r\n\r\n constructor(\r\n private appDataService: AppDataService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userTermsAndConditions = this.appDataService.getAppData(AppDataKeys.userTermsAndConditions);\r\n }\r\n}\r\n","

Terms & Conditions - End User

\r\n\r\n
\r\n
\r\n
\r\n","export const ApiEndpointKeys = {\r\n getFormConfig: 'getFormConfig',\r\n getReferenceDataConfigAndResponse: 'getReferenceDataConfigAndResponse',\r\n getApplicationConfigAndResponse: 'getApplicationConfigAndResponse',\r\n getOrganisationConfigAndResponse: 'getOrganisationConfigAndResponse',\r\n getApplicationDashboardConfigAndResponse: 'getApplicationDashboardConfigAndResponse',\r\n getEnvironmentDefinitionConfigAndResponse: 'getEnvironmentDefinitionConfigAndResponse',\r\n getReviewDefinitionConfigAndResponse: 'getReviewDefinitionConfigAndResponse',\r\n getReviewDecisionsAdminModeConfigAndResponse: 'getReviewDecisionsAdminModeConfigAndResponse',\r\n getGlobalSetupConfigAndResponse: 'getGlobalSetupConfigAndResponse',\r\n getApplicationUserEmptyConfigAndResponse: 'getApplicationUserEmptyConfigAndResponse',\r\n getApplicationUserConfigAndResponse: 'getApplicationUserConfigAndResponse',\r\n getMyAppsConfigAndResponse: 'getMyAppsConfigAndResponse',\r\n getUserRegistrationConfigAndResponse: 'getUserRegistrationConfigAndResponse',\r\n getApplicationUserDraftConfigAndResponse: 'getApplicationUserDraftConfigAndResponse',\r\n getMyAppsDraftConfigAndResponse: 'getMyAppsDraftConfigAndResponse',\r\n getUserRegistrationDraftConfigAndResponse: 'getUserRegistrationDraftConfigAndResponse',\r\n getUserLegacyProfileSetupConfigAndResponse: 'getUserLegacyProfileSetupConfigAndResponse',\r\n getUserLegacyProfileSetupResetConfigAndResponse: 'getUserLegacyProfileSetupResetConfigAndResponse'\r\n}\r\n\r\nexport const ApiEndpoints = {\r\n authentication: {\r\n signIn: '/SignIn'\r\n },\r\n configuration: {\r\n default: 'FormConfiguration/GetConfiguration'\r\n },\r\n help: {\r\n downloadUserGuide: 'Help/DownloadUserGuide',\r\n downloadUserGuideAnonymous: 'Help/DownloadUserGuideAnonymous'\r\n },\r\n address: {\r\n search: 'Address/Search',\r\n lga: 'Address/Lga'\r\n },\r\n users: {\r\n getLoggedInUser: 'User/GetLoggedInUser'\r\n },\r\n pbi: {\r\n embedInfo: '/PowerBI/EmbedInfo'\r\n },\r\n dashboard: {\r\n getApplicationUsers: 'Dashboard/GetApplicationUsers',\r\n getUserRequests: 'Dashboard/GetUserRequests',\r\n getUserAccessRequestsForApproval: 'Dashboard/GetUserAccessRequestsForApproval',\r\n getReferenceDataCategories: 'Dashboard/GetReferenceDataCategories',\r\n getOrganisations: 'Dashboard/GetOrganisations',\r\n getApplications: 'Dashboard/GetApplications',\r\n getApplicationEnvironments: 'Dashboard/GetApplicationEnvironments',\r\n getReviewDefinitions: 'Dashboard/GetReviewDefinitions',\r\n getReviewDecisions: 'Dashboard/GetReviewDecisions',\r\n getReviewDecisionsAdminMode: 'Dashboard/GetReviewDecisionsAdminMode'\r\n },\r\n directorySearch: {\r\n searchAzureAdUserLimited: 'DirectorySearch/searchAzureAdUserLimited',\r\n searchAzureAdUser: 'DirectorySearch/SearchAzureAdUser',\r\n searchAzureAdGroup: 'DirectorySearch/SearchAzureAdGroup',\r\n searchAzureAdDomain: 'DirectorySearch/SearchAzureAdDomain',\r\n searchLdapProtocolUserLimited: 'DirectorySearch/SearchLdapProtocolUserLimited',\r\n searchLdapProtocolUser: 'DirectorySearch/SearchLdapProtocolUser',\r\n searchLdapProtocolGroup: 'DirectorySearch/SearchLdapProtocolGroup',\r\n searchLdapProtocolOrganisation: 'DirectorySearch/SearchLdapProtocolOrganisation',\r\n searchLdapProtocolApplication: 'DirectorySearch/SearchLdapProtocolApplication',\r\n searchLdapScimUser: 'DirectorySearch/SearchLdapScimUser',\r\n searchLdapScimGroup: 'DirectorySearch/SearchLdapScimGroup'\r\n },\r\n applicationUser: {\r\n getEmptyConfigAndResponse: 'ApplicationUser/GetEmptyResponseAndConfig',\r\n getConfigAndResponse: 'ApplicationUser/GetResponseAndConfig',\r\n getMyAppsConfigAndResponse: 'ApplicationUser/GetMyAppsResponseAndConfig',\r\n getRegistrationConfigAndResponse: 'ApplicationUser/GetUserRegistrationResponseAndConfig',\r\n getDraftConfigAndResponse: 'ApplicationUser/GetDraftResponseAndConfig',\r\n getMyAppsDraftConfigAndResponse: 'ApplicationUser/GetMyAppsDraftResponseAndConfig',\r\n getRegistrationDraftConfigAndResponse: 'ApplicationUser/GetUserRegistrationDraftResponseAndConfig',\r\n getMyAppsUserRequestDetails: 'ApplicationUser/GetMyAppsUserRequestDetails',\r\n getInternalUserProfile: 'ApplicationUser/GetInternalUserProfile',\r\n withdrawMyAppsUserRequest: 'ApplicationUser/WithdrawMyAppsUserRequest',\r\n purge: 'ApplicationUser/Purge',\r\n sync: 'ApplicationUser/Sync',\r\n changeUserOrganisation: 'ApplicationUser/ChangeUserOrganisation',\r\n changeUserOrganisationAnonymous: 'ApplicationUser/ChangeUserOrganisationAnonymous',\r\n save: 'ApplicationUser/Save',\r\n saveAnonymous: 'ApplicationUser/SaveAnonymous',\r\n verifyUserRegistration: 'ApplicationUser/VerifyUserRegistration',\r\n sendInvitation: 'ApplicationUser/SendMicrosoftInvitation',\r\n validateEmails: 'ApplicationUser/ValidateEmails',\r\n exportToDataTables: 'ApplicationUser/ExportToDataTables',\r\n exportToDataTablesFromEmailList: 'ApplicationUser/ExportToDataTablesFromEmailList',\r\n exportToDataTablesImportCompatible: 'ApplicationUser/ExportToDataTablesImportCompatible',\r\n importFromDataTables: 'ApplicationUser/ImportFromDataTables',\r\n purgeFromDataTables: 'ApplicationUser/PurgeFromDataTables',\r\n syncFromDataTables: 'ApplicationUser/SyncFromDataTables'\r\n },\r\n userLegacyProfileSetup: {\r\n getConfigAndResponse: 'UserLegacyProfileSetup/GetResponseAndConfig',\r\n getResetConfigAndResponse: 'UserLegacyProfileSetup/GetResetResponseAndConfig',\r\n save: 'UserLegacyProfileSetup/Save',\r\n },\r\n userRequest: {\r\n getDetails: 'ApplicationUser/GetUserRequestDetails',\r\n withdraw: 'ApplicationUser/WithdrawUserRequest',\r\n sendInvitations: 'ApplicationUser/SendUserRequestInvitations',\r\n retry: 'ApplicationUser/RetryUserRequests',\r\n repair: 'ApplicationUser/RepairUserRequests',\r\n exportToDataTables: 'ApplicationUser/ExportToDataTablesUserRequests'\r\n },\r\n approval: {\r\n approve: 'ApplicationUser/ApproveAccessRequests',\r\n reject: 'ApplicationUser/RejectAccessRequests',\r\n exportToDataTables: 'ApplicationUser/ExportToDataTablesPendingApprovals',\r\n },\r\n reviewDecision: {\r\n getAdminModeConfigAndResponse: 'ReviewDecision/GetAdminModeResponseAndConfig',\r\n getDetails: 'ReviewDecision/GetReviewDecisionDetails',\r\n getDetailsAdminMode: 'ReviewDecision/GetReviewDecisionDetailsAdminMode',\r\n approve: 'ReviewDecision/ApproveReviewDecisions',\r\n deny: 'ReviewDecision/DenyReviewDecisions',\r\n exportToDataTables: 'ReviewDecision/ExportToDataTables',\r\n exportToDataTablesAdminMode: 'ReviewDecision/ExportToDataTablesAdminMode'\r\n },\r\n referenceData: {\r\n getConfigAndResponse: 'ReferenceData/GetResponseAndConfig',\r\n save: 'ReferenceData/Save',\r\n exportToDataTables: 'ReferenceData/ExportToDataTables',\r\n importFromDataTables: 'ReferenceData/ImportFromDataTables'\r\n },\r\n organisation: {\r\n getConfigAndResponse: 'Organisation/GetResponseAndConfig',\r\n save: 'Organisation/Save',\r\n exportToDataTables: 'Organisation/ExportToDataTables',\r\n importFromDataTables: 'Organisation/ImportFromDataTables'\r\n },\r\n application: {\r\n getConfigAndResponse: 'Application/GetResponseAndConfig',\r\n save: 'Application/Save',\r\n exportToDataTables: 'Application/ExportToDataTables',\r\n importFromDataTables: 'Application/ImportFromDataTables'\r\n },\r\n applicationDashboard: {\r\n getConfigAndResponse: 'Dashboard/ApplicationDashboardGetResponseAndConfig'\r\n },\r\n applicationEnvironment: {\r\n getConfigAndResponse: 'EnvironmentDefinition/GetResponseAndConfig',\r\n exportToDataTables: 'EnvironmentDefinition/ExportToDataTables',\r\n importFromDataTables: 'EnvironmentDefinition/ImportFromDataTables',\r\n save: 'EnvironmentDefinition/Save'\r\n },\r\n reviewDefinition: {\r\n getConfigAndResponse: 'ReviewDefinition/GetResponseAndConfig',\r\n save: 'ReviewDefinition/Save',\r\n exportToDataTablesImportCompatible: 'ReviewDefinition/ExportToDataTablesImportCompatible',\r\n exportToDataTables: 'ReviewDefinition/ExportToDataTables',\r\n importFromDataTables: 'ReviewDefinition/ImportFromDataTables'\r\n },\r\n globalSetup: {\r\n getGlobalSettings: 'GlobalSetup/GetGlobalSettings',\r\n getConfigAndResponse: 'GlobalSetup/GetResponseAndConfig',\r\n save: 'GlobalSetup/Save'\r\n }\r\n}\r\n","import { Dialogs } from \"dspx-core\";\r\n\r\nimport { ReviewDecisionResult } from \"./review-decision-result\";\r\n\r\nimport { PageActionButtonPath } from \"../services/html-helper.service\";\r\n\r\n// This is used to open a dialog from the callback of another dialog being closed.\r\n// Unfortunately there is no reliable way to wait for the dialog to close.\r\nexport const MinWaitForDialogToCloseMs = 200;\r\n\r\n// This is the debounce time when performing changes in the UI that would require a server-side call,\r\n// so that unnecessary and annoying calls to the server are avoided when making multiple UI changes in quick succession.\r\n// For example, when changing the content of a textbox triggers a server call, we don't want to call the server immediately on every change.\r\n// NOTE: less than 510ms is dangerous because it might result in multiple calls being made when the users holds a key on the keyboard.\r\nexport const ServerCallDebounceTimeMs = 600;\r\n\r\nexport const VictorianGovernment = {\r\n title: 'State Government of Victoria, Australia',\r\n logo: '/assets/images/sgv-logo.png',\r\n url: 'https://www.vic.gov.au/'\r\n};\r\n\r\nexport const DepartmentOfHealth = {\r\n title: 'Department of Health',\r\n url: 'https://www.health.vic.gov.au/'\r\n}\r\n\r\nexport const DepartmentOfFamiliesFairnessAndHousing = {\r\n title: 'Department of Families, Fairness and Housing',\r\n url: 'https://www.dffh.vic.gov.au/'\r\n}\r\n\r\nexport const UserAvatar = {\r\n source: '/assets/images/avatar.png'\r\n};\r\n\r\nexport const AppDataKeys = {\r\n previousModel: 'previousModel',\r\n userProfile: 'userProfile',\r\n globalSettings: 'globalSettings',\r\n getPopupRegistryFunction: 'getPopupRegistryFunction',\r\n\r\n // Server-side app settings\r\n applicationTitle: 'applicationTitle',\r\n applicationUrl: 'applicationUrl',\r\n environmentName: 'environmentName',\r\n environmentBannerBgColor: 'environmentBannerBgColor',\r\n environmentBannerColor: 'environmentBannerColor',\r\n maxGridRowCount: 'maxGridRowCount',\r\n maxBulkOperationItemCount: 'maxBulkOperationItemCount',\r\n googleRecaptchaSiteKey: 'googleRecaptchaSiteKey',\r\n userTermsAndConditions: 'userTermsAndConditions',\r\n onBehalfOfTermsAndConditions: 'onBehalfOfTermsAndConditions',\r\n ldapNotFederatedAccountSignInUrl: 'ldapNotFederatedAccountSignInUrl',\r\n ldapNotFederatedAccountResetUrl: 'ldapNotFederatedAccountResetUrl',\r\n ldapLegacyUserOnboardingPortalName: 'ldapLegacyUserOnboardingPortalName',\r\n privateIndividualOrganisationId: 'privateIndividualOrganisationId',\r\n fileDownloadMetadataHeaderName: 'fileDownloadMetadataHeaderName',\r\n technicalSupportEmail: 'technicalSupportEmail'\r\n};\r\n\r\nexport const AppSelector = 'app-root';\r\n\r\nexport const HeaderSelector = 'dspx-card-set-header';\r\nexport const HeaderMenuToggleSelector = '#topbar-left-menu-button';\r\n\r\nexport const ComponentDialogSelector = 'dspx-dialog';\r\n\r\nexport const CustomStatusBarSelector = '.custom-status-bar';\r\n\r\nexport const ComponentSelectors = {\r\n UserListForm: {\r\n UserList: 'duop-user-list'\r\n },\r\n UserForm: {\r\n User: 'duop-application-user',\r\n UserRegistration: 'duop-application-user-registration',\r\n MyApps: 'duop-my-apps'\r\n },\r\n UserVerificationForm: {\r\n UserVerification: 'duop-application-user-verification'\r\n },\r\n UserLegacyProfileSetupForm: {\r\n UserLegacyProfileSetup: 'duop-user-legacy-profile-setup'\r\n },\r\n UserRequestListForm: {\r\n UserRequestList: 'duop-user-request-list'\r\n },\r\n ApprovalListForm: {\r\n ApprovalList: 'duop-approval-list'\r\n },\r\n ReviewListForm: {\r\n ReviewList: 'duop-review-list'\r\n },\r\n ApplicationListForm: {\r\n ApplicationList: 'duop-application-list'\r\n },\r\n ApplicationDashboardForm: {\r\n ApplicationDashboard: 'duop-application-dashboard'\r\n },\r\n ApplicationForm: {\r\n Application: 'duop-application'\r\n },\r\n ApplicationEnvironmentForm: {\r\n ApplicationEnvironment: 'duop-application-environment'\r\n },\r\n OrganisationListForm: {\r\n OrganisationList: 'duop-organisation-list'\r\n },\r\n OrganisationForm: {\r\n Organisation: 'duop-organisation'\r\n },\r\n ReferenceDataListForm: {\r\n ReferenceDataList: 'duop-reference-data-list'\r\n },\r\n ReferenceDataForm: {\r\n ReferenceData: 'duop-reference-data'\r\n },\r\n ReviewDefinitionListForm: {\r\n ReviewDefinitionList: 'duop-review-definition-list'\r\n },\r\n ReviewDefinitionForm: {\r\n ReviewDefinition: 'duop-review-definition'\r\n },\r\n GlobalSetupForm: {\r\n GlobalSetup: 'duop-global-setup'\r\n },\r\n Other: {\r\n Landing: 'duop-landing',\r\n Help: 'duop-help',\r\n InformationBanner: 'duop-information-banner',\r\n UserTermsAndConditions: 'duop-user-terms-and-conditions',\r\n OnBehalfOfTermsAndConditions: 'duop-on-behalf-of-terms-and-conditions'\r\n }\r\n};\r\n\r\nexport const DashboardNames = {\r\n UserList: 'UserList',\r\n UserRequestList: 'UserRequestList',\r\n ApprovalList: 'ApprovalList',\r\n ReviewList: 'ReviewList',\r\n ReferenceDataList: 'ReferenceDataList',\r\n OrganisationList: 'OrganisationList',\r\n ApplicationList: 'ApplicationList',\r\n ReviewDefinitionList: 'ReviewDefinitionList',\r\n ReviewListAdminMode: 'ReviewListAdminMode'\r\n};\r\n\r\nexport const FormActions = {\r\n UserListForm: {\r\n View: 'customView',\r\n Edit: 'customEdit',\r\n Purge: 'purge',\r\n Sync: 'sync',\r\n Custom: 'custom'\r\n },\r\n UserForm: {\r\n Details: 'details',\r\n Withdraw: 'withdraw'\r\n },\r\n UserRequestListForm: {\r\n Details: 'details',\r\n Custom: 'custom'\r\n },\r\n ApprovalListForm: {\r\n Details: 'details',\r\n Custom: 'custom'\r\n },\r\n ReviewListForm: {\r\n Details: 'details',\r\n Custom: 'custom'\r\n },\r\n ApplicationListForm: {\r\n View: 'customView',\r\n Edit: 'customEdit',\r\n ManageEnvironments: 'manageEnvironments',\r\n Custom: 'custom'\r\n },\r\n ApplicationDashboardForm: {\r\n View: 'customView',\r\n Edit: 'customEdit',\r\n Export: 'export',\r\n Import: 'import'\r\n },\r\n OrganisationListForm: {\r\n View: 'customView',\r\n Edit: 'customEdit',\r\n Custom: 'custom'\r\n },\r\n ReferenceDataListForm: {\r\n View: 'customView',\r\n Edit: 'customEdit',\r\n Custom: 'custom'\r\n },\r\n ReviewDefinitionListForm: {\r\n View: 'customView',\r\n Edit: 'customEdit',\r\n Custom: 'custom'\r\n },\r\n ReviewDefinitionForm: {\r\n View: 'customView'\r\n }\r\n};\r\n\r\nexport const FormCustomActions = {\r\n UserListForm: {\r\n Add: 'customAdd',\r\n LimitedDirectoryLookup: 'limitedDirectoryLookup',\r\n DirectoryLookup: 'directoryLookup',\r\n SendInvitation: 'sendInvitation',\r\n BulkExportChooseType: 'bulkExportChooseType',\r\n BulkExport: 'bulkExport',\r\n BulkImport: 'bulkImport',\r\n BulkPurge: 'bulkPurge',\r\n BulkSync: 'bulkSync'\r\n },\r\n UserRequestListForm: {\r\n SendInvitations: 'sendInvitations',\r\n Retry: 'retry',\r\n Repair: 'repair',\r\n BulkExport: 'bulkExport'\r\n },\r\n ApprovalListForm: {\r\n Approve: 'approve',\r\n Reject: 'reject',\r\n BulkExport: 'bulkExport'\r\n },\r\n ReviewListForm: {\r\n Approve: 'approve',\r\n Deny: 'deny',\r\n Purge: 'purge',\r\n BulkExport: 'bulkExport'\r\n },\r\n ApplicationListForm: {\r\n Add: 'customAdd',\r\n BulkExport: 'bulkExport',\r\n BulkImport: 'bulkImport'\r\n },\r\n OrganisationListForm: {\r\n Add: 'customAdd',\r\n BulkExport: 'bulkExport',\r\n BulkImport: 'bulkImport'\r\n },\r\n ReferenceDataListForm: {\r\n Add: 'customAdd',\r\n BulkExport: 'bulkExport',\r\n BulkImport: 'bulkImport'\r\n },\r\n ReviewDefinitionListForm: {\r\n Add: 'customAdd',\r\n BulkExportChooseType: 'bulkExportChooseType',\r\n BulkExport: 'bulkExport',\r\n BulkImport: 'bulkImport'\r\n }\r\n};\r\n\r\nexport const OptionSetCodes = {\r\n UserListForm: {\r\n LimitedDirectoryLookupType: {\r\n AzureAdUser: 'azureaduser',\r\n LdapUser: 'ldapuser'\r\n },\r\n LookupDirectoryName: {\r\n AzureAd: 'azuread',\r\n LdapProtocol: 'ldapprotocol',\r\n LdapScim: 'ldapscim'\r\n },\r\n LdapProtocolLookupType: {\r\n ProtocolUser: 'protocoluser',\r\n ProtocolGroup: 'protocolgroup',\r\n ProtocolOrganisation: 'protocolorganisation',\r\n ProtocolApplication: 'protocolapplication'\r\n },\r\n LdapScimLookupType: {\r\n ScimUser: 'scimuser',\r\n ScimUserAndGroups: 'scimuserandgroups',\r\n ScimGroup: 'scimgroup'\r\n },\r\n AzureAdLookupType: {\r\n User: 'user',\r\n Group: 'group',\r\n Domain: 'domain'\r\n },\r\n BulkExportType: {\r\n Standard: 'standard',\r\n StandardFromEmailList : 'standardfromemaillist',\r\n ImportCompatible: 'importcompatible'\r\n },\r\n DeleteType: {\r\n DbOnly: 'dbonly',\r\n DbAndAzureAd: 'dbandazuread'\r\n }\r\n },\r\n UserForm: {\r\n YesNo: {\r\n Yes: 'yes',\r\n No: 'no'\r\n },\r\n Environment: {\r\n OptionSetCode: 'environment'\r\n },\r\n Role: {\r\n OptionSetCode: 'role'\r\n }\r\n },\r\n ReviewListForm: {\r\n ReviewFilterActive: {\r\n Yes: 'yes',\r\n No: 'no'\r\n }\r\n },\r\n ApplicationListForm: {\r\n ApplicationFilterActive: {\r\n Yes: 'yes',\r\n No: 'no'\r\n }\r\n },\r\n OrganisationListForm: {\r\n OrganisationFilterActive: {\r\n Yes: 'yes',\r\n No: 'no'\r\n }\r\n },\r\n ReferenceDataListForm: {\r\n ReferenceDataFilterActive: {\r\n Yes: 'yes',\r\n No: 'no'\r\n }\r\n },\r\n ReviewDefinitionListForm: {\r\n ReviewDefinitionFilterActive: {\r\n Yes: 'yes',\r\n No: 'no'\r\n },\r\n BulkExportType: {\r\n Standard: \"standard\",\r\n ImportCompatible: \"importcompatible\"\r\n }\r\n }\r\n};\r\n\r\nexport const OptionSetValues = {\r\n ReviewDefinitionForm: {\r\n YesNo: {\r\n Yes: 'Yes',\r\n No: 'No'\r\n }\r\n }\r\n};\r\n\r\nexport const PopupCodes = {\r\n Common: {\r\n ClientError: Dialogs.CLIENT_ERROR,\r\n ServerError: Dialogs.SERVER_ERROR,\r\n ValidationError: Dialogs.VALIDATION\r\n },\r\n UserListForm: {\r\n PurgeUserConfirmation: 'purgeUserConfirmation',\r\n PurgeUserSuccess: 'purgeUserSuccess',\r\n PurgeUserError: 'purgeUserError', // NOTE: this is used as prefix for the PurgeUserErrorCode enum values\r\n SyncUserConfirmation: 'syncUserConfirmation',\r\n SyncUserSuccess: 'syncUserSuccess',\r\n SyncUserError: 'syncUserError', // NOTE: this is used as prefix for the SyncUserErrorCode enum values\r\n LimitedDirectoryLookup: 'limitedDirectoryLookup',\r\n DirectoryLookup: 'directoryLookup',\r\n DirectoryLookupResult: 'directoryLookupResult',\r\n LdapProtocolLookup: 'ldapProtocolLookup',\r\n LdapScimLookup: 'ldapScimLookup',\r\n AzureAdLookup: 'azureAdLookup',\r\n UserSendInvitation: 'userSendInvitation',\r\n BulkExportChoice: 'bulkExportChoice',\r\n UserTabSendInvitationSuccessful: 'userTabSendInvitationSuccessful',\r\n UserTabSendInvitationFailed: 'userTabSendInvitationFailed'\r\n },\r\n UserForm: {\r\n WithdrawUserRequestConfirmation: 'withdrawUserRequestConfirmation',\r\n RevokeUserRequestConfirmation: 'revokeUserRequestConfirmation',\r\n CannotChangeOrganisation: 'cannotChangeOrganisation',\r\n DuplicateUserAccessDefinition: 'duplicateUserAccessDefinition',\r\n NoUserAccessDefinitions: 'noUserAccessDefinitions',\r\n SaveSuccessful: 'saveSuccessful',\r\n SaveSuccessfulRegistration: 'saveSuccessfulRegistration',\r\n SaveSuccessfulMyApps: 'saveSuccessfulMyApps'\r\n },\r\n UserVerificationForm: {\r\n VerificationCompleted: 'verificationCompleted'\r\n },\r\n UserLegacyProfileSetupForm: {\r\n SaveSuccessful: 'saveSuccessful'\r\n },\r\n UserRequestListForm: {\r\n BulkOperationNoItems: 'bulkOperationNoItems',\r\n BulkOperationTooManyItems: 'bulkOperationTooManyItems',\r\n BulkOperationCompleted: 'bulkOperationCompleted',\r\n BulkOperationConfirmSendInvitations: 'bulkOperationConfirmSendInvitations',\r\n BulkOperationConfirmRetry: 'bulkOperationConfirmRetry',\r\n BulkOperationConfirmRepair: 'bulkOperationConfirmRepair'\r\n },\r\n ApprovalListForm: {\r\n ApprovalsNoneSelected: 'approvalsNoneSelected',\r\n ApprovalsTooManyItems: 'approvalsTooManyItems',\r\n ApprovalsApprovalConfirmation: 'approvalsApprovalConfirmation',\r\n ApprovalsRejectionConfirmation: 'approvalsRejectionConfirmation',\r\n ApprovalsApprovalCompleted: 'approvalsApprovalCompleted',\r\n ApprovalsRejectionCompleted: 'approvalsRejectionCompleted'\r\n },\r\n ReviewListForm: {\r\n ReviewNoneSelected: 'reviewNoneSelected',\r\n ReviewTooManyItems: 'reviewTooManyItems',\r\n ReviewApprovalConfirmation: 'reviewApprovalConfirmation',\r\n ReviewDenialConfirmation: 'reviewDenialConfirmation',\r\n ReviewApprovalCompleted: 'reviewApprovalCompleted',\r\n ReviewDenialCompleted: 'reviewDenialCompleted',\r\n ReviewPurgeInformation: 'reviewPurgeInformation'\r\n },\r\n ReviewDefinitionListForm: {\r\n BulkExportChoice: 'bulkExportChoice'\r\n },\r\n ApplicationForm: {\r\n SaveSuccessful: 'saveSuccessful'\r\n },\r\n ApplicationEnvironmentForm: {\r\n SaveSuccessful: 'saveSuccessful'\r\n },\r\n OrganisationForm: {\r\n SaveSuccessful: 'saveSuccessful'\r\n },\r\n ReferenceDataForm: {\r\n SaveSuccessful: 'saveSuccessful'\r\n },\r\n ReviewDefinitionForm: {\r\n SaveSuccessful: 'saveSuccessful'\r\n },\r\n GlobalSetupForm: {\r\n SaveSuccessful: 'saveSuccessful'\r\n }\r\n};\r\n\r\nexport const PopupCodeButtonTitles = {\r\n UserListForm: {\r\n DirectoryLookup: {\r\n Accept: 'Confirm',\r\n Reject: 'Close'\r\n }\r\n }\r\n};\r\n\r\nexport const ServerErrorPopupCodes = {\r\n SaveUserLegacyProfile: [\r\n 'duplicateSecretQuestion',\r\n 'userLegacyProfileSetupNotRequired',\r\n 'userLegacyProfileSetupNotAllowed',\r\n 'noUserFoundInAuthenticationSystem',\r\n 'noUserFoundInLegacyAuthenticationSystem',\r\n 'multipleUsersFoundInLegacyAuthenticationSystem',\r\n 'unexpectedErrorWhileCheckingUserProfile'\r\n ],\r\n SaveUser: [\r\n 'userConditionsAgreeNotSet',\r\n 'duplicateProfile',\r\n 'duplicateProfileByOtherEmail',\r\n PopupCodes.UserForm.DuplicateUserAccessDefinition,\r\n PopupCodes.UserForm.NoUserAccessDefinitions,\r\n 'unallowedOrganisationUpdate',\r\n 'unallowedFunctionalRoleForOrganisation',\r\n 'unallowedRevokeRequestOfOrganisationAuthorityRoles',\r\n 'unallowedRevokeRequestOfOrganisationSupportRoles',\r\n 'unallowedRevokeRequestOfApplicationAdministratorRoles',\r\n 'unallowedRevokeRequestOfApplicationSupportRoles'\r\n ],\r\n SaveApplication: [\r\n 'duplicateCode',\r\n 'duplicateName',\r\n 'duplicateEnvironment',\r\n 'activeEnvironmentDefinitionsFound',\r\n 'unallowedChangeToAuthenticationType',\r\n 'duplicateFunctionalRoleCode',\r\n 'duplicateFunctionalRoleName',\r\n 'cannotDisableFunctionalRoleReferenceDataDueToExistingFunctionalRole',\r\n 'cannotDisableFunctionalRoleReferenceDataDueToExistingReviewDefinitionFunctionalRole',\r\n 'cannotRemoveFunctionalRoleReferenceDataDueToExistingFunctionalRole',\r\n 'cannotRemoveFunctionalRoleReferenceDataDueToExistingReviewDefinitionFunctionalRole',\r\n 'duplicateReview',\r\n 'invalidReviewEnvironment'\r\n ],\r\n SaveApplicationEnvironment: [\r\n 'duplicateRole',\r\n 'duplicateOrganisation',\r\n 'unallowedOrganisation',\r\n 'skipOrganisationApprovalNotSet',\r\n 'duplicateAadGroup',\r\n 'unexpectedLdapGroup',\r\n 'duplicateLdapGroup',\r\n 'duplicateApiCallback',\r\n 'unexpectedApisForIdamApplication',\r\n 'duplicateApplicationAdministrator',\r\n 'duplicateApplicationEscalationAdministrator',\r\n 'duplicateApplicationSupport',\r\n 'duplicateAdministratorSupport',\r\n 'invalidApplicationAdministrator',\r\n 'invalidApplicationEscalationAdministrator',\r\n 'invalidApplicationSupport',\r\n 'invalidEnvironment',\r\n 'invalidRole',\r\n 'foundUsersFromUnallowedOrganisationsWithCurrentAccess',\r\n 'foundUsersFromUnallowedOrganisationsWithInProgressAccess',\r\n 'cannotDeleteRolesAssignedToUsers',\r\n 'cannotDeleteRolesAboutToBeAssignedToUsers',\r\n 'cannotModifyAadGroupsOfRolesAssignedToUsers',\r\n 'cannotModifyAadGroupsOfRolesAboutToBeAssignedToUsers',\r\n 'cannotModifyLdapGroupsOfRolesAssignedToUsers',\r\n 'cannotModifyLdapGroupsOfRolesAboutToBeAssignedToUsers',\r\n 'duplicateEmailTemplateType',\r\n 'emailTemplateWithEmptySubjectAndBody',\r\n 'emailTemplateWithDangerousHtml'\r\n ],\r\n SaveOrganisation: [\r\n 'duplicateCode',\r\n 'duplicateName',\r\n 'duplicateOrganisationAuthority',\r\n 'duplicateOrganisationEscalationAuthority',\r\n 'multipleOrganisationRoles',\r\n 'duplicateOrganisationSupport',\r\n 'invalidOrganisationAuthority',\r\n 'invalidOrganisationEscalationAuthority',\r\n 'invalidOrganisationSupport',\r\n 'notAccessible',\r\n 'duplicateSubOrganisationCode',\r\n 'duplicateSubOrganisationName',\r\n 'duplicateSubOrganisationAuthority',\r\n 'duplicateSubOrganisationEscalationAuthority',\r\n 'multipleSubOrganisationRoles',\r\n 'duplicateSubOrganisationSupport',\r\n 'invalidSubOrganisationAuthority',\r\n 'invalidSubOrganisationEscalationAuthority',\r\n 'invalidSubOrganisationSupport',\r\n 'cannotDisableSubOrganisationBecauseItHasInProgressAccessRequests',\r\n 'cannotRemoveSubOrganisationBecauseItHasAccessRequests',\r\n 'unallowedUpdateOfLdapOrganisationIdForOrganisation',\r\n 'unallowedUpdateOfLdapOrganisationIdForSubOrganisation',\r\n 'duplicateOrganisationExternalCodeType',\r\n 'duplicateOrganisationExternalCodeValue',\r\n 'unallowedChangesToOrganisationExternalCodes',\r\n 'duplicateReview',\r\n 'unallowedChangesToReviews'\r\n ],\r\n SaveReferenceData: [\r\n 'duplicateCategoryCode',\r\n 'duplicateCategoryValue',\r\n 'duplicateCode',\r\n 'duplicateValue',\r\n 'deletedValues',\r\n 'categoryDeactivationNotAllowed'\r\n ],\r\n SaveReviewDefinition: [\r\n 'invalidStartDate',\r\n 'duplicateCode',\r\n 'duplicateName',\r\n 'notAccessible',\r\n 'allReviewOccurrencesAreInThePast'\r\n ],\r\n SaveGlobalSetup: [\r\n 'informationBannerInvalidStartTime',\r\n 'informationBannerInvalidEndTime',\r\n 'informationBannerInvalidPeriod'\r\n ]\r\n}\r\n\r\nexport const NavTabNumbers = {\r\n UserListForm: {\r\n users: 1\r\n },\r\n UserForm: {\r\n formNavigation: 1,\r\n userProfile: 2,\r\n applicationAccess: 3,\r\n userRequests: 4,\r\n formNavigationBottom: 9\r\n },\r\n UserVerificationForm: {\r\n formNavigationBottom: 2\r\n },\r\n UserLegacyProfileSetupForm: {\r\n formNavigation: 1,\r\n formNavigationBottom: 3\r\n },\r\n UserRequestListForm: {\r\n userRequests: 1\r\n },\r\n ApprovalListForm: {\r\n approvals: 1\r\n },\r\n ReviewListForm: {\r\n formNavigation: 1,\r\n reviews: 2,\r\n formNavigationBottom: 3\r\n },\r\n ApplicationListForm: {\r\n applications: 1\r\n },\r\n ApplicationDashboardForm: {\r\n formNavigation: 1,\r\n environments: 2,\r\n formNavigationBottom: 3\r\n },\r\n ApplicationForm: {\r\n formNavigation: 1,\r\n applicationProfile: 2,\r\n functionalRoles: 3,\r\n reviewDefinitions: 4,\r\n formNavigationBottom: 5\r\n },\r\n ApplicationEnvironmentForm: {\r\n formNavigation: 1,\r\n environment: 2,\r\n environmentCustomOrganisationApproval: 3,\r\n role: 4,\r\n formNavigationBottom: 5\r\n },\r\n OrganisationListForm: {\r\n organisations: 1\r\n },\r\n OrganisationForm: {\r\n formNavigation: 1,\r\n organisationDetails: 2,\r\n subOrganisations: 3,\r\n organisationExternalCodes: 4,\r\n reviewDefinitions: 5,\r\n formNavigationBottom: 7\r\n },\r\n ReferenceDataListForm: {\r\n referenceData: 1\r\n },\r\n ReferenceDataForm: {\r\n formNavigation: 1,\r\n refDataCategory: 2,\r\n refDataValue: 3,\r\n formNavigationBottom: 4\r\n },\r\n ReviewDefinitionListForm: {\r\n reviewDefinitions: 1\r\n },\r\n ReviewDefinitionForm: {\r\n formNavigation: 1,\r\n reviewDefinitionDetails: 2,\r\n formNavigationBottom: 4\r\n },\r\n GlobalSetupForm: {\r\n formNavigation: 1,\r\n userGuides: 3,\r\n formNavigationBottom: 4\r\n }\r\n};\r\n\r\nexport const PageNumbers = {\r\n UserListForm: {\r\n users: 1\r\n },\r\n UserForm: {\r\n formNavigation: 1,\r\n profile: 1,\r\n applicationAccess: 1,\r\n userRequests: 1,\r\n formNavigationBottom: 1\r\n },\r\n UserVerificationForm: {\r\n formNavigationBottom: 1\r\n },\r\n UserLegacyProfileSetupForm: {\r\n formNavigation: 1,\r\n formNavigationBottom: 1\r\n },\r\n UserRequestListForm: {\r\n userRequests: 1\r\n },\r\n ApprovalListForm: {\r\n approvals: 1\r\n },\r\n ReviewListForm: {\r\n formNavigation: 1,\r\n reviews: 1,\r\n formNavigationBottom: 1\r\n },\r\n ApplicationListForm: {\r\n applications: 1\r\n },\r\n ApplicationDashboardForm: {\r\n formNavigation: 1,\r\n environments: 1,\r\n formNavigationBottom: 1\r\n },\r\n ApplicationForm: {\r\n formNavigation: 1,\r\n applicationProfile: 1,\r\n functionalRoles: 1,\r\n reviewDefinitions: 1,\r\n formNavigationBottom: 1\r\n },\r\n ApplicationEnvironmentForm: {\r\n formNavigation: 1,\r\n environment: 1,\r\n environmentCustomOrganisationApproval: 1,\r\n role: 1,\r\n formNavigationBottom: 1\r\n },\r\n OrganisationListForm: {\r\n organisations: 1\r\n },\r\n OrganisationForm: {\r\n formNavigation: 1,\r\n organisationDetails: 1,\r\n subOrganisations: 1,\r\n organisationExternalCodes: 1,\r\n reviewDefinitions: 1,\r\n formNavigationBottom: 1\r\n },\r\n ReferenceDataListForm: {\r\n referenceData: 1\r\n },\r\n ReferenceDataForm: {\r\n formNavigation: 1,\r\n refDataCategory: 1,\r\n refDataValue: 1,\r\n formNavigationBottom: 1\r\n },\r\n ReviewDefinitionListForm: {\r\n reviewDefinitions: 1\r\n },\r\n ReviewDefinitionForm: {\r\n formNavigation: 1,\r\n reviewDefinitionDetails: 1,\r\n formNavigationBottom: 1\r\n },\r\n GlobalSetupForm: {\r\n formNavigation: 1,\r\n userGuides: 1,\r\n formNavigationBottom: 1\r\n }\r\n};\r\n\r\nexport const SectionCodes = {\r\n UserListForm: {\r\n user: 'user'\r\n },\r\n UserForm: {\r\n viewUserProfile: 'viewUserProfile',\r\n userOrganisationProfile: 'userOrganisationProfile',\r\n userProfile: 'userProfile',\r\n conditionsOfUse: 'conditionsOfUse',\r\n applicationRef: 'applicationRef',\r\n revokedApplicationRef: 'revokedApplicationRef',\r\n userRequests: 'userRequests'\r\n },\r\n UserRequestListForm: {\r\n userRequests: 'request'\r\n },\r\n ApprovalListForm: {\r\n approvals: 'approval'\r\n },\r\n ReviewListForm: {\r\n reviews: 'review'\r\n },\r\n ApplicationListForm: {\r\n application: 'application'\r\n },\r\n ApplicationForm: {\r\n viewApplicationProfile: 'viewApplicationProfile',\r\n applicationProfile: 'applicationProfile',\r\n functionalRoles: 'functionalRoles',\r\n reviewDefinitions: 'reviewDefinitions'\r\n },\r\n ApplicationEnvironmentForm: {\r\n viewEnvironment: 'viewEnvironment',\r\n environment: 'environment',\r\n customOrganisationApproval: 'customOrganisationApproval',\r\n environmentCustomOrganisationApproval: 'environmentCustomOrganisationApproval'\r\n },\r\n OrganisationListForm: {\r\n organisation: 'organisation'\r\n },\r\n OrganisationForm: {\r\n viewOrganisationDetails: 'viewOrganisationDetails',\r\n organisationDetails: 'organisationDetails',\r\n subOrganisations: 'subOrganisations',\r\n organisationExternalCodes: 'organisationExternalCodes',\r\n reviewDefinitions: 'reviewDefinitions'\r\n },\r\n ReferenceDataListForm: {\r\n config: 'config'\r\n },\r\n ReferenceDataForm: {\r\n viewRefDataCategory: 'viewRefDataCategory',\r\n refDataCategory: 'refDataCategory',\r\n refDataValue: 'refDataValue'\r\n },\r\n ReviewDefinitionListForm: {\r\n reviewDefinition: 'reviewDefinition'\r\n },\r\n ReviewDefinitionForm: {\r\n viewReviewDefinitionDetails: 'viewReviewDefinitionDetails',\r\n reviewDefinitionDetails: 'reviewDefinitionDetails',\r\n reviewDefinitionSchedule: 'reviewDefinitionSchedule',\r\n reviewDefinitionSettings: 'reviewDefinitionSettings'\r\n },\r\n GlobalSetupForm: {\r\n userGuides: 'userGuides'\r\n }\r\n};\r\n\r\nexport const QuestionCodes = {\r\n UserListForm: {\r\n userPlaceholder: 'userPlaceholder',\r\n userSearch: 'userSearch',\r\n userFilter: 'userFilter'\r\n },\r\n UserForm: {\r\n userHasOrganisation: 'userHasOrganisation',\r\n userOrganisation: 'userOrganisation',\r\n userEmail: 'userEmail',\r\n userFamilyName: 'userFamilyName',\r\n userGivenName: 'userGivenName',\r\n userPreferredName: 'userPreferredName',\r\n userMiddleName: 'userMiddleName',\r\n userPhoneWork: 'userPhoneWork',\r\n userPhoneMobile: 'userPhoneMobile',\r\n userConditionsAgree: 'userConditionsAgree',\r\n envName: 'envName',\r\n roleName: 'roleName',\r\n applicationName: 'applicationName',\r\n userRequestGrid: 'userRequestGrid'\r\n },\r\n UserRequestListForm: {\r\n userRequestPlaceholder: 'requestPlaceholder',\r\n userRequestSearch: 'requestSearch',\r\n userRequestFilter: 'requestFilter'\r\n },\r\n ApprovalListForm: {\r\n approvalPlaceholder: 'approvalPlaceholder',\r\n approvalSearch: 'approvalSearch',\r\n approvalFilter: 'approvalFilter'\r\n },\r\n ReviewListForm: {\r\n reviewPlaceholder: 'reviewPlaceholder',\r\n reviewSearch: 'reviewSearch',\r\n reviewFilter: 'reviewFilter'\r\n },\r\n ApplicationListForm: {\r\n applicationPlaceholder: 'applicationPlaceholder',\r\n applicationSearch: 'applicationSearch',\r\n applicationFilter: 'applicationFilter'\r\n },\r\n ApplicationDashboardForm: {\r\n environmentPlaceholder: 'environmentPlaceholder'\r\n },\r\n ApplicationForm: {\r\n applicationName: 'applicationName',\r\n environments: 'environments',\r\n authenticationType: 'authenticationType',\r\n isActive: 'active'\r\n },\r\n ApplicationEnvironmentForm: {\r\n applicationName: 'applicationName',\r\n environmentName: 'environmentName',\r\n isActive: 'active',\r\n environmentAllowedOrganisations: 'environmentAllowedOrganisations',\r\n environmentSkipOrganisationApproval: 'environmentSkipOrganisationApproval',\r\n skipOrganisationApproval: 'skipOrganisationApproval'\r\n },\r\n OrganisationListForm: {\r\n organisationPlaceholder: 'organisationPlaceholder',\r\n organisationSearch: 'organisationSearch',\r\n organisationFilter: 'organisationFilter'\r\n },\r\n OrganisationForm: {\r\n name: 'name',\r\n organisationAuthority: 'orgAuthority',\r\n organisationEscalationAuthority: 'escalationOrgAuthority',\r\n isActive: 'active'\r\n },\r\n ReferenceDataListForm: {\r\n referenceDataPlaceholder: 'referenceDataPlaceholder',\r\n referenceDataSearch: 'referenceDataSearch',\r\n referenceDataFilter: 'referenceDataFilter'\r\n },\r\n ReferenceDataForm: {\r\n referenceCategoryText: 'categoryText',\r\n referenceCategoryIsActive: 'categoryStatus'\r\n },\r\n ReviewDefinitionListForm: {\r\n reviewDefinitionPlaceholder: 'reviewDefinitionPlaceholder',\r\n reviewDefinitionSearch: 'reviewDefinitionSearch',\r\n reviewDefinitionFilter: 'reviewDefinitionFilter'\r\n },\r\n ReviewDefinitionForm: {\r\n name: 'name',\r\n isActive: 'active',\r\n startDate: 'startDate',\r\n durationInDays: 'durationInDays',\r\n isRecurrent: 'isRecurrent',\r\n numberOfOccurrences: 'numberOfOccurrences',\r\n recurrencePeriodInMonths: 'recurrencePeriodInMonths',\r\n useAsPrivateIndividualUserReview: 'useAsPrivateIndividualUserReview',\r\n reviewOccurrenceHistoryGrid: 'reviewOccurrenceHistoryGrid'\r\n },\r\n GlobalSetupForm: {\r\n userGuidesForAnonymousUser: 'userGuidesForAnonymousUser',\r\n userGuidesForUser: 'userGuidesForUser',\r\n userGuidesForOrganisationSupport: 'userGuidesForOrganisationSupport',\r\n userGuidesForOrganisationAuthority: 'userGuidesForOrganisationAuthority',\r\n userGuidesForApplicationSupport: 'userGuidesForApplicationSupport',\r\n userGuidesForApplicationAdministrator: 'userGuidesForApplicationAdministrator',\r\n userGuidesForAdminReadOnly: 'userGuidesForAdminReadOnly',\r\n userGuidesForIdamReviewer: 'userGuidesForIdamReviewer',\r\n userGuidesForIdamOnboarder: 'userGuidesForIdamOnboarder',\r\n userGuidesForIdamApprover: 'userGuidesForIdamApprover',\r\n userGuidesForIdamAdministrator: 'userGuidesForIdamAdministrator'\r\n }\r\n};\r\n\r\nexport const FilterQuestionCodes = {\r\n UserListForm: {\r\n userFilterApplication: 'userFilterApplication',\r\n userFilterEnvironment: 'userFilterEnvironment',\r\n userFilterFunctionalRole: 'userFilterFunctionalRole',\r\n userFilterOrganisation: 'userFilterOrganisation',\r\n userFilterDisableApplicationAccessAutomatedEmails: 'userFilterDisableApplicationAccessAutomatedEmails'\r\n },\r\n UserRequestListForm: {\r\n requestFilterRequestStatusCategory: 'requestFilterRequestStatusCategory',\r\n requestFilterRequestType: 'requestFilterRequestType',\r\n requestFilterApplication: 'requestFilterApplication',\r\n requestFilterEnvironment: 'requestFilterEnvironment',\r\n requestFilterFunctionalRole: 'requestFilterFunctionalRole',\r\n requestFilterOrganisation: 'requestFilterOrganisation'\r\n },\r\n ApprovalListForm: {\r\n approvalFilterRequestStatus: 'approvalFilterRequestStatus',\r\n approvalFilterRequestType: 'approvalFilterRequestType',\r\n approvalFilterApplication: 'approvalFilterApplication',\r\n approvalFilterEnvironment: 'approvalFilterEnvironment',\r\n approvalFilterFunctionalRole: 'approvalFilterFunctionalRole',\r\n approvalFilterOrganisation: 'approvalFilterOrganisation',\r\n approvalFilterEscalationLevel: 'approvalFilterEscalationLevel'\r\n },\r\n ReviewListForm: {\r\n reviewFilterActive: 'reviewFilterActive',\r\n reviewFilterDecision: 'reviewFilterDecision',\r\n reviewFilterStatus: 'reviewFilterStatus',\r\n reviewFilterReviewType: 'reviewFilterReviewType',\r\n reviewFilterApplication: 'reviewFilterApplication',\r\n reviewFilterEnvironment: 'reviewFilterEnvironment',\r\n reviewFilterFunctionalRole: 'reviewFilterFunctionalRole',\r\n reviewFilterOrganisation: 'reviewFilterOrganisation',\r\n reviewFilterEscalationLevel: 'reviewFilterEscalationLevel'\r\n },\r\n ApplicationListForm: {\r\n applicationFilterActive: 'applicationFilterActive',\r\n applicationFilterEnvironment: 'applicationFilterEnvironment',\r\n applicationFilterAuthenticationType: 'applicationFilterAuthenticationType'\r\n },\r\n OrganisationListForm: {\r\n organisationFilterActive: 'organisationFilterActive'\r\n },\r\n ReferenceDataListForm: {\r\n referenceDataFilterActive: 'referenceDataFilterActive'\r\n },\r\n ReviewDefinitionListForm: {\r\n reviewDefinitionFilterActive: 'reviewDefinitionFilterActive'\r\n }\r\n};\r\n\r\nexport const FilterQuestionDefaults = {\r\n ReviewListForm: {\r\n reviewFilterDecisions: [ReviewDecisionResult.NotReviewed],\r\n reviewFilterDecisionsAdminMode: []\r\n },\r\n ApplicationListForm: {\r\n applicationFilterActive: OptionSetCodes.ApplicationListForm.ApplicationFilterActive.Yes\r\n },\r\n OrganisationListForm: {\r\n organisationFilterActive: OptionSetCodes.OrganisationListForm.OrganisationFilterActive.Yes\r\n },\r\n ReferenceDataListForm: {\r\n referenceDataFilterActive: OptionSetCodes.ReferenceDataListForm.ReferenceDataFilterActive.Yes\r\n },\r\n ReviewDefinitionListForm: {\r\n reviewDefinitionFilterActive: OptionSetCodes.ReviewDefinitionListForm.ReviewDefinitionFilterActive.Yes\r\n }\r\n};\r\n\r\nexport const FilterQuestionLabels = {\r\n UserListForm: 'Filter',\r\n UserRequestListForm: 'Filter',\r\n ApprovalListForm: 'Filter',\r\n ReviewListForm: 'Filter',\r\n ApplicationListForm: 'Filter',\r\n OrganisationListForm: 'Filter',\r\n ReferenceDataListForm: 'Filter',\r\n ReviewDefinitionListForm: 'Filter'\r\n};\r\n\r\nexport const PageActionButtonCodes = {\r\n UserForm: {\r\n cancel: 'btnCustomCancel',\r\n },\r\n UserVerificationForm: {\r\n cancel: 'btnCustomCancel',\r\n },\r\n UserLegacyProfileSetupForm: {\r\n cancel: 'btnCustomCancel',\r\n },\r\n ReviewListForm: {\r\n cancel: 'btnCustomCancel',\r\n },\r\n ApplicationForm: {\r\n cancel: 'btnCustomCancel',\r\n manageEnvironments: 'btnManageEnvironments'\r\n },\r\n ApplicationDashboardForm: {\r\n cancel: 'btnCustomCancel'\r\n },\r\n ApplicationEnvironmentForm: {\r\n cancel: 'btnCustomCancel'\r\n },\r\n OrganisationForm: {\r\n cancel: 'btnCustomCancel',\r\n },\r\n ReferenceDataForm: {\r\n cancel: 'btnCustomCancel'\r\n },\r\n ReviewDefinitionForm: {\r\n cancel: 'btnCustomCancel'\r\n },\r\n GlobalSetupForm: {\r\n cancel: 'btnCustomCancel'\r\n }\r\n}\r\n\r\nexport const ReadOnlyAccessPageActionButtons: { [form: string]: PageActionButtonPath[] } = {\r\n UserForm: [\r\n [NavTabNumbers.UserForm.formNavigation, PageNumbers.UserForm.formNavigation, PageActionButtonCodes.UserForm.cancel],\r\n [NavTabNumbers.UserForm.formNavigationBottom, PageNumbers.UserForm.formNavigationBottom, PageActionButtonCodes.UserForm.cancel]\r\n ],\r\n UserVerificationForm: [\r\n [NavTabNumbers.UserVerificationForm.formNavigationBottom, PageNumbers.UserVerificationForm.formNavigationBottom, PageActionButtonCodes.UserVerificationForm.cancel]\r\n ],\r\n UserLegacyProfileSetupForm: [\r\n [NavTabNumbers.UserLegacyProfileSetupForm.formNavigation, PageNumbers.UserLegacyProfileSetupForm.formNavigation, PageActionButtonCodes.UserLegacyProfileSetupForm.cancel],\r\n [NavTabNumbers.UserLegacyProfileSetupForm.formNavigationBottom, PageNumbers.UserLegacyProfileSetupForm.formNavigationBottom, PageActionButtonCodes.UserLegacyProfileSetupForm.cancel]\r\n ],\r\n ReviewListForm: [\r\n [NavTabNumbers.ReviewListForm.formNavigation, PageNumbers.ReviewListForm.formNavigation, PageActionButtonCodes.ReviewListForm.cancel],\r\n [NavTabNumbers.ReviewListForm.formNavigationBottom, PageNumbers.ReviewListForm.formNavigationBottom, PageActionButtonCodes.ReviewListForm.cancel]\r\n ],\r\n ApplicationDashboardForm: [\r\n [NavTabNumbers.ApplicationDashboardForm.formNavigation, PageNumbers.ApplicationDashboardForm.formNavigation, PageActionButtonCodes.ApplicationDashboardForm.cancel],\r\n [NavTabNumbers.ApplicationDashboardForm.formNavigationBottom, PageNumbers.ApplicationDashboardForm.formNavigationBottom, PageActionButtonCodes.ApplicationDashboardForm.cancel]\r\n ],\r\n ApplicationForm: [\r\n [NavTabNumbers.ApplicationForm.formNavigation, PageNumbers.ApplicationForm.formNavigation, PageActionButtonCodes.ApplicationForm.cancel],\r\n [NavTabNumbers.ApplicationForm.formNavigation, PageNumbers.ApplicationForm.formNavigation, PageActionButtonCodes.ApplicationForm.manageEnvironments],\r\n [NavTabNumbers.ApplicationForm.formNavigationBottom, PageNumbers.ApplicationForm.formNavigationBottom, PageActionButtonCodes.ApplicationForm.cancel],\r\n [NavTabNumbers.ApplicationForm.formNavigationBottom, PageNumbers.ApplicationForm.formNavigationBottom, PageActionButtonCodes.ApplicationForm.manageEnvironments]\r\n ],\r\n ApplicationEnvironmentForm: [\r\n [NavTabNumbers.ApplicationEnvironmentForm.formNavigation, PageNumbers.ApplicationEnvironmentForm.formNavigation, PageActionButtonCodes.ApplicationEnvironmentForm.cancel],\r\n [NavTabNumbers.ApplicationEnvironmentForm.formNavigationBottom, PageNumbers.ApplicationEnvironmentForm.formNavigationBottom, PageActionButtonCodes.ApplicationEnvironmentForm.cancel]\r\n ],\r\n OrganisationForm: [\r\n [NavTabNumbers.OrganisationForm.formNavigation, PageNumbers.OrganisationForm.formNavigation, PageActionButtonCodes.OrganisationForm.cancel],\r\n [NavTabNumbers.OrganisationForm.formNavigationBottom, PageNumbers.OrganisationForm.formNavigationBottom, PageActionButtonCodes.OrganisationForm.cancel]\r\n ],\r\n ReferenceDataForm: [\r\n [NavTabNumbers.ReferenceDataForm.formNavigation, PageNumbers.ReferenceDataForm.formNavigation, PageActionButtonCodes.ReferenceDataForm.cancel],\r\n [NavTabNumbers.ReferenceDataForm.formNavigationBottom, PageNumbers.ReferenceDataForm.formNavigationBottom, PageActionButtonCodes.ReferenceDataForm.cancel]\r\n ],\r\n ReviewDefinitionForm: [\r\n [NavTabNumbers.ReviewDefinitionForm.formNavigation, PageNumbers.ReviewDefinitionForm.formNavigation, PageActionButtonCodes.ReviewDefinitionForm.cancel],\r\n [NavTabNumbers.ReviewDefinitionForm.formNavigationBottom, PageNumbers.ReviewDefinitionForm.formNavigationBottom, PageActionButtonCodes.ReviewDefinitionForm.cancel]\r\n ],\r\n GlobalSetupForm: [\r\n [NavTabNumbers.GlobalSetupForm.formNavigation, PageNumbers.GlobalSetupForm.formNavigation, PageActionButtonCodes.GlobalSetupForm.cancel],\r\n [NavTabNumbers.GlobalSetupForm.formNavigationBottom, PageNumbers.GlobalSetupForm.formNavigationBottom, PageActionButtonCodes.GlobalSetupForm.cancel]\r\n ]\r\n}\r\n\r\nexport const QueryStringParameters = {\r\n GridDataFilter: 'grid-data-filter'\r\n}\r\n","export enum FilterAction {\r\n ApplyFilters = 'applyFilters',\r\n ClearFilters = 'clearFilters',\r\n Search = 'search'\r\n};\r\n","export enum RequestSaveResultStatus {\r\n NoMatchingRow = 1,\r\n UpdatedSinceReadTime = 2,\r\n Success = 3,\r\n InsertFailed = 4,\r\n UpdateFailed = 5,\r\n DuplicateRow = 6,\r\n InvalidAction = 7,\r\n DuplicateChildEntity = 8\r\n};\r\n","export enum ReviewDecisionResult {\r\n NotReviewed = 'NotReviewed',\r\n Approve = 'Approve',\r\n Deny = 'Deny'\r\n};\r\n","export const RouteConstants = {\r\n termsAndConditions: {\r\n user: 'terms-and-conditions/end-user',\r\n onBehalfOf: 'terms-and-conditions/organisation-authority'\r\n },\r\n user: {\r\n verify: 'verify',\r\n register: 'register/:id',\r\n myApps: 'my-apps',\r\n list: 'user-list',\r\n prefix: 'user-detail',\r\n edit: 'user-detail/:id'\r\n },\r\n userLegacyProfileSetup: {\r\n edit: 'user-legacy-profile-setup/:id',\r\n resetEdit: 'user-legacy-profile-setup'\r\n },\r\n userRequest: {\r\n list: 'user-request-list'\r\n },\r\n approval: {\r\n list: 'approval-list'\r\n },\r\n review: {\r\n list: 'review-list'\r\n },\r\n referenceData: {\r\n list: 'reference-data-list',\r\n prefix: 'reference-data-detail',\r\n edit: 'reference-data-detail/:id'\r\n },\r\n organisation: {\r\n list: 'organisation-list',\r\n prefix: 'organisation-detail',\r\n edit: 'organisation-detail/:id'\r\n },\r\n application: {\r\n list: 'application-list',\r\n prefix: 'application-detail',\r\n edit: 'application-detail/:id',\r\n applicationDashboard: 'application-detail/:applicationId/application-dashboard-detail',\r\n applicationEnvironment: 'application-detail/:applicationId/application-environment-detail/:environmentId',\r\n applicationDashboardFragment: 'application-dashboard-detail',\r\n applicationEnvironmentFragment: 'application-environment-detail'\r\n },\r\n applicationDashboard: {\r\n prefix: 'application-dashboard-detail',\r\n edit: 'application-dashboard-detail/:id'\r\n },\r\n applicationEnvironment: {\r\n prefix: 'application-environment-detail',\r\n edit: 'application-environment-detail/:id'\r\n },\r\n reviewDefinition: {\r\n list: 'review-definition-list',\r\n prefix: 'review-definition-detail',\r\n edit: 'review-definition-detail/:id',\r\n reviewOccurrenceList: 'review-definition-detail/:reviewDefinitionId/review-occurrence-detail/:reviewOccurrenceId/review-list',\r\n reviewOccurrenceDetailFragment: 'review-occurrence-detail',\r\n reviewDecisionListFragment: 'review-list'\r\n },\r\n globalSetup: {\r\n edit: 'global-settings'\r\n },\r\n logout: 'logout',\r\n help: 'help'\r\n};\r\n","export const Templates = {\r\n user: 1,\r\n organisation: 2,\r\n referenceData: 3,\r\n application: 4,\r\n applicationEnvironment: 5,\r\n applicationDashboard: 6,\r\n referenceDataList: 7,\r\n menu: 8,\r\n userList: 9,\r\n userRequestList: 10,\r\n approvalList: 11,\r\n applicationList: 12,\r\n organisationList: 13,\r\n reviewList: 14,\r\n userVerification: 15,\r\n reviewDefinitionList: 16,\r\n reviewDefinition: 17,\r\n userLegacyProfileSetup: 18,\r\n globalSetup: 19\r\n}\r\n\r\nexport const Versions = {\r\n default: 0,\r\n latest: 0\r\n}\r\n","export enum UserPurgeType {\r\n FromBothDbAndAzureAd = 'FromBothDbAndAzureAd',\r\n FromDbOnly = 'FromDbOnly'\r\n};\r\n","export enum UserRequestSource {\r\n Access = 'Access',\r\n Update = 'Update'\r\n};\r\n","export enum PurgeUserResultStatus {\r\n Success = 'Success',\r\n Error = 'Error'\r\n};\r\n\r\nexport enum PurgeUserErrorCode {\r\n UserHasInvalidId = 'UserHasInvalidId',\r\n\r\n UserIsNotFoundInTheSystem = 'UserIsNotFoundInTheSystem',\r\n UserHasInvalidEmail = 'UserHasInvalidEmail',\r\n UserHasApplicationAccessesInTheSystem = 'UserHasApplicationAccessesInTheSystem',\r\n UserHasInProgressAccessRequestsInTheSystem = 'UserHasInProgressAccessRequestsInTheSystem',\r\n UserHasInProgressUpdateRequestsInTheSystem = 'UserHasInProgressUpdateRequestsInTheSystem',\r\n UserIsAuthorityOfActiveOrganisations = 'UserIsAuthorityOfActiveOrganisations',\r\n UserIsSupportOfActiveOrganisations = 'UserIsSupportOfActiveOrganisations',\r\n UserIsAdministratorOfActiveApplicationEnvironments = 'UserIsAdministratorOfActiveApplicationEnvironments',\r\n UserIsApplicationSupportOfActiveApplicationEnvironments = 'UserIsApplicationSupportOfActiveApplicationEnvironments',\r\n\r\n LoggedInUserIsNotAvailable = 'LoggedInUserIsNotAvailable',\r\n UserIsCurrentlyLoggedIn = 'UserIsCurrentlyLoggedIn',\r\n LoggedInUserIsNotAuthorised = 'LoggedInUserIsNotAuthorised',\r\n PurgeTypeIsInvalid = 'PurgeTypeIsInvalid',\r\n LoggedInUserIsNotAuthorisedToPurge = 'LoggedInUserIsNotAuthorisedToPurge',\r\n LoggedInUserIsNotAuthorisedForPurgeType = 'LoggedInUserIsNotAuthorisedForPurgeType',\r\n PurgeTypeCannotBeDetermined = 'PurgeTypeCannotBeDetermined',\r\n\r\n AuthenticationSystemFailedToSearchUser = 'AuthenticationSystemFailedToSearchUser',\r\n UserIsInternal = 'UserIsInternal',\r\n\r\n AuthenticationSystemFailedToRemoveUserFromGroup = 'AuthenticationSystemFailedToRemoveUserFromGroup',\r\n AuthenticationSystemFailedToDeleteUser = 'AuthenticationSystemFailedToDeleteUser',\r\n AuthenticationSystemFailedToDeleteLegacyUser = 'AuthenticationSystemFailedToDeleteLegacyUser',\r\n\r\n SystemFailedToDeleteUser = 'SystemFailedToDeleteUser',\r\n\r\n UnexpectedFailure = 'UnexpectedFailure'\r\n};\r\n\r\nexport interface PurgeUserResult {\r\n status?: PurgeUserResultStatus;\r\n errorCode?: PurgeUserErrorCode;\r\n errorData?: { [key: string]: string };\r\n};\r\n","export enum SyncUserResultStatus {\r\n Success = 'Success',\r\n Error = 'Error'\r\n};\r\n\r\nexport enum SyncUserErrorCode {\r\n UserHasInvalidId = 'UserHasInvalidId',\r\n\r\n UserIsNotFoundInTheSystem = 'UserIsNotFoundInTheSystem',\r\n UserHasInvalidEmail = 'UserHasInvalidEmail',\r\n\r\n LoggedInUserIsNotAvailable = 'LoggedInUserIsNotAvailable',\r\n LoggedInUserIsNotAuthorised = 'LoggedInUserIsNotAuthorised',\r\n LoggedInUserIsNotAuthorisedToSync = 'LoggedInUserIsNotAuthorisedToSync',\r\n\r\n AuthenticationSystemFailedToSearchUser = 'AuthenticationSystemFailedToSearchUser',\r\n AuthenticationSystemUserNotFound = 'AuthenticationSystemUserNotFound',\r\n\r\n AuthenticationSystemFailedToSearchLegacyUser = 'AuthenticationSystemFailedToSearchLegacyUser',\r\n\r\n SystemFailedToSyncUser = 'SystemFailedToSyncUser',\r\n\r\n UnexpectedFailure = 'UnexpectedFailure'\r\n};\r\n\r\nexport interface SyncUserResult {\r\n status?: SyncUserResultStatus;\r\n errorCode?: SyncUserErrorCode;\r\n errorData?: { [key: string]: string };\r\n};\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport * as fileSaver from 'file-saver';\r\n\r\nimport { Observable, take } from 'rxjs';\r\n\r\nimport { ApiService, ApplicationSettings, SpinnerService } from 'dspx-core';\r\n\r\nimport { AppDataKeys } from '../constants/app-data.constants';\r\n\r\nimport { ExportToDataTablesRequest } from '../interfaces/export-to-data-tables-request.interface';\r\n\r\nimport { SessionStorageService } from './session-storage.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppDataService extends ApiService {\r\n\r\n appData: { [key: string]: any } = {};\r\n\r\n constructor(protected httpClient: HttpClient,\r\n private appSettings: ApplicationSettings,\r\n private spinnerService: SpinnerService,\r\n private sessionStorageService: SessionStorageService) {\r\n super(httpClient, appSettings.apiUrl + 'api');\r\n }\r\n\r\n public setAppData(key: string, value: any) {\r\n this.appData[key] = value;\r\n }\r\n\r\n public getAppData(key: string): any {\r\n return this.appData[key];\r\n }\r\n\r\n public generatePdf(relativeUrl: string, downloadFile = true) {\r\n const url = this.getUrl(relativeUrl);\r\n\r\n this.httpClient\r\n .post(url, null, { responseType: 'blob', observe: 'response' })\r\n .subscribe(\r\n response => {\r\n const dispositionHeader = response.headers.get('content-disposition');\r\n if (!dispositionHeader) {\r\n throw new Error('content-disposition header is not found');\r\n }\r\n\r\n //if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // //IE and Edge : presents option to save or open\r\n // window.navigator.msSaveOrOpenBlob(response.body);\r\n //}\r\n //else {\r\n //All modern browsers such as Chrome\r\n if (downloadFile === true) {\r\n const a = document.createElement('a');\r\n a.setAttribute('style', 'display:none;');\r\n document.body.appendChild(a);\r\n a.download = dispositionHeader.split(';')[1].trim().split('=')[1];\r\n a.href = URL.createObjectURL(response.body);\r\n a.target = '_blank';\r\n a.click();\r\n document.body.removeChild(a);\r\n } else {\r\n const fileURL = URL.createObjectURL(response.body);\r\n window.open(fileURL, 'PdfTabWindow');\r\n }\r\n //}\r\n },\r\n err => {\r\n throw err;\r\n }\r\n );\r\n }\r\n\r\n public getContentFileName(contentDispositionHeader: string): string {\r\n const parts: string[] = contentDispositionHeader.split(';');\r\n const fileName = parts[1].split('=')[1];\r\n return fileName.replace(/['\"]+/g, '');\r\n }\r\n\r\n public post(endpoint: string, request: T): Observable {\r\n return this.postAndFetch(endpoint, request);\r\n }\r\n\r\n public fetchData(endpoint: string): Observable {\r\n return this.postAndFetch(endpoint, {});\r\n }\r\n\r\n public getCsv(relativeUrl: string, requestBody: any, defaultFileName: string, onSuccess?: (data: Blob, fileName: string, metadata: any) => void): void {\r\n const url = this.getUrl(relativeUrl);\r\n\r\n this.spinnerService.showSpinner();\r\n this.httpClient\r\n .post(url, requestBody, { responseType: 'blob', observe: 'response' })\r\n .subscribe({\r\n next: response => {\r\n this.spinnerService.hideSpinner();\r\n const metadata = JSON.parse(response.headers.get(this.getAppData(AppDataKeys.fileDownloadMetadataHeaderName)));\r\n const excelMimeType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\n const data = new Blob([response.body], { type: excelMimeType });\r\n const fileName = `${defaultFileName}_${new Date().getTime()}.csv`;\r\n fileSaver.saveAs(data, fileName);\r\n onSuccess?.(data, fileName, metadata);\r\n },\r\n error: err => {\r\n throw err;\r\n }\r\n });\r\n }\r\n\r\n public getDataTableSet(apiEndpoint: string, request: ExportToDataTablesRequest, onSuccess: (response: TResponse, transientId: string) => void): void {\r\n this.post(apiEndpoint, request)\r\n .pipe(take(1))\r\n .subscribe((response: TResponse) => onSuccess(response, this.getTransientId()));\r\n }\r\n\r\n public getTransientId(): string {\r\n return `${new Date().getTime()}`;\r\n }\r\n\r\n public getAttributeFromHtmlElement(elementId: string, attributeName: string): string {\r\n return document.getElementById(elementId)?.attributes[attributeName]?.value;\r\n }\r\n\r\n public getFromSessionStorage(key: TKey): TValue {\r\n return this.sessionStorageService.get(key);\r\n }\r\n\r\n public setIntoSessionStorage(key: TKey, value: TValue): void {\r\n this.sessionStorageService.set(key, value);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { AppDataKeys, NavTabNumbers, OptionSetCodes, PageNumbers, QuestionCodes, SectionCodes } from '../constants/app-data.constants';\r\n\r\nimport { UserOrganisation } from '../interfaces/user-organisation.interface';\r\nimport { GetInternalUserProfileResponse } from \"../interfaces/get-internal-user-profile-response.interface\";\r\n\r\nimport { AppDataService } from \"./app-data.service\";\r\nimport { QuestionPath, ResponseParserService } from \"./response-parser.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApplicationUserService {\r\n\r\n constructor(\r\n private appDataService: AppDataService,\r\n private responseParserService: ResponseParserService) {\r\n }\r\n\r\n getUserOrganisation(model: any): UserOrganisation {\r\n const findQuestionModelFromUserProfileSection = (questionCode: string) =>\r\n this.responseParserService.findQuestionModel(\r\n model,\r\n NavTabNumbers.UserForm.userProfile,\r\n PageNumbers.UserForm.profile,\r\n null,\r\n SectionCodes.UserForm.userOrganisationProfile,\r\n null,\r\n questionCode);\r\n const userHasOrganisation = findQuestionModelFromUserProfileSection(QuestionCodes.UserForm.userHasOrganisation);\r\n const userOrganisation = findQuestionModelFromUserProfileSection(QuestionCodes.UserForm.userOrganisation);\r\n\r\n const organisationId = userHasOrganisation === OptionSetCodes.UserForm.YesNo.No\r\n ? this.appDataService.getAppData(AppDataKeys.privateIndividualOrganisationId)\r\n : userHasOrganisation === OptionSetCodes.UserForm.YesNo.Yes\r\n ? userOrganisation?.code\r\n : null;\r\n\r\n return {\r\n hasOrganisation: userHasOrganisation ? userHasOrganisation : null,\r\n optionalOrganisation: userOrganisation ? userOrganisation : null,\r\n organisationId: organisationId ? organisationId : null\r\n };\r\n }\r\n\r\n getUserEmail(model: any): string {\r\n return this.getUserProfileQuestionModel(model, QuestionCodes.UserForm.userEmail);\r\n }\r\n\r\n getUserGivenName(model: any): string {\r\n return this.getUserProfileQuestionModel(model, QuestionCodes.UserForm.userGivenName);\r\n }\r\n\r\n getUserFamilyName(model: any): string {\r\n return this.getUserProfileQuestionModel(model, QuestionCodes.UserForm.userFamilyName);\r\n }\r\n\r\n isUserProfileValid(model: any): any {\r\n return this.getUserGivenName(model) && this.getUserFamilyName(model);\r\n }\r\n\r\n getAccessDefinitionCode(model: any, sectionIndex: number): string {\r\n if (!sectionIndex && sectionIndex !== 0) {\r\n return null;\r\n }\r\n\r\n const sectionModel = this.getAccessDefinitionsSectionModel(model, sectionIndex);\r\n if (!sectionModel) {\r\n return null;\r\n }\r\n\r\n const applicationCodeAndEnvironmentCode = sectionModel[QuestionCodes.UserForm.envName]; // e.g.: idam_uat\r\n if (!applicationCodeAndEnvironmentCode) {\r\n return null;\r\n }\r\n\r\n const functionalRoleCode = sectionModel[QuestionCodes.UserForm.roleName]; // e.g.: OrgAuthority\r\n if (!functionalRoleCode) {\r\n return null;\r\n }\r\n\r\n const accessDefinition = `${applicationCodeAndEnvironmentCode}_${functionalRoleCode}`; // e.g.: idam_uat_OrgAuthority\r\n\r\n return accessDefinition;\r\n }\r\n\r\n getAccessBeingEdited(model: any): any {\r\n const sectionModel = this.getAccessDefinitionsSectionModel(model);\r\n const accessBeingEdited = sectionModel.find(a => a.isEditing);\r\n return accessBeingEdited;\r\n }\r\n\r\n replaceUserProfile(model: any, userProfile: GetInternalUserProfileResponse): boolean {\r\n const replaceUserProfileQuestionModel = (questionCode: string, newQuestionModel: any) =>\r\n this.responseParserService.replaceQuestionModel(\r\n model,\r\n NavTabNumbers.UserForm.userProfile,\r\n PageNumbers.UserForm.profile,\r\n null,\r\n SectionCodes.UserForm.userProfile,\r\n null,\r\n questionCode,\r\n newQuestionModel);\r\n const success =\r\n replaceUserProfileQuestionModel(QuestionCodes.UserForm.userGivenName, userProfile.givenName) &&\r\n replaceUserProfileQuestionModel(QuestionCodes.UserForm.userFamilyName, userProfile.familyName) &&\r\n replaceUserProfileQuestionModel(QuestionCodes.UserForm.userPreferredName, null) &&\r\n replaceUserProfileQuestionModel(QuestionCodes.UserForm.userMiddleName, null) &&\r\n replaceUserProfileQuestionModel(QuestionCodes.UserForm.userPhoneWork, userProfile.phoneWork) &&\r\n replaceUserProfileQuestionModel(QuestionCodes.UserForm.userPhoneMobile, userProfile.phoneMobile);\r\n return success;\r\n }\r\n\r\n replaceUserRequestGrid(model: any, userRequestGridModel: any): boolean {\r\n const success = this.responseParserService.replaceQuestionModel(\r\n model,\r\n NavTabNumbers.UserForm.userRequests,\r\n PageNumbers.UserForm.userRequests,\r\n null,\r\n SectionCodes.UserForm.userRequests,\r\n null,\r\n QuestionCodes.UserForm.userRequestGrid,\r\n userRequestGridModel);\r\n return success;\r\n }\r\n\r\n handleSingleCheckBoxQuestionChanges(getModel: () => any, setModel: (model: any) => void): void {\r\n const userConditionsAgreeQuestionPath: QuestionPath = [\r\n NavTabNumbers.UserForm.userProfile,\r\n PageNumbers.UserForm.profile,\r\n SectionCodes.UserForm.conditionsOfUse,\r\n QuestionCodes.UserForm.userConditionsAgree\r\n ];\r\n this.responseParserService.handleSingleCheckBoxQuestionChanges(\r\n getModel,\r\n setModel,\r\n [\r\n userConditionsAgreeQuestionPath\r\n ]);\r\n }\r\n\r\n addToRevokedAccessDefinitions(model: any, sourceSectionIndex: number, reasonForRequestRevoke: string): boolean {\r\n\r\n const sourceSectionItemModel = this.getAccessDefinitionsSectionModel(model, sourceSectionIndex);\r\n if (!sourceSectionItemModel) {\r\n return false;\r\n }\r\n const destinationSectionItemModel = { reasonForRequestRevoke, ...sourceSectionItemModel };\r\n\r\n const destinationSectionPath: [navTabNumber: number, pageNumber: number, pageIndex: number, sectionCode: string, sectionIndex: number] =\r\n [NavTabNumbers.UserForm.applicationAccess, PageNumbers.UserForm.applicationAccess, null, SectionCodes.UserForm.revokedApplicationRef, null];\r\n\r\n const destinationSectionModel: any[] = this.responseParserService.findSectionModel(model, ...destinationSectionPath) ?? [];\r\n\r\n destinationSectionModel.push(destinationSectionItemModel);\r\n\r\n const success = this.responseParserService.replaceSectionModel(model, ...destinationSectionPath, destinationSectionModel);\r\n\r\n return success;\r\n }\r\n\r\n private getUserProfileQuestionModel(model: any, questionCode: string): string {\r\n const userProfileQuestionModel = this.responseParserService.findQuestionModel(\r\n model,\r\n NavTabNumbers.UserForm.userProfile,\r\n PageNumbers.UserForm.profile,\r\n null,\r\n SectionCodes.UserForm.userProfile,\r\n null,\r\n questionCode);\r\n return userProfileQuestionModel;\r\n }\r\n\r\n private getAccessDefinitionsSectionModel(model: any, sectionIndex: number = null): any {\r\n const sectionModel = this.responseParserService.findSectionModel(\r\n model,\r\n NavTabNumbers.UserForm.applicationAccess,\r\n PageNumbers.UserForm.applicationAccess,\r\n null,\r\n SectionCodes.UserForm.applicationRef,\r\n sectionIndex);\r\n return sectionModel;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CollectionService {\r\n\r\n compare(item1: TItem, item2: TItem, getComparisonValue: (item: TItem) => TComparisonValue): number {\r\n const comparisonValue1 = getComparisonValue(item1);\r\n const comparisonValue2 = getComparisonValue(item2);\r\n if (comparisonValue1 < comparisonValue2) {\r\n return -1;\r\n }\r\n if (comparisonValue1 > comparisonValue2) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n orderBy(items: TItem[], getComparisonValue: (item: TItem) => TComparisonValue): TItem[] {\r\n return items\r\n ?.slice() // JavaScript sort() function sorts in place, so we need to make a shallow copy of the array \r\n ?.sort((item1, item2) => this.compare(item1, item2, getComparisonValue));\r\n }\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { DialogResult, Dialogs, DialogService } from 'dspx-core';\r\nimport { DeactivationGuard } from '../interfaces/deactivation-guard.interface';\r\n\r\n// See https://stackoverflow.com/a/41187919\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ComponentDeactivationService {\r\n\r\n constructor(\r\n private dialogService: DialogService) {\r\n }\r\n\r\n // If there are no pending changes, just allow deactivation; else confirm first\r\n canDeactivate = (component: DeactivationGuard) =>\r\n component.canDeactivate()\r\n ? true\r\n : this.openConfirmDialog();\r\n\r\n // NOTE: this warning message will only be shown when navigating elsewhere within your angular app;\r\n // when navigating away from your angular app, the browser will show a generic warning message (see http://stackoverflow.com/a/42207299/7307355)\r\n private openConfirmDialog = () => this.dialogService\r\n .showConfirm(Dialogs.UNSAVED_CHANGES)\r\n .pipe(map(data => data === DialogResult.ACCEPTED));\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { Observable } from \"rxjs\";\r\n\r\nimport { DialogResult, DialogService, MessagePlaceholders, Popup } from 'dspx-core';\r\n\r\nimport { AppDataKeys } from \"../constants/app-data.constants\";\r\n\r\nimport { SaveWarning } from \"../interfaces/save-warning.interface\";\r\n\r\nimport { AppDataService } from \"./app-data.service\";\r\nimport { HtmlHelperService } from \"./html-helper.service\";\r\n\r\nexport type ConfirmDialogPatchConfig = {\r\n appSelector: string;\r\n componentSelector: string;\r\n acceptButtonTitle: string;\r\n rejectButtonTitle: string;\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DialogHelperService {\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private appDataService: AppDataService,\r\n private htmlHelperService: HtmlHelperService) {\r\n }\r\n\r\n // The purpose of this method is to work around a defect in the dspx-core library.\r\n // PROBLEM:\r\n // In the dspx-core library, the dialog component inside the page component is reused when making multiple calls to show a dialog containing questions.\r\n // When a dialog has unanswered mandatory questions and the \"reject\" action is performed, the form.valid flag is not reset to true,\r\n // and therefore it stays false when a new dialog is shown.\r\n // If the new dialog being shown has no mandatory questions, you should be able to perform the \"accept\" action straight away.\r\n // However, since the form.valid flag is false, the \"accept\" action is blocked (and the form.valid flag is eventually reset to true).\r\n // Therefore, if the \"accept\" action is performed again, then it is finally executed.\r\n // The end result is that for these dialogs you need to click the \"accept\" button twice, if the previous dialog was closed with unanswered mandatory questions.\r\n // WORKAROUND:\r\n // This method waits for the dialog to open and then adds a listener to the \"accept\" action.\r\n // When the \"accept\" action is triggered, the listener re-triggers the \"accept\" action programmatically.\r\n // In those scenarios where it is not needed, it does not cause any issue, but in those scenarios where it is needed, it solves the problem.\r\n patchConfirmDialogValidationIssue(config: ConfirmDialogPatchConfig): void {\r\n const subscription = this.dialogService.dialogRequested().subscribe(() => {\r\n this.waitUntil(() => {\r\n const acceptButtonElement = this.htmlHelperService.getComponentDialogButtonHtmlElement(config.appSelector, config.componentSelector, config.acceptButtonTitle);\r\n if (!acceptButtonElement) {\r\n return false;\r\n }\r\n const rejectButtonElement = this.htmlHelperService.getComponentDialogButtonHtmlElement(config.appSelector, config.componentSelector, config.rejectButtonTitle);\r\n if (!rejectButtonElement) {\r\n return false;\r\n }\r\n this.htmlHelperService.addOneOffEventListener(acceptButtonElement, 'click', () => {\r\n acceptButtonElement.click();\r\n subscription.unsubscribe();\r\n });\r\n this.htmlHelperService.addOneOffEventListener(rejectButtonElement, 'click', () => {\r\n subscription.unsubscribe();\r\n });\r\n return true;\r\n });\r\n });\r\n }\r\n\r\n waitUntil(condition: () => boolean, msWaits?: number[]): void {\r\n condition = condition ?? (() => true);\r\n msWaits = msWaits ?? [0, 10, 20, 40, 80, 160, 320];\r\n const evaluateLater = (iteration: number) => {\r\n if (iteration >= msWaits.length) {\r\n return;\r\n }\r\n const msWait = msWaits[iteration];\r\n setTimeout(() => {\r\n if (condition()) {\r\n return;\r\n }\r\n evaluateLater(iteration + 1);\r\n }, msWait);\r\n };\r\n evaluateLater(0);\r\n }\r\n\r\n showDialog(popupCode: string, placeholders: MessagePlaceholders, data: MessagePlaceholders, dataTitle = this.defaultDialogTitle): void {\r\n this.dialogService.showDialog(popupCode, null, { ...placeholders, details: this.toHtmlString(data, dataTitle) });\r\n }\r\n\r\n showConfirm(popupCode: string, placeholders: MessagePlaceholders, data: MessagePlaceholders, dataTitle = this.defaultDialogTitle): Observable {\r\n return this.dialogService.showConfirm(popupCode, { ...placeholders, details: this.toHtmlString(data, dataTitle) });\r\n }\r\n\r\n showWarnings(warnings: SaveWarning[]): Observable {\r\n const warningHtmlTable = this.getWarningHtmlTable(warnings);\r\n const message =\r\n `

The following issues have been detected:

\r\n ${warningHtmlTable}\r\n
\r\n

Are you sure you want to proceed?

`;\r\n return this.dialogService.showSimplePopup(message, 'Warning', 'OK', 'Cancel');\r\n }\r\n\r\n toHtmlString(data?: MessagePlaceholders, dataTitle = this.defaultDialogTitle): string {\r\n if (!data) {\r\n return '';\r\n }\r\n const fields = Object\r\n .entries(data)\r\n .map(entry => ({\r\n name: this.htmlHelperService.toEncodedHtml(entry[0]),\r\n value: this.htmlHelperService.toEncodedHtml(entry[1])\r\n }));\r\n if (!fields.length) {\r\n return '';\r\n }\r\n const htmlTitle = dataTitle ? this.htmlHelperService.formatHtml('p', dataTitle) : '';\r\n const htmlList = this.htmlHelperService.formatFields(fields);\r\n const htmlString = htmlTitle + htmlList;\r\n return htmlString;\r\n }\r\n\r\n private readonly defaultDialogTitle = 'DETAILS:';\r\n\r\n private getWarningHtmlTable(warnings: SaveWarning[]): string {\r\n const headerRow = ['Message', 'Details'];\r\n const dataRows = warnings\r\n ?.map(warning => {\r\n const message = this.getPopupText(warning.message);\r\n const dataTitle: string = null;\r\n const details = this.toHtmlString(warning.details, dataTitle);\r\n return [message, details];\r\n })\r\n ?? [];\r\n const htmlTable = this.htmlHelperService.formatHtmlTable(headerRow, dataRows);\r\n return htmlTable;\r\n }\r\n\r\n private getPopupText(popupCode: string): string {\r\n const popupRegistry = this.getPopupRegistry();\r\n const popup = popupRegistry?.find(p => p.code === popupCode)\r\n const popupText = popup?.text;\r\n return popupText;\r\n }\r\n\r\n private getPopupRegistry(): Popup[] {\r\n const getPopupRegistryFunction = this.appDataService.getAppData(AppDataKeys.getPopupRegistryFunction);\r\n const popupRegistry = getPopupRegistryFunction?.();\r\n return popupRegistry;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { take } from \"rxjs\";\r\n\r\nimport { DialogService } from \"dspx-core\";\r\n\r\nimport { ApiEndpoints } from \"../constants/api-endpoints.constants\";\r\nimport { OptionSetCodes, PopupCodes } from \"../constants/app-data.constants\";\r\n\r\nimport { DirectoryLookupConfiguration } from \"../interfaces/directory-lookup-configuration.interface\";\r\n\r\nimport { SearchAzureAdUserLimited } from \"../interfaces/search-azure-ad-user-limited.interface\";\r\nimport { SearchAzureAdUserLimitedRequest } from \"../interfaces/search-azure-ad-user-limited-request.interface\";\r\nimport { SearchAzureAdUserLimitedResponse } from \"../interfaces/search-azure-ad-user-limited-response.interface\";\r\n\r\nimport { SearchAzureAdUserIdentity } from \"../interfaces/search-azure-ad-user-identity.interface\";\r\nimport { SearchAzureAdUserAppRoleAssignment } from \"../interfaces/search-azure-ad-user-app-role-assignment.interface\";\r\nimport { SearchAzureAdUser } from \"../interfaces/search-azure-ad-user.interface\";\r\nimport { SearchAzureAdUserRequest } from \"../interfaces/search-azure-ad-user-request.interface\";\r\nimport { SearchAzureAdUserResponse } from \"../interfaces/search-azure-ad-user-response.interface\";\r\nimport { SearchAzureAdUsersByMatchingLdapUserResponse } from \"../interfaces/search-azure-ad-user-by-matching-ldap-user-response.interface\";\r\nimport { SearchAzureAdUserSummary } from \"../interfaces/search-azure-ad-user-summary.interface\";\r\n\r\nimport { SearchAzureAdGroup } from \"../interfaces/search-azure-ad-group.interface\";\r\nimport { SearchAzureAdGroupRequest } from \"../interfaces/search-azure-ad-group-request.interface\";\r\nimport { SearchAzureAdGroupResponse } from \"../interfaces/search-azure-ad-group-response.interface\";\r\nimport { SearchAzureAdGroupSummary } from \"../interfaces/search-azure-ad-group-summary.interface\";\r\n\r\nimport { SearchAzureAdDomain } from \"../interfaces/search-azure-ad-domain.interface\";\r\nimport { SearchAzureAdDomainRequest } from \"../interfaces/search-azure-ad-domain-request.interface\";\r\nimport { SearchAzureAdDomainResponse } from \"../interfaces/search-azure-ad-domain-response.interface\";\r\nimport { SearchAzureAdDomainSummary } from \"../interfaces/search-azure-ad-domain-summary.interface\";\r\n\r\nimport { SearchLdapProtocolUserLimited } from \"../interfaces/search-ldap-protocol-user-limited.interface\";\r\nimport { SearchLdapProtocolUserLimitedRequest } from \"../interfaces/search-ldap-protocol-user-limited-request.interface\";\r\nimport { SearchLdapProtocolUserLimitedResponse } from \"../interfaces/search-ldap-protocol-user-limited-response.interface\";\r\n\r\nimport { SearchLdapProtocolUserSecurity } from \"../interfaces/search-ldap-protocol-user-security.interface\";\r\nimport { SearchLdapProtocolUserOrganisationRole } from \"../interfaces/search-ldap-protocol-user-organisation-role.interface\";\r\nimport { SearchLdapProtocolUser } from \"../interfaces/search-ldap-protocol-user.interface\";\r\nimport { SearchLdapProtocolUserRequest } from \"../interfaces/search-ldap-protocol-user-request.interface\";\r\nimport { SearchLdapProtocolUserResponse } from \"../interfaces/search-ldap-protocol-user-response.interface\";\r\nimport { SearchLdapProtocolUsersByMatchingAzureAdUserResponse } from \"../interfaces/search-ldap-protocol-user-by-matching-azure-ad-user-response.interface\";\r\nimport { SearchLdapProtocolUserSummary } from \"../interfaces/search-ldap-protocol-user-summary.interface\";\r\n\r\nimport { SearchLdapProtocolGroup } from \"../interfaces/search-ldap-protocol-group.interface\";\r\nimport { SearchLdapProtocolGroupRequest } from \"../interfaces/search-ldap-protocol-group-request.interface\";\r\nimport { SearchLdapProtocolGroupResponse } from \"../interfaces/search-ldap-protocol-group-response.interface\";\r\nimport { SearchLdapProtocolGroupSummary } from \"../interfaces/search-ldap-protocol-group-summary.interface\";\r\n\r\nimport { SearchLdapProtocolOrganisation } from \"../interfaces/search-ldap-protocol-organisation.interface\";\r\nimport { SearchLdapProtocolOrganisationRequest } from \"../interfaces/search-ldap-protocol-organisation-request.interface\";\r\nimport { SearchLdapProtocolOrganisationResponse } from \"../interfaces/search-ldap-protocol-organisation-response.interface\";\r\nimport { SearchLdapProtocolOrganisationSummary } from \"../interfaces/search-ldap-protocol-organisation-summary.interface\";\r\n\r\nimport { SearchLdapProtocolApplicationRole } from \"../interfaces/search-ldap-protocol-application-role.interface\";\r\nimport { SearchLdapProtocolApplicationInvocationMethod } from \"../interfaces/search-ldap-protocol-application-invocation-method.interface\";\r\nimport { SearchLdapProtocolApplication } from \"../interfaces/search-ldap-protocol-application.interface\";\r\nimport { SearchLdapProtocolApplicationRequest } from \"../interfaces/search-ldap-protocol-application-request.interface\";\r\nimport { SearchLdapProtocolApplicationResponse } from \"../interfaces/search-ldap-protocol-application-response.interface\";\r\nimport { SearchLdapProtocolApplicationSummary } from \"../interfaces/search-ldap-protocol-application-summary.interface\";\r\n\r\nimport { SearchLdapScimObject } from \"../interfaces/search-ldap-scim-object.interface\";\r\n\r\nimport { SearchLdapScimUserRequest } from \"../interfaces/search-ldap-scim-user-request.interface\";\r\nimport { SearchLdapScimUserResponse } from \"../interfaces/search-ldap-scim-user-response.interface\";\r\nimport { SearchLdapScimUserSummary } from \"../interfaces/search-ldap-scim-user-summary.interface\";\r\n\r\nimport { SearchLdapScimGroupRequest } from \"../interfaces/search-ldap-scim-group-request.interface\";\r\nimport { SearchLdapScimGroupResponse } from \"../interfaces/search-ldap-scim-group-response.interface\";\r\nimport { SearchLdapScimGroupSummary } from \"../interfaces/search-ldap-scim-group-summary.interface\";\r\n\r\nimport { AppDataService } from \"./app-data.service\";\r\nimport { CollectionService } from \"./collection.service\";\r\nimport { HtmlHelperService } from \"./html-helper.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DirectoryLookupService {\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private appDataService: AppDataService,\r\n private collectionService: CollectionService,\r\n private htmlHelperService: HtmlHelperService) {\r\n }\r\n \r\n searchAzureAdUserLimited(configuration: DirectoryLookupConfiguration, lookupType: string, searchTerm: string,\r\n callbackToShowPopup: (message: string, title: string, onCloseDialogEvent: () => void) => void): void {\r\n this.search(\r\n configuration,\r\n { searchTerm },\r\n ApiEndpoints.directorySearch.searchAzureAdUserLimited,\r\n (request, response) => `Result For Microsoft Entra ID User: \"${searchTerm}\"`,\r\n (request, response) => this.formatAzureAdUserLimitedHtml(response),\r\n PopupCodes.UserListForm.LimitedDirectoryLookup,\r\n { limitedDirectoryLookupType: lookupType, limitedDirectoryLookupValue: searchTerm },\r\n callbackToShowPopup);\r\n }\r\n\r\n searchAzureAdUser(configuration: DirectoryLookupConfiguration, lookupType: string, onlyExactMatch: boolean, searchTerm: string,\r\n callbackToShowPopup: (message: string, title: string, onCloseDialogEvent: () => void) => void): void {\r\n this.search(\r\n configuration,\r\n { onlyExactMatch, searchTerm },\r\n ApiEndpoints.directorySearch.searchAzureAdUser,\r\n (request, response) => `Result For User: \"${searchTerm}\"${onlyExactMatch ? ' (only exact match)' : ''}`,\r\n (request, response) => this.formatAzureAdUserHtml(response),\r\n PopupCodes.UserListForm.AzureAdLookup,\r\n { azureAdLookupType: lookupType, azureAdLookupOnlyExactMatch: onlyExactMatch, azureAdLookupValue: searchTerm },\r\n callbackToShowPopup);\r\n }\r\n\r\n searchAzureAdGroup(configuration: DirectoryLookupConfiguration, lookupType: string, onlyExactMatch: boolean, searchTerm: string,\r\n callbackToShowPopup: (message: string, title: string, onCloseDialogEvent: () => void) => void): void {\r\n this.search(\r\n configuration,\r\n { onlyExactMatch, searchTerm },\r\n ApiEndpoints.directorySearch.searchAzureAdGroup,\r\n (request, response) => `Result For Group: \"${searchTerm}\"${onlyExactMatch ? ' (only exact match)' : ''}`,\r\n (request, response) => this.formatAzureAdGroupHtml(response),\r\n PopupCodes.UserListForm.AzureAdLookup,\r\n { azureAdLookupType: lookupType, azureAdLookupOnlyExactMatch: onlyExactMatch, azureAdLookupValue: searchTerm },\r\n callbackToShowPopup);\r\n }\r\n\r\n searchAzureAdDomain(configuration: DirectoryLookupConfiguration, lookupType: string, onlyExactMatch: boolean, searchTerm: string,\r\n callbackToShowPopup: (message: string, title: string, onCloseDialogEvent: () => void) => void): void {\r\n this.search(\r\n configuration,\r\n { onlyExactMatch, searchTerm },\r\n ApiEndpoints.directorySearch.searchAzureAdDomain,\r\n (request, response) => `Result For Domain: \"${searchTerm}\"${onlyExactMatch ? ' (only exact match)' : ''}`,\r\n (request, response) => this.formatAzureAdDomainHtml(response),\r\n PopupCodes.UserListForm.AzureAdLookup,\r\n { azureAdLookupType: lookupType, azureAdLookupOnlyExactMatch: onlyExactMatch, azureAdLookupValue: searchTerm },\r\n callbackToShowPopup);\r\n }\r\n \r\n searchLdapProtocolUserLimited(configuration: DirectoryLookupConfiguration, lookupType: string, searchTerm: string,\r\n callbackToShowPopup: (message: string, title: string, onCloseDialogEvent: () => void) => void): void {\r\n this.search(\r\n configuration,\r\n { searchTerm },\r\n ApiEndpoints.directorySearch.searchLdapProtocolUserLimited,\r\n (request, response) => `Result For LDAP User: \"${searchTerm}\"`,\r\n (request, response) => this.formatLdapProtocolUserLimitedHtml(response),\r\n PopupCodes.UserListForm.LimitedDirectoryLookup,\r\n { limitedDirectoryLookupType: lookupType, limitedDirectoryLookupValue: searchTerm },\r\n callbackToShowPopup);\r\n }\r\n\r\n searchLdapProtocolUser(configuration: DirectoryLookupConfiguration, lookupType: string, searchTerm: string,\r\n callbackToShowPopup: (message: string, title: string, onCloseDialogEvent: () => void) => void): void {\r\n this.search(\r\n configuration,\r\n { searchTerm },\r\n ApiEndpoints.directorySearch.searchLdapProtocolUser,\r\n (request, response) => `Result For User: \"${searchTerm}\"`,\r\n (request, response) => this.formatLdapProtocolUserHtml(response),\r\n PopupCodes.UserListForm.LdapProtocolLookup,\r\n { ldapProtocolLookupType: lookupType, ldapProtocolLookupValue: searchTerm },\r\n callbackToShowPopup);\r\n }\r\n\r\n searchLdapProtocolGroup(configuration: DirectoryLookupConfiguration, lookupType: string, searchTerm: string,\r\n callbackToShowPopup: (message: string, title: string, onCloseDialogEvent: () => void) => void): void {\r\n this.search(\r\n configuration,\r\n { searchTerm },\r\n ApiEndpoints.directorySearch.searchLdapProtocolGroup,\r\n (request, response) => `Result For Group: \"${searchTerm}\"`,\r\n (request, response) => this.formatLdapProtocolGroupHtml(response),\r\n PopupCodes.UserListForm.LdapProtocolLookup,\r\n { ldapProtocolLookupType: lookupType, ldapProtocolLookupValue: searchTerm },\r\n callbackToShowPopup);\r\n }\r\n\r\n searchLdapProtocolOrganisation(configuration: DirectoryLookupConfiguration, lookupType: string, searchTerm: string,\r\n callbackToShowPopup: (message: string, title: string, onCloseDialogEvent: () => void) => void): void {\r\n this.search(\r\n configuration,\r\n { searchTerm },\r\n ApiEndpoints.directorySearch.searchLdapProtocolOrganisation,\r\n (request, response) => `Result For Organisation: \"${searchTerm}\"`,\r\n (request, response) => this.formatLdapProtocolOrganisationHtml(response),\r\n PopupCodes.UserListForm.LdapProtocolLookup,\r\n { ldapProtocolLookupType: lookupType, ldapProtocolLookupValue: searchTerm },\r\n callbackToShowPopup);\r\n }\r\n\r\n searchLdapProtocolApplication(configuration: DirectoryLookupConfiguration, lookupType: string, searchTerm: string,\r\n callbackToShowPopup: (message: string, title: string, onCloseDialogEvent: () => void) => void): void {\r\n this.search(\r\n configuration,\r\n { searchTerm },\r\n ApiEndpoints.directorySearch.searchLdapProtocolApplication,\r\n (request, response) => `Result For Application: \"${searchTerm}\"`,\r\n (request, response) => this.formatLdapProtocolApplicationHtml(response),\r\n PopupCodes.UserListForm.LdapProtocolLookup,\r\n { ldapProtocolLookupType: lookupType, ldapProtocolLookupValue: searchTerm },\r\n callbackToShowPopup);\r\n }\r\n\r\n searchLdapScimUser(configuration: DirectoryLookupConfiguration, lookupType: string, onlyExactMatch: boolean, searchTerm: string,\r\n callbackToShowPopup: (message: string, title: string, onCloseDialogEvent: () => void) => void): void {\r\n this.search(\r\n configuration,\r\n { onlyExactMatch, searchTerm, includeGroupMemberships: lookupType === OptionSetCodes.UserListForm.LdapScimLookupType.ScimUserAndGroups },\r\n ApiEndpoints.directorySearch.searchLdapScimUser,\r\n (request, response) => `Result For User: \"${searchTerm}\"${onlyExactMatch ? ' (only exact match)' : ''}`,\r\n (request, response) => this.formatLdapScimUserHtml(response),\r\n PopupCodes.UserListForm.LdapScimLookup,\r\n { ldapScimLookupType: lookupType, ldapScimLookupOnlyExactMatch: onlyExactMatch, ldapScimLookupValue: searchTerm },\r\n callbackToShowPopup);\r\n }\r\n\r\n searchLdapScimGroup(configuration: DirectoryLookupConfiguration, lookupType: string, onlyExactMatch: boolean, searchTerm: string,\r\n callbackToShowPopup: (message: string, title: string, onCloseDialogEvent: () => void) => void): void {\r\n this.search(\r\n configuration,\r\n { onlyExactMatch, searchTerm },\r\n ApiEndpoints.directorySearch.searchLdapScimGroup,\r\n (request, response) => `Result For Group: \"${searchTerm}\"${onlyExactMatch ? ' (only exact match)' : ''}`,\r\n (request, response) => this.formatLdapScimGroupHtml(response),\r\n PopupCodes.UserListForm.LdapScimLookup,\r\n { ldapScimLookupType: lookupType, ldapScimLookupOnlyExactMatch: onlyExactMatch, ldapScimLookupValue: searchTerm },\r\n callbackToShowPopup);\r\n }\r\n\r\n private search(\r\n configuration: DirectoryLookupConfiguration,\r\n request: TRequest,\r\n apiEndpoint: string,\r\n formatResponseHeader: (request: TRequest, response: TResponse) => string,\r\n formatResponseMessage: (request: TRequest, response: TResponse) => string,\r\n popupCode: string,\r\n popupModel: any,\r\n callbackToShowPopup: (message: string, title: string, onCloseDialogEvent: () => void) => void): void {\r\n\r\n this.appDataService.post(apiEndpoint, request)\r\n .pipe(take(1))\r\n .subscribe((response: TResponse) => {\r\n if(callbackToShowPopup) {\r\n callbackToShowPopup(formatResponseMessage(request, response), formatResponseHeader(request, response), () => configuration?.onCloseLookup?.(popupCode, popupModel));\r\n }\r\n \r\n this.htmlHelperService.setFocusToHtmlElementByClassName('p-dialog-title');\r\n });\r\n }\r\n\r\n // Methods to format response DTOs into HTML\r\n\r\n private formatAzureAdUserLimitedHtml(response: SearchAzureAdUserLimitedResponse): string {\r\n\r\n const paragraphTag = 'p';\r\n const headerTag = 'h3';\r\n\r\n const user = this.htmlHelperService.toEncodedHtml(response);\r\n\r\n if (user?.errorMessage) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, user.errorMessage);\r\n }\r\n\r\n if (user?.matches?.length) {\r\n const message = 'Multiple users found' + (response.hasMoreMatches ? ` (showing only the first ${user.matches.length} results)`: ``);\r\n return this.htmlHelperService.formatHtml(paragraphTag, message) + this.formatAzureAdUserSummariesHtml(user.matches);\r\n }\r\n\r\n const userDetailsHtml = user?.userDetails\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'User Details') + this.formatAzureAdUserLimitedDetailsHtml(user.userDetails))\r\n : '';\r\n const ldapUserMatchHtml = user?.ldapUserMatch\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Matching LDAP Users') + this.formatLdapUserMatchHtml(user.ldapUserMatch))\r\n : '';\r\n\r\n return userDetailsHtml + ldapUserMatchHtml;\r\n }\r\n\r\n private formatAzureAdUserHtml(response: SearchAzureAdUserResponse): string {\r\n\r\n const paragraphTag = 'p';\r\n const headerTag = 'h3';\r\n const subHeaderTag = 'h4';\r\n\r\n const getUserGroupTitle = (item: SearchAzureAdGroup) => item?.displayName;\r\n const getUserAppRoleAssignmentTitle = (item: SearchAzureAdUserAppRoleAssignment) => `${item?.resourceDisplayName} - ${item?.appRoleId}`;\r\n\r\n const formatUserGroupsHtml = (userGroups: SearchAzureAdGroup[]) => this.collectionService.orderBy(userGroups, getUserGroupTitle)\r\n ?.map(userGroup => this.htmlHelperService.formatHtml(subHeaderTag, getUserGroupTitle(userGroup)) +\r\n this.formatAzureAdGroupDetailsHtml(userGroup))\r\n ?.join('');\r\n\r\n const formatUserAppRoleAssignmentsHtml = (userAppRoleAssignments: SearchAzureAdUserAppRoleAssignment[]) => this.collectionService.orderBy(userAppRoleAssignments, getUserAppRoleAssignmentTitle)\r\n ?.map(userAppRoleAssignment => this.htmlHelperService.formatHtml(subHeaderTag, getUserAppRoleAssignmentTitle(userAppRoleAssignment)) +\r\n this.formatAzureAdUserAppRoleAssignmentHtml(userAppRoleAssignment))\r\n ?.join('');\r\n\r\n const user = this.htmlHelperService.toEncodedHtml(response);\r\n\r\n if (user?.errorMessage) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, user.errorMessage);\r\n }\r\n\r\n if (user?.matches?.length) {\r\n const message = 'Multiple users found' + (response.hasMoreMatches ? ` (showing only the first ${user.matches.length} results)` : ``);\r\n return this.htmlHelperService.formatHtml(paragraphTag, message) + this.formatAzureAdUserSummariesHtml(user.matches);\r\n }\r\n\r\n const userDetailsHtml = user?.userDetails\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'User Details') + this.formatAzureAdUserDetailsHtml(user.userDetails))\r\n : '';\r\n const userGroupsHtml = user?.userGroups?.length\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Group Memberships') + formatUserGroupsHtml(user.userGroups))\r\n : '';\r\n const userAppRoleAssignmentsHtml = user?.userAppRoleAssignments?.length\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Direct Role Assignments') + formatUserAppRoleAssignmentsHtml(user.userAppRoleAssignments))\r\n : '';\r\n const ldapUserMatchHtml = user?.ldapUserMatch\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Matching LDAP Users') + this.formatLdapUserMatchHtml(user.ldapUserMatch))\r\n : '';\r\n\r\n return userDetailsHtml + userGroupsHtml + userAppRoleAssignmentsHtml + ldapUserMatchHtml;\r\n }\r\n\r\n private formatAzureAdGroupHtml(response: SearchAzureAdGroupResponse): string {\r\n\r\n const paragraphTag = 'p';\r\n const headerTag = 'h3';\r\n\r\n const group = this.htmlHelperService.toEncodedHtml(response);\r\n\r\n if (group?.errorMessage) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, group.errorMessage);\r\n }\r\n\r\n if (group?.matches?.length) {\r\n const message = 'Multiple groups found' + (response.hasMoreMatches ? ` (showing only the first ${group.matches.length} results)` : ``);\r\n return this.htmlHelperService.formatHtml(paragraphTag, message) + this.formatAzureAdGroupSummariesHtml(group.matches);\r\n }\r\n\r\n const groupDetailsHtml = group?.groupDetails\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Group Details') + this.formatAzureAdGroupDetailsHtml(group.groupDetails))\r\n : '';\r\n\r\n return groupDetailsHtml;\r\n }\r\n\r\n private formatAzureAdDomainHtml(response: SearchAzureAdDomainResponse): string {\r\n\r\n const paragraphTag = 'p';\r\n const headerTag = 'h3';\r\n\r\n const domain = this.htmlHelperService.toEncodedHtml(response);\r\n\r\n if (domain?.errorMessage) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, domain.errorMessage);\r\n }\r\n\r\n if (domain?.matches?.length) {\r\n const message = 'Multiple domains found' + (response.hasMoreMatches ? ` (showing only the first ${domain.matches.length} results)` : ``);\r\n return this.htmlHelperService.formatHtml(paragraphTag, message) + this.formatAzureAdDomainSummariesHtml(domain.matches);\r\n }\r\n\r\n const domainDetailsHtml = domain?.domainDetails\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Domain Details') + this.formatAzureAdDomainDetailsHtml(domain.domainDetails))\r\n : '';\r\n\r\n return domainDetailsHtml;\r\n }\r\n\r\n private formatLdapProtocolUserLimitedHtml(response: SearchLdapProtocolUserLimitedResponse): string {\r\n\r\n const paragraphTag = 'p';\r\n const headerTag = 'h3';\r\n\r\n const user = this.htmlHelperService.toEncodedHtml(response);\r\n\r\n if (user?.errorMessage) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, user.errorMessage);\r\n }\r\n\r\n if (user?.matches?.length) {\r\n const message = 'Multiple users found' + (response.hasMoreMatches ? ` (showing only the first ${user.matches.length} results)` : ``);\r\n return this.htmlHelperService.formatHtml(paragraphTag, message) + this.formatLdapProtocolUserSummariesHtml(user.matches);\r\n }\r\n\r\n const userDetailsHtml = user?.userDetails\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'User Details') + this.formatLdapProtocolUserLimitedDetailsHtml(user.userDetails))\r\n : '';\r\n const azureAdUserMatchHtml = user?.azureAdUserMatch\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Matching Microsoft Entra ID Users') + this.formatAzureAdUserMatchHtml(user.azureAdUserMatch))\r\n : '';\r\n\r\n return userDetailsHtml + azureAdUserMatchHtml;\r\n }\r\n\r\n private formatLdapProtocolUserHtml(response: SearchLdapProtocolUserResponse): string {\r\n\r\n const paragraphTag = 'p';\r\n const headerTag = 'h3';\r\n const subHeaderTag = 'h4';\r\n\r\n const getUserGroupTitle = (item: SearchLdapProtocolGroup) => item?.cn;\r\n const getUserSecurityTitle = (item: SearchLdapProtocolUserSecurity) => item?.secAuthority;\r\n const getUserOrganisationRoleTitle = (item: SearchLdapProtocolUserOrganisationRole) => item?.dhsOrgRoleId;\r\n\r\n const formatUserSecuritiesHtml = (userSecurities: SearchLdapProtocolUserSecurity[]) => this.collectionService.orderBy(userSecurities, getUserSecurityTitle)\r\n ?.map(userSecurity => this.htmlHelperService.formatHtml(subHeaderTag, getUserSecurityTitle(userSecurity)) +\r\n this.formatLdapProtocolUserSecurityHtml(userSecurity))\r\n ?.join('');\r\n\r\n const formatUserOrganisationRolesHtml = (userOrganisationRoles: SearchLdapProtocolUserOrganisationRole[]) => this.collectionService.orderBy(userOrganisationRoles, getUserOrganisationRoleTitle)\r\n ?.map(userOrganisationRole => this.htmlHelperService.formatHtml(subHeaderTag, getUserOrganisationRoleTitle(userOrganisationRole)) +\r\n this.formatLdapProtocolUserOrganisationRoleHtml(userOrganisationRole))\r\n ?.join('');\r\n\r\n const formatUserGroupsHtml = (userGroups: SearchLdapProtocolGroup[]) => this.collectionService.orderBy(userGroups, getUserGroupTitle)\r\n ?.map(userGroup => this.htmlHelperService.formatHtml(subHeaderTag, getUserGroupTitle(userGroup)) +\r\n this.formatLdapProtocolGroupDetailsHtml(userGroup))\r\n ?.join('');\r\n\r\n const user = this.htmlHelperService.toEncodedHtml(response);\r\n\r\n if (user?.errorMessage) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, user.errorMessage);\r\n }\r\n\r\n if (user?.matches?.length) {\r\n const message = 'Multiple users found' + (response.hasMoreMatches ? ` (showing only the first ${user.matches.length} results)` : ``);\r\n return this.htmlHelperService.formatHtml(paragraphTag, message) + this.formatLdapProtocolUserSummariesHtml(user.matches);\r\n }\r\n\r\n const warningMessageHtml = user?.warningMessage\r\n ? this.htmlHelperService.formatHtml(paragraphTag, user.warningMessage)\r\n : '';\r\n const userDetailsHtml = user?.userDetails\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'User Details') + this.formatLdapProtocolUserDetailsHtml(user.userDetails))\r\n : '';\r\n const userSecuritiesHtml = user?.userSecurities?.length\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'User Security Configurations') + formatUserSecuritiesHtml(user.userSecurities))\r\n : '';\r\n const userOrganisationRolesHtml = user?.userOrganisationRoles?.length\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'User Organisation Roles') + formatUserOrganisationRolesHtml(user.userOrganisationRoles))\r\n : '';\r\n const userGroupsHtml = user?.userGroups?.length\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Group Memberships') + formatUserGroupsHtml(user.userGroups))\r\n : '';\r\n const azureAdUserMatchHtml = user?.azureAdUserMatch\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Matching Microsoft Entra ID Users') + this.formatAzureAdUserMatchHtml(user.azureAdUserMatch))\r\n : '';\r\n\r\n return warningMessageHtml + userDetailsHtml + userSecuritiesHtml + userOrganisationRolesHtml + userGroupsHtml + azureAdUserMatchHtml;\r\n }\r\n\r\n private formatLdapProtocolGroupHtml(response: SearchLdapProtocolGroupResponse): string {\r\n\r\n const paragraphTag = 'p';\r\n const headerTag = 'h3';\r\n const subHeaderTag = 'h4';\r\n\r\n const getGroupApplicationTitle = (item: SearchLdapProtocolApplication) => item?.dhsAppNameId;\r\n const getGroupApplicationRoleTitle = (item: SearchLdapProtocolApplicationRole) => `${item?.parentDhsAppNameId} - ${item?.dhsApplicationRoleName}`;\r\n\r\n const formatGroupApplicationsHtml = (groupApplications: SearchLdapProtocolApplication[]) => this.collectionService.orderBy(groupApplications, getGroupApplicationTitle)\r\n ?.map(groupApplication => this.htmlHelperService.formatHtml(subHeaderTag, getGroupApplicationTitle(groupApplication)) +\r\n this.formatLdapProtocolApplicationDetailsHtml(groupApplication))\r\n ?.join('');\r\n\r\n const formatGroupApplicationRolesHtml = (groupApplicationRoles: SearchLdapProtocolApplicationRole[]) => this.collectionService.orderBy(groupApplicationRoles, getGroupApplicationRoleTitle)\r\n ?.map(groupApplicationRole => this.htmlHelperService.formatHtml(subHeaderTag, getGroupApplicationRoleTitle(groupApplicationRole)) +\r\n this.formatLdapProtocolApplicationRoleHtml(groupApplicationRole))\r\n ?.join('');\r\n\r\n const group = this.htmlHelperService.toEncodedHtml(response);\r\n\r\n if (group?.errorMessage) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, group.errorMessage);\r\n }\r\n\r\n if (group?.matches?.length) {\r\n const message = 'Multiple groups found' + (response.hasMoreMatches ? ` (showing only the first ${group.matches.length} results)` : ``);\r\n return this.htmlHelperService.formatHtml(paragraphTag, message) + this.formatLdapProtocolGroupSummariesHtml(group.matches);\r\n }\r\n\r\n const warningMessageHtml = group?.warningMessage\r\n ? this.htmlHelperService.formatHtml(paragraphTag, group.warningMessage)\r\n : '';\r\n const groupDetailsHtml = group?.groupDetails\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Group Details') + this.formatLdapProtocolGroupDetailsHtml(group.groupDetails))\r\n : '';\r\n const groupApplicationsHtml = group?.groupApplications?.length\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Associated Applications') + formatGroupApplicationsHtml(group.groupApplications))\r\n : '';\r\n const groupApplicationRolesHtml = group?.groupApplicationRoles?.length\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Associated Application Roles') + formatGroupApplicationRolesHtml(group.groupApplicationRoles))\r\n : '';\r\n\r\n return warningMessageHtml + groupDetailsHtml + groupApplicationsHtml + groupApplicationRolesHtml;\r\n }\r\n\r\n private formatLdapProtocolOrganisationHtml(response: SearchLdapProtocolOrganisationResponse): string {\r\n\r\n const paragraphTag = 'p';\r\n const headerTag = 'h3';\r\n const subHeaderTag = 'h4';\r\n\r\n const getOrganisationApplicationTitle = (item: SearchLdapProtocolApplication) => item?.dhsAppNameId;\r\n const getOrganisationSubOrganisationTitle = (item: SearchLdapProtocolOrganisation) => item?.dhsOrgNameId;\r\n\r\n const formatOrganisationApplicationsHtml = (organisationApplications: SearchLdapProtocolApplication[]) => this.collectionService.orderBy(organisationApplications, getOrganisationApplicationTitle)\r\n ?.map(organisationApplication => this.htmlHelperService.formatHtml(subHeaderTag, getOrganisationApplicationTitle(organisationApplication)) +\r\n this.formatLdapProtocolApplicationDetailsHtml(organisationApplication))\r\n ?.join('');\r\n\r\n const formatOrganisationSubOrganisationsHtml = (organisationSubOrganisations: SearchLdapProtocolOrganisation[]) => this.collectionService.orderBy(organisationSubOrganisations, getOrganisationSubOrganisationTitle)\r\n ?.map(organisationSubOrganisation => this.htmlHelperService.formatHtml(subHeaderTag, getOrganisationSubOrganisationTitle(organisationSubOrganisation)) +\r\n this.formatLdapProtocolOrganisationDetailsHtml(organisationSubOrganisation))\r\n ?.join('');\r\n\r\n const organisation = this.htmlHelperService.toEncodedHtml(response);\r\n\r\n if (organisation?.errorMessage) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, organisation.errorMessage);\r\n }\r\n\r\n if (organisation?.matches?.length) {\r\n const message = 'Multiple organisations found' + (response.hasMoreMatches ? ` (showing only the first ${organisation.matches.length} results)` : ``);\r\n return this.htmlHelperService.formatHtml(paragraphTag, message) + this.formatLdapProtocolOrganisationSummariesHtml(organisation.matches);\r\n }\r\n\r\n const warningMessageHtml = organisation?.warningMessage\r\n ? this.htmlHelperService.formatHtml(paragraphTag, organisation.warningMessage)\r\n : '';\r\n const organisationDetailsHtml = organisation?.organisationDetails\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Organisation Details') + this.formatLdapProtocolOrganisationDetailsHtml(organisation.organisationDetails))\r\n : '';\r\n const organisationApplicationsHtml = organisation?.organisationApplications?.length\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Owned Applications') + formatOrganisationApplicationsHtml(organisation.organisationApplications))\r\n : '';\r\n const organisationSubOrganisationsHtml = organisation?.organisationSubOrganisations?.length\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Sub-Organisations') + formatOrganisationSubOrganisationsHtml(organisation.organisationSubOrganisations))\r\n : '';\r\n\r\n return warningMessageHtml + organisationDetailsHtml + organisationApplicationsHtml + organisationSubOrganisationsHtml;\r\n }\r\n\r\n private formatLdapProtocolApplicationHtml(response: SearchLdapProtocolApplicationResponse): string {\r\n\r\n const paragraphTag = 'p';\r\n const headerTag = 'h3';\r\n const subHeaderTag = 'h4';\r\n\r\n const getApplicationRoleTitle = (item: SearchLdapProtocolApplicationRole) => item?.dhsApplicationRoleName;\r\n const getApplicationInvocationMethodTitle = (item: SearchLdapProtocolApplicationInvocationMethod) => item?.dhsInvocationMethod;\r\n\r\n const formatApplicationRolesHtml = (applicationRoles: SearchLdapProtocolApplicationRole[]) => this.collectionService.orderBy(applicationRoles, getApplicationRoleTitle)\r\n ?.map(applicationRole => this.htmlHelperService.formatHtml(subHeaderTag, getApplicationRoleTitle(applicationRole)) +\r\n this.formatLdapProtocolApplicationRoleHtml(applicationRole))\r\n ?.join('');\r\n\r\n const formatApplicationInvocationMethodsHtml = (applicationInvocationMethods: SearchLdapProtocolApplicationInvocationMethod[]) => this.collectionService.orderBy(applicationInvocationMethods, getApplicationInvocationMethodTitle)\r\n ?.map(applicationInvocationMethod => this.htmlHelperService.formatHtml(subHeaderTag, getApplicationInvocationMethodTitle(applicationInvocationMethod)) +\r\n this.formatLdapProtocolApplicationInvocationMethodHtml(applicationInvocationMethod))\r\n ?.join('');\r\n\r\n const application = this.htmlHelperService.toEncodedHtml(response);\r\n\r\n if (application?.errorMessage) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, application.errorMessage);\r\n }\r\n\r\n if (application?.matches?.length) {\r\n const message = 'Multiple applications found' + (response.hasMoreMatches ? ` (showing only the first ${application.matches.length} results)` : ``);\r\n return this.htmlHelperService.formatHtml(paragraphTag, message) + this.formatLdapProtocolApplicationSummariesHtml(application.matches);\r\n }\r\n\r\n const warningMessageHtml = application?.warningMessage\r\n ? this.htmlHelperService.formatHtml(paragraphTag, application.warningMessage)\r\n : '';\r\n const applicationDetailsHtml = application?.applicationDetails\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Application Details') + this.formatLdapProtocolApplicationDetailsHtml(application.applicationDetails))\r\n : '';\r\n const applicationRolesHtml = application?.applicationRoles?.length\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Application Roles') + formatApplicationRolesHtml(application.applicationRoles))\r\n : '';\r\n const applicationInvocationMethodsHtml = application?.applicationInvocationMethods?.length\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Application Invocation Methods') + formatApplicationInvocationMethodsHtml(application.applicationInvocationMethods))\r\n : '';\r\n\r\n return warningMessageHtml + applicationDetailsHtml + applicationRolesHtml + applicationInvocationMethodsHtml;\r\n }\r\n\r\n private formatLdapScimUserHtml(response: SearchLdapScimUserResponse): string {\r\n\r\n const paragraphTag = 'p';\r\n const headerTag = 'h3';\r\n\r\n const formatUserDetailsHtml = (userDetails: SearchLdapScimObject) => this.formatScimObjectsHtml([userDetails]);\r\n\r\n const formatUserGroupsHtml = (userGroups: SearchLdapScimObject[]) => this.formatScimObjectsHtml(userGroups);\r\n\r\n const user = this.htmlHelperService.toEncodedHtml(response);\r\n\r\n if (user?.errorMessage) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, user.errorMessage);\r\n }\r\n\r\n if (user?.matches?.length) {\r\n const message = 'Multiple users found' + (response.hasMoreMatches ? ` (showing only the first ${user.matches.length} results)` : ``);\r\n return this.htmlHelperService.formatHtml(paragraphTag, message) + this.formatLdapScimUserSummariesHtml(user.matches);\r\n }\r\n\r\n const warningMessageHtml = user?.warningMessage\r\n ? this.htmlHelperService.formatHtml(paragraphTag, user.warningMessage)\r\n : '';\r\n const userDetailsHtml = user?.userDetails\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'User Details') + formatUserDetailsHtml(user.userDetails))\r\n : '';\r\n const userGroupsHtml = user?.userGroups?.length\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Group Memberships') + formatUserGroupsHtml(user.userGroups))\r\n : '';\r\n\r\n return warningMessageHtml + userDetailsHtml + userGroupsHtml;\r\n }\r\n\r\n private formatLdapScimGroupHtml(response: SearchLdapScimGroupResponse): string {\r\n\r\n const paragraphTag = 'p';\r\n const headerTag = 'h3';\r\n\r\n const formatGroupDetailsHtml = (groupDetails: SearchLdapScimObject) => this.formatScimObjectsHtml([groupDetails]);\r\n\r\n const group = this.htmlHelperService.toEncodedHtml(response);\r\n\r\n if (group?.errorMessage) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, group.errorMessage);\r\n }\r\n\r\n const groupDetailsHtml = group?.groupDetails\r\n ? (this.htmlHelperService.formatHtml(headerTag, 'Group Details') + formatGroupDetailsHtml(group.groupDetails))\r\n : '';\r\n\r\n if (group?.matches?.length) {\r\n const message = 'Multiple groups found' + (response.hasMoreMatches ? ` (showing only the first ${group.matches.length} results)` : ``);\r\n return this.htmlHelperService.formatHtml(paragraphTag, message) + this.formatLdapScimGroupSummariesHtml(group.matches);\r\n }\r\n\r\n return groupDetailsHtml;\r\n }\r\n\r\n // Methods to format single DTOs into HTML\r\n\r\n private formatAzureAdUserLimitedDetailsHtml(userDetails: SearchAzureAdUserLimited): string {\r\n\r\n const userDetailsHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'mail'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'givenName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'surname'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'onPremisesSamAccountName'),\r\n this.htmlHelperService.createField('otherMails', this.htmlHelperService.formatFieldValues(userDetails.otherMails)),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'displayName'),\r\n this.htmlHelperService.createField('businessPhones', this.htmlHelperService.formatFieldValues(userDetails.businessPhones)),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'mobilePhone'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'accountEnabled'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'companyName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'department'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'jobTitle'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'userPrincipalName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'userType'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'id')\r\n ]);\r\n\r\n return userDetailsHtml;\r\n }\r\n\r\n private formatAzureAdUserDetailsHtml(userDetails: SearchAzureAdUser): string {\r\n\r\n const getUserIdentityTitle = (item: SearchAzureAdUserIdentity) => item?.issuer;\r\n\r\n const formatUserIdentitiesHtml = (userIdentities: SearchAzureAdUserIdentity[]) => this.htmlHelperService.formatFields(\r\n this.collectionService.orderBy(userIdentities, getUserIdentityTitle)\r\n ?.map(userIdentity => this.htmlHelperService.createField(getUserIdentityTitle(userIdentity), this.formatAzureAdUserIdentityHtml(userIdentity))));\r\n\r\n const userDetailsHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'accountEnabled'),\r\n this.htmlHelperService.createField('businessPhones', this.htmlHelperService.formatFieldValues(userDetails.businessPhones)),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'companyName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'createdDateTime'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'creationType'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'deletedDateTime'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'department'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'displayName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'externalUserState'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'externalUserStateChangeDateTime'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'givenName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'id'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'jobTitle'),\r\n this.htmlHelperService.createField('identities', formatUserIdentitiesHtml(userDetails.identities)),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'lastPasswordChangeDateTime'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'mail'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'mobilePhone'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'onPremisesDistinguishedName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'onPremisesDomainName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'onPremisesImmutableId'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'onPremisesLastSyncDateTime'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'onPremisesSamAccountName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'onPremisesSecurityIdentifier'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'onPremisesSyncEnabled'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'onPremisesUserPrincipalName'),\r\n this.htmlHelperService.createField('otherMails', this.htmlHelperService.formatFieldValues(userDetails.otherMails)),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'securityIdentifier'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'surname'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'userPrincipalName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'userType')\r\n ]);\r\n\r\n return userDetailsHtml;\r\n }\r\n\r\n private formatAzureAdUserIdentityHtml(userIdentity: SearchAzureAdUserIdentity): string {\r\n\r\n const userIdentityHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(userIdentity, 'issuer'),\r\n this.htmlHelperService.createFieldFromPropertyName(userIdentity, 'issuerAssignedId'),\r\n this.htmlHelperService.createFieldFromPropertyName(userIdentity, 'signInType')\r\n ]);\r\n\r\n return userIdentityHtml\r\n }\r\n\r\n private formatAzureAdUserAppRoleAssignmentHtml(userAppRoleAssignment: SearchAzureAdUserAppRoleAssignment): string {\r\n\r\n const userAppRoleAssignmentHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(userAppRoleAssignment, 'appRoleId'),\r\n this.htmlHelperService.createFieldFromPropertyName(userAppRoleAssignment, 'createdDateTime'),\r\n this.htmlHelperService.createFieldFromPropertyName(userAppRoleAssignment, 'id'),\r\n this.htmlHelperService.createFieldFromPropertyName(userAppRoleAssignment, 'resourceDisplayName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userAppRoleAssignment, 'resourceId')\r\n ]);\r\n\r\n return userAppRoleAssignmentHtml;\r\n }\r\n\r\n private formatAzureAdGroupDetailsHtml(groupDetails: SearchAzureAdGroup): string {\r\n\r\n const groupDetailsHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(groupDetails, 'createdDateTime'),\r\n this.htmlHelperService.createFieldFromPropertyName(groupDetails, 'description'),\r\n this.htmlHelperService.createFieldFromPropertyName(groupDetails, 'displayName'),\r\n this.htmlHelperService.createField('groupTypes', this.htmlHelperService.formatFieldValues(groupDetails?.groupTypes)),\r\n this.htmlHelperService.createFieldFromPropertyName(groupDetails, 'id'),\r\n this.htmlHelperService.createFieldFromPropertyName(groupDetails, 'membershipRule'),\r\n this.htmlHelperService.createFieldFromPropertyName(groupDetails, 'membershipRuleProcessingState')\r\n ]);\r\n\r\n return groupDetailsHtml;\r\n }\r\n\r\n private formatAzureAdDomainDetailsHtml(domainDetails: SearchAzureAdDomain): string {\r\n\r\n const domainDetailsHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(domainDetails, 'authenticationType'),\r\n this.htmlHelperService.createFieldFromPropertyName(domainDetails, 'availabilityStatus'),\r\n this.htmlHelperService.createFieldFromPropertyName(domainDetails, 'id'),\r\n this.htmlHelperService.createFieldFromPropertyName(domainDetails, 'isAdminManaged'),\r\n this.htmlHelperService.createFieldFromPropertyName(domainDetails, 'isDefault'),\r\n this.htmlHelperService.createFieldFromPropertyName(domainDetails, 'isInitial'),\r\n this.htmlHelperService.createFieldFromPropertyName(domainDetails, 'isRoot'),\r\n this.htmlHelperService.createFieldFromPropertyName(domainDetails, 'isVerified'),\r\n this.htmlHelperService.createFieldFromPropertyName(domainDetails, 'passwordNotificationWindowInDays'),\r\n this.htmlHelperService.createFieldFromPropertyName(domainDetails, 'passwordValidityPeriodInDays'),\r\n this.htmlHelperService.createField('supportedServices', this.htmlHelperService.formatFieldValues(domainDetails?.supportedServices))\r\n ]);\r\n\r\n return domainDetailsHtml;\r\n }\r\n\r\n private formatLdapProtocolUserLimitedDetailsHtml(userDetails: SearchLdapProtocolUserLimited): string {\r\n\r\n const userDetailsHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'mail'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'dhsDominoDisplayName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'givenName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'sn'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'cn'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'uniqueIdentifier'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'dhsPreferredName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'middleName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'telephoneNumber'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'mobile'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'dhsUserType'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'personalTitle'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'uId')\r\n ]);\r\n\r\n return userDetailsHtml\r\n }\r\n\r\n private formatLdapProtocolUserDetailsHtml(userDetails: SearchLdapProtocolUser): string {\r\n\r\n const userDetailsHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'cn'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'dhsDominoDisplayName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'dhsLastAccess'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'dhsPreferredName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'dhsUserType'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'distinguishedName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'givenName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'mail'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'middleName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'mobile'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'objectClass'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'organizationalStatus'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'personalTitle'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'sn'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'telephoneNumber'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'uId'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'uniqueIdentifier'),\r\n this.htmlHelperService.createFieldFromPropertyName(userDetails, 'userPassword')\r\n ]);\r\n\r\n return userDetailsHtml;\r\n }\r\n\r\n private formatLdapProtocolUserSecurityHtml(userSecurity: SearchLdapProtocolUserSecurity): string {\r\n\r\n const userSecurityHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(userSecurity, 'distinguishedName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userSecurity, 'objectClass'),\r\n this.htmlHelperService.createFieldFromPropertyName(userSecurity, 'principalName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userSecurity, 'secAcctValid'),\r\n this.htmlHelperService.createFieldFromPropertyName(userSecurity, 'secAuthority'),\r\n this.htmlHelperService.createFieldFromPropertyName(userSecurity, 'secHasPolicy'),\r\n this.htmlHelperService.createFieldFromPropertyName(userSecurity, 'secLoginType'),\r\n this.htmlHelperService.createFieldFromPropertyName(userSecurity, 'secPwdLastChanged'),\r\n this.htmlHelperService.createFieldFromPropertyName(userSecurity, 'secPwdValid'),\r\n this.htmlHelperService.createFieldFromPropertyName(userSecurity, 'secUuid')\r\n ]);\r\n\r\n return userSecurityHtml;\r\n }\r\n\r\n private formatLdapProtocolUserOrganisationRoleHtml(userOrganisationRole: SearchLdapProtocolUserOrganisationRole): string {\r\n\r\n const userOrganisationRoleHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(userOrganisationRole, 'description'),\r\n this.htmlHelperService.createFieldFromPropertyName(userOrganisationRole, 'dhsOrganisationId'),\r\n this.htmlHelperService.createFieldFromPropertyName(userOrganisationRole, 'dhsOrgRoleId'),\r\n this.htmlHelperService.createFieldFromPropertyName(userOrganisationRole, 'dhsOrgRoleType'),\r\n this.htmlHelperService.createFieldFromPropertyName(userOrganisationRole, 'distinguishedName'),\r\n this.htmlHelperService.createFieldFromPropertyName(userOrganisationRole, 'employeeNumber'),\r\n this.htmlHelperService.createFieldFromPropertyName(userOrganisationRole, 'mail'),\r\n this.htmlHelperService.createFieldFromPropertyName(userOrganisationRole, 'objectClass'),\r\n this.htmlHelperService.createFieldFromPropertyName(userOrganisationRole, 'telephoneNumber')\r\n ]);\r\n\r\n return userOrganisationRoleHtml;\r\n }\r\n\r\n private formatLdapProtocolGroupDetailsHtml(groupDetails: SearchLdapProtocolGroup): string {\r\n\r\n const groupDetailsHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(groupDetails, 'cn'),\r\n this.htmlHelperService.createFieldFromPropertyName(groupDetails, 'description'),\r\n this.htmlHelperService.createFieldFromPropertyName(groupDetails, 'distinguishedName'),\r\n this.htmlHelperService.createFieldFromPropertyName(groupDetails, 'objectClass')\r\n ]);\r\n\r\n return groupDetailsHtml;\r\n }\r\n\r\n private formatLdapProtocolOrganisationDetailsHtml(organisationDetails: SearchLdapProtocolOrganisation): string {\r\n\r\n const organisationDetailsHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'c'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'city'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsAddressLine1'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsAddressLine2'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsAddressLine3'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsAddressLine4'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsAlternateOrganisationNames'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsDhsRelationship'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsFundingRegion'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsLocationRegion'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsOrganisationClass'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsOrganisationId'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsOrganisationSector'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsOrganisationType'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsOrganisationWebUrl'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsOrgAustralianBusinessNumber'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsOrgClosureDate'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsOrgNameId'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsOrgServiceTypes'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsParentOrganisationId'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsPostalAddressLine1'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsPostalAddressLine2'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsPostalAddressLine3'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsPostalAddressLine4'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsPostalCity'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsPostalCountry'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsPostalPostalCode'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsPostalState'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsPreviousNames'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsPrimOrgAuth'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsSamsAgencyNumber'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsSecOrgAuth'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'dhsServiceRegion'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'distinguishedName'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'facsimileTelephoneNumber'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'mail'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'o'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'objectClass'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'postalCode'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'st'),\r\n this.htmlHelperService.createFieldFromPropertyName(organisationDetails, 'telephoneNumber')\r\n ]);\r\n\r\n return organisationDetailsHtml;\r\n }\r\n\r\n private formatLdapProtocolApplicationDetailsHtml(applicationDetails: SearchLdapProtocolApplication): string {\r\n\r\n const applicationDetailsHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'description'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsAllowedUserTypes'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsAlternateApplicationNames'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsAppCategory'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsAppDefaultDisplay'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsAppDeployNumber'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsAppLdapGrp'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsApplicationDDate'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsApplicationEnvironment'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsApplicationGraphicUrl'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsApplicationName'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsApplicationSecurityIndicator'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsApplicationType'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsApplicationUrl'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsApplicationVersion'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsAppNameId'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsAppStatus'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsOrganisationId'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsPrimAppAdm'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'dhsSecAppAdm'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'distinguishedName'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationDetails, 'objectClass')\r\n ]);\r\n\r\n return applicationDetailsHtml;\r\n }\r\n\r\n private formatLdapProtocolApplicationRoleHtml(applicationRole: SearchLdapProtocolApplicationRole): string {\r\n\r\n const applicationRoleHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(applicationRole, 'description'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationRole, 'dhsAppLdapGrp'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationRole, 'dhsApplicationRoleName'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationRole, 'dhsAppRoleManager'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationRole, 'distinguishedName'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationRole, 'objectClass')\r\n ]);\r\n\r\n return applicationRoleHtml;\r\n }\r\n\r\n private formatLdapProtocolApplicationInvocationMethodHtml(applicationInvocationMethod: SearchLdapProtocolApplicationInvocationMethod): string {\r\n\r\n const applicationInvocationMethodHtml = this.htmlHelperService.formatFields([\r\n this.htmlHelperService.createFieldFromPropertyName(applicationInvocationMethod, 'description'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationInvocationMethod, 'dhsAppDisplayName'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationInvocationMethod, 'dhsAppExtProvision'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationInvocationMethod, 'dhsApplicationGraphicUrl'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationInvocationMethod, 'dhsInvocationCategory'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationInvocationMethod, 'dhsInvocationCommand'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationInvocationMethod, 'dhsInvocationMethod'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationInvocationMethod, 'dhsInvocationParameter'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationInvocationMethod, 'distinguishedName'),\r\n this.htmlHelperService.createFieldFromPropertyName(applicationInvocationMethod, 'objectClass')\r\n ]);\r\n\r\n return applicationInvocationMethodHtml;\r\n }\r\n\r\n private formatScimObjectsHtml(scimObjects: SearchLdapScimObject[]): string {\r\n\r\n const preformattedTag = 'pre';\r\n\r\n const scimObjectHtml = this.htmlHelperService.formatHtml(preformattedTag, JSON.stringify(scimObjects.map(scimObject => JSON.parse(scimObject.jsonObject)), null, 2));\r\n\r\n return scimObjectHtml;\r\n }\r\n\r\n // Methods to format multiple results into HTML\r\n\r\n private formatAzureAdUserMatchHtml(azureAdUserMatch: SearchAzureAdUsersByMatchingLdapUserResponse): string {\r\n\r\n const paragraphTag = 'p';\r\n\r\n if (azureAdUserMatch.errorMessage) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, azureAdUserMatch.errorMessage);\r\n }\r\n\r\n if ((azureAdUserMatch.users?.length ?? 0) <= 0) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, 'No matches found');\r\n }\r\n\r\n const azureAdUserMatchHtml = this.formatAzureAdUserSummariesHtml(azureAdUserMatch.users);\r\n\r\n return azureAdUserMatchHtml;\r\n };\r\n\r\n private formatAzureAdUserSummariesHtml(userSummaries: SearchAzureAdUserSummary[]): string {\r\n\r\n const userSummariesHtml = this.htmlHelperService.formatHtmlTable(\r\n ['mail / userPrincipalName', 'displayName', 'givenName', 'surname', 'otherMails', 'onPremisesSamAccountName', 'userType'],\r\n this.collectionService.orderBy(userSummaries, u => (u.mail ?? u.userPrincipalName ?? '').toUpperCase())\r\n .map(u => [u.mail ?? u.userPrincipalName, u.displayName, u.givenName, u.surname, u.otherMails?.join('; '), u.onPremisesSamAccountName, u.userType]));\r\n\r\n return userSummariesHtml;\r\n }\r\n\r\n private formatAzureAdGroupSummariesHtml(groupSummaries: SearchAzureAdGroupSummary[]): string {\r\n\r\n const groupSummariesHtml = this.htmlHelperService.formatHtmlTable(\r\n ['displayName', 'description'],\r\n this.collectionService.orderBy(groupSummaries, g => (g.displayName ?? '').toUpperCase())\r\n .map(g => [g.displayName, g.description]));\r\n\r\n return groupSummariesHtml;\r\n }\r\n\r\n private formatAzureAdDomainSummariesHtml(domainSummaries: SearchAzureAdDomainSummary[]): string {\r\n\r\n const domainSummariesHtml = this.htmlHelperService.formatHtmlTable(\r\n ['id'],\r\n this.collectionService.orderBy(domainSummaries, d => (d.id ?? '').toUpperCase())\r\n .map(d => [d.id]));\r\n\r\n return domainSummariesHtml;\r\n }\r\n\r\n private formatLdapUserMatchHtml(ldapUserMatch: SearchLdapProtocolUsersByMatchingAzureAdUserResponse): string {\r\n\r\n const paragraphTag = 'p';\r\n\r\n if (ldapUserMatch.errorMessage) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, ldapUserMatch.errorMessage);\r\n }\r\n\r\n if ((ldapUserMatch.users?.length ?? 0) <= 0) {\r\n return this.htmlHelperService.formatHtml(paragraphTag, 'No matches found');\r\n }\r\n\r\n const ldapUserMatchHtml = this.formatLdapProtocolUserSummariesHtml(ldapUserMatch.users);\r\n\r\n return ldapUserMatchHtml;\r\n };\r\n\r\n private formatLdapProtocolUserSummariesHtml(userSummaries: SearchLdapProtocolUserSummary[]): string {\r\n\r\n const userSummariesHtml = this.htmlHelperService.formatHtmlTable(\r\n ['mail', 'dhsDominoDisplayName', 'givenName', 'sn', 'cn', 'uniqueIdentifier'],\r\n this.collectionService.orderBy(userSummaries, u => (u.mail ?? '').toUpperCase())\r\n .map(u => [u.mail, u.dhsDominoDisplayName, u.givenName, u.sn, u.cn, u.uniqueIdentifier]));\r\n\r\n return userSummariesHtml;\r\n }\r\n\r\n private formatLdapProtocolGroupSummariesHtml(groupSummaries: SearchLdapProtocolGroupSummary[]): string {\r\n\r\n const groupSummariesHtml = this.htmlHelperService.formatHtmlTable(\r\n ['description', 'cn'],\r\n this.collectionService.orderBy(groupSummaries, g => (g.description ?? '').toUpperCase())\r\n .map(g => [g.description, g.cn]));\r\n\r\n return groupSummariesHtml;\r\n }\r\n\r\n private formatLdapProtocolOrganisationSummariesHtml(organisationSummaries: SearchLdapProtocolOrganisationSummary[]): string {\r\n\r\n const organisationSummariesHtml = this.htmlHelperService.formatHtmlTable(\r\n ['o', 'dhsOrgNameId', 'dhsOrganisationId'],\r\n this.collectionService.orderBy(organisationSummaries, o => (o.o ?? '').toUpperCase())\r\n .map(o => [o.o, o.dhsOrgNameId, o.dhsOrganisationId]));\r\n\r\n return organisationSummariesHtml;\r\n }\r\n\r\n private formatLdapProtocolApplicationSummariesHtml(applicationSummaries: SearchLdapProtocolApplicationSummary[]): string {\r\n\r\n const applicationSummariesHtml = this.htmlHelperService.formatHtmlTable(\r\n ['dhsApplicationName', 'dhsAppNameId', 'description'],\r\n this.collectionService.orderBy(applicationSummaries, a => (a.dhsApplicationName ?? '').toUpperCase())\r\n .map(a => [a.dhsApplicationName, a.dhsAppNameId, a.description]));\r\n\r\n return applicationSummariesHtml;\r\n }\r\n\r\n private formatLdapScimUserSummariesHtml(userSummaries: SearchLdapScimUserSummary[]): string {\r\n\r\n const userSummariesHtml = this.htmlHelperService.formatHtmlTable(\r\n ['email', 'dhsDominoDisplayName', 'givenName', 'familyName', 'userName', 'uniqueIdentifier'],\r\n this.collectionService.orderBy(userSummaries, u => (u.email ?? '').toUpperCase())\r\n .map(u => [u.email, u.dhsDominoDisplayName, u.givenName, u.familyName, u.userName, u.uniqueIdentifier]));\r\n\r\n return userSummariesHtml;\r\n }\r\n\r\n private formatLdapScimGroupSummariesHtml(groupSummaries: SearchLdapScimGroupSummary[]): string {\r\n\r\n const groupSummariesHtml = this.htmlHelperService.formatHtmlTable(\r\n ['displayName'],\r\n this.collectionService.orderBy(groupSummaries, g => (g.displayName ?? '').toUpperCase())\r\n .map(g => [g.displayName]));\r\n\r\n return groupSummariesHtml;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpErrorResponse } from \"@angular/common/http\";\r\n\r\nimport { catchError, EMPTY, OperatorFunction, throwError } from \"rxjs\";\r\n\r\nimport { DialogService, SpinnerService } from \"dspx-core\";\r\n\r\nimport { RequestSaveResultStatus } from \"../constants/request-save-result-status\";\r\n\r\nimport { PopupInfo } from \"../interfaces/popup-info.interface\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorService {\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private spinnerService: SpinnerService) {\r\n }\r\n\r\n public errorHandler(customErrorPopups?: Map): OperatorFunction {\r\n return catchError((error: HttpErrorResponse) => {\r\n\r\n this.spinnerService.hideSpinner();\r\n\r\n // Custom handling of form validation errors\r\n if (error?.error?.StatusCode === 400 && error?.error?.Message) {\r\n const message = this.serverValidationErrorsToHtml(error?.error?.Message);\r\n this.dialogService.showSimplePopup(message, 'Unable to continue', 'OK');\r\n return EMPTY;\r\n }\r\n\r\n // Remapping error codes from strings to numbers (e.g. 'UpdatedSinceReadTime' => 2).\r\n // This is because the global error handler expects the numerical codes instead of the string codes,\r\n // whereas the API returns the server-side error enum as strings instead of codes.\r\n if (error?.status === 400 && error?.error?.status && typeof error.error.status === 'string') {\r\n const errorStatusEnumValue = RequestSaveResultStatus[error.error.status as string] as RequestSaveResultStatus;\r\n if (errorStatusEnumValue !== null && errorStatusEnumValue !== undefined) {\r\n error.error.status = errorStatusEnumValue;\r\n\r\n // Using a custom error popup if provided\r\n const customErrorPopup = customErrorPopups?.get(errorStatusEnumValue);\r\n if (customErrorPopup) {\r\n this.dialogService.showDialog(customErrorPopup.popupCode, customErrorPopup.model, customErrorPopup.data);\r\n return EMPTY;\r\n }\r\n }\r\n }\r\n\r\n // Let the global error handler handle the error\r\n return throwError(() => error);\r\n });\r\n }\r\n\r\n private serverValidationErrorsToHtml(validationErrors: string): string {\r\n return this.stringArrayToHtmlUnorderedList(this.serverValidationErrorsToStringArray(validationErrors));\r\n }\r\n\r\n private stringArrayToHtmlUnorderedList(array: string[]): string {\r\n const listItems = (array && array.map(item => `
  • ${item}
  • `)) || [];\r\n return `
      ${listItems.join('')}
    `;\r\n }\r\n\r\n private serverValidationErrorsToStringArray(validationErrors: string): string[] {\r\n return (validationErrors && validationErrors.split('\\r\\n').map(x => x && x.trim()).filter(x => !!x)) || [];\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { ExcelService } from 'dspx-core';\r\n\r\nimport { ApiEndpoints } from \"../constants/api-endpoints.constants\";\r\n\r\nimport { ExportToDataTablesRequest } from \"../interfaces/export-to-data-tables-request.interface\";\r\nimport { ExportToDataTablesResponse } from \"../interfaces/export-to-data-tables-response.interface\";\r\nimport { UserRequestUniqueKey } from \"../interfaces/user-request-unique-key.interface\";\r\n\r\nimport { AppDataService } from \"./app-data.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExcelExportService {\r\n constructor(\r\n private appDataService: AppDataService,\r\n private excelService: ExcelService) {\r\n }\r\n\r\n // Exports to XLSX\r\n\r\n exportUserRequestsToXlsx(request: ExportToDataTablesRequest): void {\r\n this.exportToXlsx(ApiEndpoints.userRequest.exportToDataTables, request, 'Requests');\r\n }\r\n\r\n exportApprovalsToXlsx(request: ExportToDataTablesRequest): void {\r\n this.exportToXlsx(ApiEndpoints.approval.exportToDataTables, request, 'Approvals');\r\n }\r\n\r\n exportReviewsToXlsx(request: ExportToDataTablesRequest, isAdminMode: boolean): void {\r\n const relativeUrl = isAdminMode\r\n ? ApiEndpoints.reviewDecision.exportToDataTablesAdminMode\r\n : ApiEndpoints.reviewDecision.exportToDataTables;\r\n this.exportToXlsx(relativeUrl, request, 'Reviews');\r\n }\r\n\r\n exportUsersToXlsx(request: ExportToDataTablesRequest): void {\r\n this.exportToXlsx(ApiEndpoints.applicationUser.exportToDataTables, request, 'Users');\r\n }\r\n\r\n exportUsersToXlsxFromEmailList(request: ExportToDataTablesRequest): void {\r\n this.exportToXlsx(ApiEndpoints.applicationUser.exportToDataTablesFromEmailList, request, 'Users(FromEmailList)');\r\n }\r\n\r\n exportUsersToXlsxImportCompatible(request: ExportToDataTablesRequest): void {\r\n this.exportToXlsx(ApiEndpoints.applicationUser.exportToDataTablesImportCompatible, request, 'Users(Import-Compatible)');\r\n }\r\n\r\n exportApplicationEnvironmentToXlsx(request: ExportToDataTablesRequest): void {\r\n this.exportToXlsx(ApiEndpoints.applicationEnvironment.exportToDataTables, request, 'Environment');\r\n }\r\n\r\n exportApplicationsToXlsx(request: ExportToDataTablesRequest): void {\r\n this.exportToXlsx(ApiEndpoints.application.exportToDataTables, request, 'Applications');\r\n }\r\n\r\n exportOrganisationsToXlsx(request: ExportToDataTablesRequest): void {\r\n this.exportToXlsx(ApiEndpoints.organisation.exportToDataTables, request, 'Organisations');\r\n }\r\n\r\n exportReferenceDataToXlsx(request: ExportToDataTablesRequest): void {\r\n this.exportToXlsx(ApiEndpoints.referenceData.exportToDataTables, request, 'ReferenceData');\r\n }\r\n\r\n exportReviewDefinitionsToXlsx(request: ExportToDataTablesRequest): void {\r\n this.exportToXlsx(ApiEndpoints.reviewDefinition.exportToDataTables, request, 'ReviewDefinitions');\r\n }\r\n\r\n exportReviewDefinitionsToXlsxImportCompatible(request: ExportToDataTablesRequest): void {\r\n this.exportToXlsx(ApiEndpoints.reviewDefinition.exportToDataTablesImportCompatible, request, 'ReviewDefinitions(Import-Compatible)');\r\n }\r\n\r\n exportToXlsx(\r\n apiEndpoint: string,\r\n request: ExportToDataTablesRequest,\r\n fileNamePrefix: string,\r\n getExportResponse: (response: TResponse) => ExportToDataTablesResponse = null,\r\n onSuccess: (response: TResponse, fileName: string) => void = null): void {\r\n\r\n this.appDataService.getDataTableSet(apiEndpoint, request, (response: TResponse, transientId: string) => {\r\n const exportResponse = getExportResponse?.(response) ?? response as unknown as ExportToDataTablesResponse;\r\n const fileName = this.exportDataTablesToXlsx(exportResponse, fileNamePrefix, transientId);\r\n onSuccess?.(response, fileName);\r\n });\r\n }\r\n\r\n exportDataTablesToXlsx(\r\n exportResponse: ExportToDataTablesResponse,\r\n fileNamePrefix: string,\r\n transientId: string = null) {\r\n\r\n transientId ??= this.appDataService.getTransientId();\r\n const fileName = `${fileNamePrefix}_${exportResponse?.dataSetFriendlyName}_${transientId}.xlsx`;\r\n const workSheetInfos = exportResponse?.dataTables?.map(dataTable => ({ workSheetName: dataTable?.tableName, workSheetData: dataTable?.data })) ?? [];\r\n this.excelService.writeWorkBookToFile(fileName, workSheetInfos);\r\n return fileName;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { Observable, Subscriber } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { DialogResult, DialogService, Dialogs, MessagePlaceholders } from 'dspx-core';\r\n\r\nimport { MinWaitForDialogToCloseMs } from \"../constants/app-data.constants\";\r\nimport { ApiEndpoints } from '../constants/api-endpoints.constants';\r\n\r\nimport { DataTable } from \"../interfaces/data-table.interface\";\r\nimport { ValidateEmailsRequest } from \"../interfaces/validate-emails-request.interface\";\r\nimport { ValidateEmailsResult } from \"../interfaces/validate-emails-result.interface\";\r\nimport { PurgeFromDataTablesRequest } from \"../interfaces/purge-from-data-tables-request.interface\";\r\nimport { PurgeFromDataTablesResponse } from \"../interfaces/purge-from-data-tables-response.interface\";\r\nimport { SyncFromDataTablesRequest } from \"../interfaces/sync-from-data-tables-request.interface\";\r\nimport { SyncFromDataTablesResponse } from \"../interfaces/sync-from-data-tables-response.interface\";\r\nimport { ImportFromDataTablesRequest } from \"../interfaces/import-from-data-tables-request.interface\";\r\nimport { ImportFromDataTablesResponse } from \"../interfaces/import-from-data-tables-response.interface\";\r\nimport { EntityChangeAnalysis } from \"../interfaces/entity-change-analysis.interface\";\r\nimport { ExcelImportResult } from \"../interfaces/excel-import-result.interface\";\r\n\r\nimport { ErrorService } from '../services/error.service';\r\nimport { AppDataService } from '../services/app-data.service';\r\nimport { ExcelParserService } from \"./excel-parser.service\";\r\nimport { DialogHelperService } from \"./dialog-helper.service\";\r\nimport { HtmlHelperService } from \"./html-helper.service\";\r\n\r\nclass ExcelImportError {\r\n constructor(\r\n public popupCode: string,\r\n public data?: MessagePlaceholders,\r\n public placeholders?: MessagePlaceholders) {\r\n }\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExcelImportService {\r\n\r\n constructor(\r\n private errorService: ErrorService,\r\n private excelParserService: ExcelParserService,\r\n private dialogHelperService: DialogHelperService,\r\n private dialogService: DialogService,\r\n private appDataService: AppDataService,\r\n private htmlHelperService: HtmlHelperService) {\r\n }\r\n\r\n // Validations via XLSX\r\n\r\n validateEmails(file: File): Observable {\r\n return this.validateViaXlsx(\r\n file,\r\n 'validateEmailsFileType',\r\n 'validateEmailsUnknownError',\r\n (subscriber, dataTables) => {\r\n const request: ValidateEmailsRequest = { dataTables };\r\n this.appDataService.post(ApiEndpoints.applicationUser.validateEmails, request)\r\n .pipe(take(1))\r\n .subscribe((result: ValidateEmailsResult) => {\r\n if (result.message) {\r\n this.handleError(subscriber, new ExcelImportError(result.message, result.details))\r\n }\r\n else {\r\n subscriber.next(result.emails);\r\n subscriber.complete();\r\n }\r\n });\r\n });\r\n }\r\n\r\n // Purges via XLSX\r\n\r\n purgeUsersFromXlsx(\r\n file: File,\r\n showConfirmationDialog: (purgeResponse: PurgeFromDataTablesResponse) => Observable): Observable {\r\n\r\n const endpoint = ApiEndpoints.applicationUser.purgeFromDataTables;\r\n\r\n return this.validateViaXlsx(\r\n file,\r\n 'userPurgeFileType',\r\n 'userPurgeUnknownError',\r\n (subscriber, dataTables) => {\r\n // Call the back-end to perform the pre-purge validation and analysis (skipConfirmation = false)\r\n const prePurgeRequest: PurgeFromDataTablesRequest = { dataTables, skipConfirmation: false };\r\n this.appDataService.post(endpoint, prePurgeRequest)\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe((prePurgeResponse: PurgeFromDataTablesResponse) => {\r\n if (prePurgeResponse.message) {\r\n // Pre-purge failed validation => return the validation error\r\n this.handleError(subscriber, new ExcelImportError(prePurgeResponse.message, prePurgeResponse.details))\r\n }\r\n else {\r\n // Pre-purge succeeded => display the confirmation popup with the summary of purge changes\r\n showConfirmationDialog(prePurgeResponse)\r\n .pipe(take(1))\r\n .subscribe(dialogResult => {\r\n switch (dialogResult as DialogResult) {\r\n case DialogResult.ACCEPTED: {\r\n // User confirms they want to proceed => call the back-end again to perform the actual purge (skipConfirmation = true)\r\n const actualPurgeRequest: PurgeFromDataTablesRequest = { dataTables, skipConfirmation: true };\r\n this.appDataService.post(endpoint, actualPurgeRequest)\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe({\r\n next: (actualPurgeResponse: PurgeFromDataTablesResponse) => {\r\n if (actualPurgeResponse.message) {\r\n // Actual purge failed validation => return the validation error\r\n // (this is a rare scenario because the data was already validated by the pre-purge, but it could theoretically happen)\r\n subscriber.error(new ExcelImportError(actualPurgeResponse.message, actualPurgeResponse.details));\r\n }\r\n else {\r\n // Actual purge succeeded => return the purge response\r\n subscriber.next(actualPurgeResponse);\r\n subscriber.complete();\r\n }\r\n },\r\n error: error => {\r\n // Actual purge failed with an unexpected error\r\n subscriber.error(error);\r\n }\r\n });\r\n break;\r\n }\r\n case DialogResult.REJECTED: {\r\n // User cancels because they do not want to proceed => do nothing\r\n subscriber.error();\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n // Synchronisations via XLSX\r\n\r\n syncUsersFromXlsx(\r\n file: File,\r\n showConfirmationDialog: (syncResponse: SyncFromDataTablesResponse) => Observable): Observable {\r\n\r\n const endpoint = ApiEndpoints.applicationUser.syncFromDataTables;\r\n\r\n return this.validateViaXlsx(\r\n file,\r\n 'userSyncFileType',\r\n 'userSyncUnknownError',\r\n (subscriber, dataTables) => {\r\n // Call the back-end to perform the pre-synchronisation validation and analysis (skipConfirmation = false)\r\n const preSyncRequest: SyncFromDataTablesRequest = { dataTables, skipConfirmation: false };\r\n this.appDataService.post(endpoint, preSyncRequest)\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe((preSyncResponse: SyncFromDataTablesResponse) => {\r\n if (preSyncResponse.message) {\r\n // Pre-synchronisation failed validation => return the validation error\r\n this.handleError(subscriber, new ExcelImportError(preSyncResponse.message, preSyncResponse.details))\r\n }\r\n else {\r\n // Pre-synchronisation succeeded => display the confirmation popup with the summary of synchronisation changes\r\n showConfirmationDialog(preSyncResponse)\r\n .pipe(take(1))\r\n .subscribe(dialogResult => {\r\n switch (dialogResult as DialogResult) {\r\n case DialogResult.ACCEPTED: {\r\n // User confirms they want to proceed => call the back-end again to perform the actual synchronisation (skipConfirmation = true)\r\n const actualSyncRequest: SyncFromDataTablesRequest = { dataTables, skipConfirmation: true };\r\n this.appDataService.post(endpoint, actualSyncRequest)\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe({\r\n next: (actualSyncResponse: SyncFromDataTablesResponse) => {\r\n if (actualSyncResponse.message) {\r\n // Actual synchronisation failed validation => return the validation error\r\n // (this is a rare scenario because the data was already validated by the pre-synchronisation, but it could theoretically happen)\r\n subscriber.error(new ExcelImportError(actualSyncResponse.message, actualSyncResponse.details));\r\n }\r\n else {\r\n // Actual synchronisation succeeded => return the synchronisation response\r\n subscriber.next(actualSyncResponse);\r\n subscriber.complete();\r\n }\r\n },\r\n error: error => {\r\n // Actual synchronisation failed with an unexpected error\r\n subscriber.error(error);\r\n }\r\n });\r\n break;\r\n }\r\n case DialogResult.REJECTED: {\r\n // User cancels because they do not want to proceed => do nothing\r\n subscriber.error();\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n // Imports from XLSX\r\n\r\n importUsersFromXlsx(): Observable {\r\n return this.importFromXlsxWithInstructions(\r\n null,\r\n ApiEndpoints.applicationUser.importFromDataTables,\r\n 'userImportInstructions',\r\n 'userImportFileType',\r\n 'userImportConfirmation',\r\n 'userImportSuccessful');\r\n }\r\n\r\n importApplicationEnvironmentFromXlsx(entityId: string): Observable {\r\n return this.importFromXlsxWithoutInstructions(\r\n entityId,\r\n ApiEndpoints.applicationEnvironment.importFromDataTables,\r\n 'environmentImportFileType',\r\n 'environmentImportConfirmation',\r\n 'environmentImportSuccessful');\r\n }\r\n\r\n importApplicationsFromXlsx(): Observable {\r\n return this.importFromXlsxWithoutInstructions(\r\n null,\r\n ApiEndpoints.application.importFromDataTables,\r\n 'applicationImportFileType',\r\n 'applicationImportConfirmation',\r\n 'applicationImportSuccessful');\r\n }\r\n\r\n importOrganisationsFromXlsx(): Observable {\r\n return this.importFromXlsxWithoutInstructions(\r\n null,\r\n ApiEndpoints.organisation.importFromDataTables,\r\n 'organisationImportFileType',\r\n 'organisationImportConfirmation',\r\n 'organisationImportSuccessful');\r\n }\r\n\r\n importReferenceDataFromXlsx(): Observable {\r\n return this.importFromXlsxWithoutInstructions(\r\n null,\r\n ApiEndpoints.referenceData.importFromDataTables,\r\n 'referenceDataImportFileType',\r\n 'referenceDataImportConfirmation',\r\n 'referenceDataImportSuccessful');\r\n }\r\n\r\n importReviewDefinitionsFromXlsx(): Observable {\r\n return this.importFromXlsxWithoutInstructions(\r\n null,\r\n ApiEndpoints.reviewDefinition.importFromDataTables,\r\n 'reviewDefinitionImportFileType',\r\n 'reviewDefinitionImportConfirmation',\r\n 'reviewDefinitionImportSuccessful');\r\n }\r\n\r\n // Private\r\n\r\n private validateViaXlsx(\r\n file: File,\r\n validateFileTypePopupCode: string,\r\n validateUnknownErrorPopupCode: string,\r\n processFunction: (subscriber: Subscriber, dataTables: DataTable[]) => void): Observable {\r\n\r\n return new Observable(subscriber =>\r\n this.uploadAndParseWorkBook(file, validateFileTypePopupCode)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: dataTables => processFunction(subscriber, dataTables),\r\n error: error => this.handleError(subscriber, error, validateUnknownErrorPopupCode)\r\n }));\r\n }\r\n\r\n private importFromXlsxWithInstructions(\r\n entityId: string,\r\n endpoint: string,\r\n importInstructionsPopupCode: string,\r\n importFileTypePopupCode: string,\r\n importConfirmationPopupCode: string,\r\n importSuccessfulPopupCode: string): Observable {\r\n\r\n const onCancel = (subscriber: Subscriber) =>\r\n setTimeout(() => processFunction(subscriber), MinWaitForDialogToCloseMs);\r\n\r\n const processFunction = (subscriber: Subscriber) => {\r\n this.dialogService.showConfirm(importInstructionsPopupCode)\r\n .pipe(take(1))\r\n .subscribe(dialogResult => {\r\n switch (dialogResult as DialogResult) {\r\n case DialogResult.ACCEPTED: {\r\n this.htmlHelperService.uploadFile(\r\n ['.xlsx', '.xls'],\r\n file => this.importFromXlsx(entityId, file, endpoint, importFileTypePopupCode, importConfirmationPopupCode, importSuccessfulPopupCode)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: excelImportResult => {\r\n if (excelImportResult.isCancelled) {\r\n onCancel(subscriber);\r\n }\r\n else {\r\n subscriber.next({ isCancelled: false });\r\n subscriber.complete();\r\n }\r\n },\r\n error: () => onCancel(subscriber)\r\n }),\r\n () => onCancel(subscriber));\r\n break;\r\n }\r\n case DialogResult.REJECTED: {\r\n subscriber.next({ isCancelled: true });\r\n subscriber.complete();\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return new Observable(subscriber => processFunction(subscriber));\r\n }\r\n\r\n private importFromXlsxWithoutInstructions(\r\n entityId: string,\r\n endpoint: string,\r\n importFileTypePopupCode: string,\r\n importConfirmationPopupCode: string,\r\n importSuccessfulPopupCode: string): Observable {\r\n\r\n const processFunction = (subscriber: Subscriber) => {\r\n this.htmlHelperService.uploadFile(\r\n ['.xlsx', '.xls'],\r\n file => this.importFromXlsx(entityId, file, endpoint, importFileTypePopupCode, importConfirmationPopupCode, importSuccessfulPopupCode)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: excelImportResult => {\r\n subscriber.next(excelImportResult);\r\n subscriber.complete();\r\n },\r\n error: error => subscriber.error(error)\r\n }),\r\n () => {\r\n subscriber.next({ isCancelled: true });\r\n subscriber.complete();\r\n });\r\n };\r\n\r\n return new Observable(subscriber => processFunction(subscriber));\r\n }\r\n\r\n private importFromXlsx(\r\n entityId: string,\r\n file: File,\r\n endpoint: string,\r\n importFileTypePopupCode: string,\r\n importConfirmationPopupCode: string,\r\n importSuccessfulPopupCode: string): Observable {\r\n\r\n const postDataTables = (subscriber: Subscriber, dataTables: DataTable[], ignoreWarnings: boolean) => {\r\n return this.postDataTables(endpoint, entityId, dataTables, importConfirmationPopupCode, ignoreWarnings)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: excelImportResult => {\r\n if (excelImportResult.isCancelled) {\r\n if (excelImportResult.warnings?.length) {\r\n // Import was cancelled due to validation warnings => display the warning popup\r\n this.dialogHelperService.showWarnings(excelImportResult.warnings)\r\n .pipe(take(1))\r\n .subscribe(data => {\r\n switch (data as DialogResult) {\r\n case DialogResult.ACCEPTED: {\r\n // User decided to dismiss the warnings => repeat the process but ignore the warnings\r\n const ignoreWarnings = true;\r\n postDataTables(subscriber, dataTables, ignoreWarnings);\r\n break;\r\n }\r\n case DialogResult.REJECTED: {\r\n // User decided to cancel because of the warnings => return success (isCancelled = true)\r\n subscriber.next({ isCancelled: true })\r\n subscriber.complete();\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n // User decided to cancel => return success (isCancelled = true)\r\n subscriber.next({ isCancelled: true })\r\n subscriber.complete();\r\n }\r\n }\r\n else {\r\n // Import succeeeded => display the success popup and return success (isCancelled = false)\r\n setTimeout(\r\n () => this.showConfirm(importSuccessfulPopupCode)\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n subscriber.next({ isCancelled: false });\r\n subscriber.complete();\r\n }),\r\n MinWaitForDialogToCloseMs);\r\n }\r\n },\r\n // Import failed due to validation error => return the validation error\r\n error: error => {\r\n this.handleError(subscriber, error, Dialogs.SERVER_ERROR);\r\n }\r\n });\r\n };\r\n\r\n return new Observable(subscriber => {\r\n this.uploadAndParseWorkBook(file, importFileTypePopupCode)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: dataTables => {\r\n const ignoreWarnings = false;\r\n postDataTables(subscriber, dataTables, ignoreWarnings);\r\n },\r\n error: error => {\r\n this.handleError(subscriber, error, Dialogs.SERVER_ERROR);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private uploadAndParseWorkBook(file: File, importFileTypePopupCode: string): Observable {\r\n\r\n return this.uploadWorkBook(file, importFileTypePopupCode, (subscriber, event) => {\r\n\r\n const dataTables = this.excelParserService.parseWorkBook(event.target.result)\r\n if (!dataTables || dataTables.length === 0) {\r\n subscriber.error();\r\n }\r\n\r\n subscriber.next(dataTables);\r\n subscriber.complete();\r\n });\r\n }\r\n\r\n private uploadWorkBook(file: File, fileTypeErrorPopupCode: string, processFunction: (subscriber: Subscriber, event: ProgressEvent) => void): Observable {\r\n\r\n return new Observable(subscriber => {\r\n try {\r\n const reader = new FileReader();\r\n reader.onload = event => {\r\n try {\r\n processFunction(subscriber, event);\r\n }\r\n catch (error) {\r\n subscriber.error(error);\r\n }\r\n };\r\n if (file) {\r\n const validFileTypes = [\r\n 'application/vnd.ms-excel',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n 'text/csv'\r\n ];\r\n if (validFileTypes.includes(file.type)) {\r\n reader.readAsBinaryString(file);\r\n }\r\n else {\r\n subscriber.error(new ExcelImportError(fileTypeErrorPopupCode));\r\n }\r\n }\r\n }\r\n catch (error) {\r\n subscriber.error(error);\r\n }\r\n });\r\n }\r\n\r\n private showConfirm(popupCode: string, data?: MessagePlaceholders, placeholders?: MessagePlaceholders): Observable {\r\n return this.dialogHelperService.showConfirm(popupCode, placeholders, data);\r\n }\r\n\r\n private handleError(subscriber: Subscriber, error: any, unknownErrorPopupCode?: string) {\r\n if (error instanceof ExcelImportError) {\r\n this.showConfirm(error.popupCode, error.data, error.placeholders)\r\n .pipe(take(1))\r\n .subscribe(() => subscriber.error());\r\n }\r\n else if (unknownErrorPopupCode) {\r\n this.showConfirm(unknownErrorPopupCode)\r\n .pipe(take(1))\r\n .subscribe(() => subscriber.error());\r\n }\r\n else {\r\n subscriber.error();\r\n }\r\n }\r\n\r\n private postDataTables(\r\n endpoint: string,\r\n entityId: string,\r\n dataTables: DataTable[],\r\n confirmationPopupCode: string,\r\n ignoreWarnings: boolean): Observable {\r\n\r\n return new Observable(subscriber => {\r\n\r\n // Call the back-end to perform the pre-import validation and analysis (skipConfirmation = false)\r\n const preImportRequest: ImportFromDataTablesRequest = { entityId, dataTables, skipConfirmation: false, ignoreWarnings: ignoreWarnings };\r\n this.appDataService.post(endpoint, preImportRequest)\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe({\r\n next: (preImportResponse: ImportFromDataTablesResponse) => {\r\n if (preImportResponse.message) {\r\n // Pre-import failed validation => return the validation error\r\n subscriber.error(new ExcelImportError(preImportResponse.message, preImportResponse.details));\r\n }\r\n else if (preImportResponse.warnings?.length) {\r\n // Pre-import succeeded with warnings => return success (isCancelled = true) with the warnings\r\n subscriber.next({ isCancelled: true, warnings: preImportResponse.warnings });\r\n subscriber.complete();\r\n }\r\n else {\r\n // Pre-import succeeded => display the confirmation popup with the summary of import changes\r\n setTimeout(\r\n () => {\r\n const confirmationPopupMessagePlaceholder: MessagePlaceholders = {\r\n importChanges: this.formatImportChangesHtml(preImportResponse.entityChangeAnalyses)\r\n };\r\n this.dialogService\r\n .showConfirm(confirmationPopupCode, confirmationPopupMessagePlaceholder)\r\n .pipe(take(1))\r\n .subscribe(dialogResult => {\r\n switch (dialogResult as DialogResult) {\r\n case DialogResult.ACCEPTED: {\r\n // User confirms they want to proceed => call the back-end again to perform the actual import (skipConfirmation = true)\r\n const actualImportRequest: ImportFromDataTablesRequest = { entityId, dataTables, skipConfirmation: true, ignoreWarnings: true };\r\n this.appDataService.post(endpoint, actualImportRequest)\r\n .pipe(take(1), this.errorService.errorHandler())\r\n .subscribe({\r\n next: (actualImportResponse: ImportFromDataTablesResponse) => {\r\n if (actualImportResponse.message) {\r\n // Actual import failed validation => return the validation error\r\n // (this is a rare scenario because the data was already validated by the pre-import, but it could happen if the database has changed in the meantime)\r\n subscriber.error(new ExcelImportError(actualImportResponse.message, actualImportResponse.details));\r\n }\r\n else {\r\n // Actual import succeeded => return success (isCancelled = false)\r\n subscriber.next({ isCancelled: false });\r\n subscriber.complete();\r\n }\r\n },\r\n error: error => {\r\n // Actual import failed with an unexpected error\r\n subscriber.error(error);\r\n }\r\n });\r\n break;\r\n }\r\n case DialogResult.REJECTED: {\r\n // User cancels because they do not want to proceed => return success (isCancelled = true)\r\n subscriber.next({ isCancelled: true });\r\n subscriber.complete();\r\n break;\r\n }\r\n }\r\n });\r\n },\r\n MinWaitForDialogToCloseMs);\r\n }\r\n },\r\n error: error => {\r\n // Pre-import failed with an unexpected error\r\n subscriber.error(error);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private formatImportChangesHtml(analyses: EntityChangeAnalysis[]): string {\r\n const encode = (cell: any) =>\r\n this.htmlHelperService.toEncodedHtml(cell.toString());\r\n const rowTotal = (a: EntityChangeAnalysis) =>\r\n a.totalRemoved + a.totalAdded + a.totalModified + a.totalUnmodified;\r\n const colTotal = (getValue: (a: EntityChangeAnalysis) => number) =>\r\n analyses.reduce((accumulator, a) => accumulator + getValue(a), 0);\r\n const headerRow = ['Entity', 'Removed', 'Added', 'Modified', 'Unmodified', 'Total']\r\n .map(encode);\r\n const entityRows = analyses\r\n .map(a => [a.entityName, a.totalRemoved, a.totalAdded, a.totalModified, a.totalUnmodified, rowTotal(a)]\r\n .map(encode))\r\n const totalRow = ['Total', colTotal(a => a.totalRemoved), colTotal(a => a.totalAdded), colTotal(a => a.totalModified), colTotal(a => a.totalUnmodified), colTotal(a => rowTotal(a))]\r\n .map(encode)\r\n .map(cell => this.htmlHelperService.formatHtml('b', cell))\r\n .map(cell => this.htmlHelperService.formatHtml('i', cell));\r\n const dataRows = entityRows\r\n .concat([totalRow]);\r\n const htmlTableConfiguration = {\r\n dataColumns: {\r\n 0: { isRightAligned: false },\r\n 1: { isRightAligned: true },\r\n 2: { isRightAligned: true },\r\n 3: { isRightAligned: true },\r\n 4: { isRightAligned: true },\r\n 5: { isRightAligned: true }\r\n }\r\n };\r\n const htmlTable = this.htmlHelperService.formatHtmlTable(headerRow, dataRows, htmlTableConfiguration);\r\n const html = this.htmlHelperService.formatHtml('p', htmlTable);\r\n return html;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport * as XLSX from 'xlsx';\r\n\r\nimport { DataTable } from \"../interfaces/data-table.interface\";\r\n\r\nexport type SheetData = string | ArrayBuffer;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExcelParserService {\r\n\r\n /**\r\n * Parses an Excel workbook file and returns the data\r\n * @param data file data containing the Excel workbook\r\n * @returns object containing the parsed data\r\n */\r\n parseWorkBook(data: SheetData): DataTable[] {\r\n const xlsxWorkSheets = this.getXlsxWorkSheets(data);\r\n const dataTables = xlsxWorkSheets\r\n .map(xlsxWorkSheet => ({\r\n tableName: xlsxWorkSheet.xlsxWorkSheetName,\r\n data: xlsxWorkSheet.xlsxWorkSheetData\r\n }));\r\n return dataTables;\r\n }\r\n\r\n // **********************************************************************************************************************************************************\r\n // PRIVATE\r\n // **********************************************************************************************************************************************************\r\n\r\n /**\r\n * Parses an Excel workbook using the XLSX third-party library.\r\n * The workbook is parsed as \"raw\", i.e. without trying to guess the data types of each cell, therefore each cell has a string type, regardless of the data type it contains\r\n * @param data file data containing the Excel workbook\r\n * @returns an XLSX.WorkBook object containing the input workbook\r\n */\r\n private getXlsxWorkBook(data: SheetData): XLSX.WorkBook {\r\n try {\r\n const xlsxWorkBook = XLSX.read(data, { type: 'binary', raw: true });\r\n return xlsxWorkBook;\r\n }\r\n catch {\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Parses an Excel workbook using the XLSX third-party library.\r\n * The workbook is parsed as \"raw\", i.e. without trying to guess the data types of each cell, therefore each cell has a string type, regardless of the data type it contains\r\n * @param data file data containing the Excel workbook\r\n * @returns an array of objects, each containing the worksheet name and the XLSX.WorkSheet object, for all worksheets found in the input workbook\r\n */\r\n private getXlsxWorkSheets(data: SheetData): { xlsxWorkSheetName: string, xlsxWorkSheetData: string[][] }[] {\r\n try {\r\n const xlsxWorkBook = this.getXlsxWorkBook(data);\r\n const xlsxWorkSheets = xlsxWorkBook.SheetNames\r\n .map(xlsxWorkSheetName => {\r\n const xlsxWorkSheet = xlsxWorkBook.Sheets[xlsxWorkSheetName];\r\n const xlsxWorkSheetData = XLSX.utils.sheet_to_json(xlsxWorkSheet, { header: 1 }) as string[][];\r\n return { xlsxWorkSheetName, xlsxWorkSheetData };\r\n });\r\n return xlsxWorkSheets ?? [];\r\n }\r\n catch {\r\n return [];\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { CardSetFooterConfiguration } from \"dspx-core\";\r\n\r\nimport { AppDataKeys, DepartmentOfFamiliesFairnessAndHousing, DepartmentOfHealth, VictorianGovernment } from \"../constants/app-data.constants\";\r\n\r\nimport { AppDataService } from \"./app-data.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FooterCustomisationService {\r\n\r\n constructor(\r\n private appDataService: AppDataService) {\r\n }\r\n\r\n // Get the footer configuration.\r\n getFooterConfiguration(): CardSetFooterConfiguration {\r\n\r\n const footerConfiguration: CardSetFooterConfiguration = {\r\n prideLogo: '/assets/images/flag-pride.svg',\r\n prideDeclaration: 'The department celebrates, values and includes people of all backgrounds, genders, sexualities, cultures, bodies and abilities.',\r\n lightModeAppLogo: null, // not required because showAppLogo is not true\r\n darkModeAppLogo: null, // not required because showAppLogo is not true\r\n lightModeLogo: '/assets/images/sgv-logo-dark.png',\r\n darkModeLogo: '/assets/images/sgv-logo.png',\r\n atsiLogo: '/assets/images/logo-a-tsi-flag.svg',\r\n atsiDeclaration: 'The department acknowledges Aboriginal and Torres Strait Islander people as the Traditional Custodians of the land and acknowledges and pays respect to their Elders, past and present.',\r\n footerLinkColumns: [\r\n {\r\n heading: 'About the site',\r\n links: [\r\n {\r\n label: 'Privacy Statement (Health)',\r\n url: `${DepartmentOfHealth.url}privacy`\r\n },\r\n {\r\n label: 'Privacy Statement (Families, Fairness and Housing)',\r\n url: `${DepartmentOfFamiliesFairnessAndHousing.url}privacy-statement`\r\n },\r\n {\r\n label: 'Disclaimer (Health)',\r\n url: `${DepartmentOfHealth.url}disclaimer`\r\n },\r\n {\r\n label: 'Disclaimer (Families, Fairness and Housing)',\r\n url: `${DepartmentOfFamiliesFairnessAndHousing.url}disclaimer`\r\n },\r\n {\r\n label: 'Copyright',\r\n url: `${DepartmentOfHealth.url}copyright`\r\n }\r\n ]\r\n },\r\n {\r\n heading: 'Other resources',\r\n links: [\r\n {\r\n label: VictorianGovernment.title,\r\n url: VictorianGovernment.url\r\n },\r\n {\r\n label: DepartmentOfHealth.title,\r\n url: DepartmentOfHealth.url\r\n },\r\n {\r\n label: DepartmentOfFamiliesFairnessAndHousing.title,\r\n url: DepartmentOfFamiliesFairnessAndHousing.url\r\n },\r\n {\r\n label: this.appDataService.getAppData(AppDataKeys.ldapLegacyUserOnboardingPortalName),\r\n url: this.appDataService.getAppData(AppDataKeys.ldapNotFederatedAccountSignInUrl)\r\n }\r\n ]\r\n }\r\n ],\r\n departmentName: `${DepartmentOfHealth.title} / ${DepartmentOfFamiliesFairnessAndHousing.title}`,\r\n governmentName: VictorianGovernment.title\r\n };\r\n\r\n return footerConfiguration;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { FormlyFieldConfig } from \"@ngx-formly/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormConfigurationParserService {\r\n\r\n findNavTabConfigs = (formConfig: FormlyFieldConfig[]): FormlyFieldConfig[] =>\r\n formConfig?.[0]?.fieldGroup?.[0]?.fieldGroup;\r\n\r\n findNavTabConfig = (formConfig: FormlyFieldConfig[], navTabNumber: number): FormlyFieldConfig =>\r\n this.findNavTabConfigs(formConfig)?.filter(navTabConfig => navTabConfig.key === `tab${navTabNumber}`)?.[0];\r\n\r\n findPageConfigs = (formConfig: FormlyFieldConfig[], navTabNumber: number): FormlyFieldConfig[] =>\r\n this.findNavTabConfig(formConfig, navTabNumber)?.fieldGroup;\r\n\r\n findPageConfig = (formConfig: FormlyFieldConfig[], navTabNumber: number, pageNumber: number): FormlyFieldConfig =>\r\n this.findPageConfigs(formConfig, navTabNumber)?.filter(pageConfig => pageConfig.key === `page${pageNumber}`)?.[0];\r\n\r\n findSectionConfigs = (formConfig: FormlyFieldConfig[], navTabNumber: number, pageNumber: number): FormlyFieldConfig[] => {\r\n const pageConfig = this.findPageConfig(formConfig, navTabNumber, pageNumber);\r\n return (pageConfig?.fieldArray as FormlyFieldConfig)?.fieldGroup ?? pageConfig?.fieldGroup;\r\n }\r\n\r\n findSectionConfig = (formConfig: FormlyFieldConfig[], navTabNumber: number, pageNumber: number, sectionCode: string): FormlyFieldConfig =>\r\n this.findSectionConfigs(formConfig, navTabNumber, pageNumber)?.filter(sectionConfig => sectionConfig.key === sectionCode)?.[0];\r\n\r\n findQuestionConfigs = (formConfig: FormlyFieldConfig[], navTabNumber: number, pageNumber: number, sectionCode: string): FormlyFieldConfig[] => {\r\n const sectionConfig = this.findSectionConfig(formConfig, navTabNumber, pageNumber, sectionCode);\r\n return (sectionConfig?.fieldArray as FormlyFieldConfig)?.fieldGroup ?? sectionConfig?.fieldGroup;\r\n }\r\n\r\n findQuestionConfig = (formConfig: FormlyFieldConfig[], navTabNumber: number, pageNumber: number, sectionCode: string, questionCode: string): FormlyFieldConfig =>\r\n this.findQuestionConfigs(formConfig, navTabNumber, pageNumber, sectionCode)?.filter(questionConfig => questionConfig.key === questionCode)?.[0];\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { FormlyFieldConfig } from '@ngx-formly/core';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { CoreService, DialogResult, DialogService, RepeaterElementType } from 'dspx-core';\r\n\r\nimport { QuestionCodes, SectionCodes, NavTabNumbers, PageNumbers, OptionSetValues } from '../constants/app-data.constants';\r\n\r\nimport { HtmlHelperService } from './html-helper.service';\r\nimport { FormConfigurationParserService } from './form-configuration-parser.service';\r\nimport { PagePath, ResponseParserService, SectionPath } from './response-parser.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormDataService {\r\n\r\n appData: { [key: string]: any } = {};\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private htmlHelperService: HtmlHelperService,\r\n private formConfigurationParserService: FormConfigurationParserService,\r\n private responseParserService: ResponseParserService,\r\n private dialogService: DialogService) {\r\n }\r\n \r\n private findFieldValue(questionConfigs: FormlyFieldConfig[], questionKey: string, defaultValue: T = null, doHtmlEncoding: boolean = true): T {\r\n const field = questionConfigs.find(f => f.key === questionKey);\r\n const value = (field && this.coreService.getFieldValue(field) as unknown as T) || defaultValue;\r\n return (doHtmlEncoding && (typeof value === \"string\")) ? (this.htmlHelperService.toEncodedHtml(value) as T) : value;\r\n }\r\n\r\n private findFieldLabel(questionConfigs: FormlyFieldConfig[], questionKey: string, defaultValue: string = null, doHtmlEncoding: boolean = true): string {\r\n const field = questionConfigs.find(f => f.key === questionKey);\r\n const label = field?.props?.label || defaultValue;\r\n return doHtmlEncoding ? (this.htmlHelperService.toEncodedHtml(label) as string) : label;\r\n }\r\n\r\n private toHtmlHeader(header: { title: { name: string, value: string, isActive: boolean }, fields: { name: string, value: string }[] }): string {\r\n return `\r\n
    \r\n ${this.toHtmlHeaderTitle(header.title)}\r\n ${header.fields.map(field => this.toHtmlHeaderField(field)).join('') }\r\n
    \r\n `;\r\n }\r\n\r\n private toHtmlHeaderTitle(title: { name: string, value: string, isActive: boolean }): string {\r\n return `

    ${title.name}: ${(title.isActive ? title.value : `${title.value} (INACTIVE)`)}

    `;\r\n }\r\n\r\n private toHtmlHeaderField(field: { name: string, value: string }): string {\r\n return `

    ${field.name}: ${field.value}

    `;\r\n }\r\n\r\n private showOkCancelPopup(message: string, header: string, onComplete: (cancel: boolean) => void): void {\r\n this.dialogService\r\n .showSimplePopup(message, header, 'OK', 'Cancel')\r\n .pipe(take(1))\r\n .subscribe((dialogResult: DialogResult) => onComplete(dialogResult === DialogResult.REJECTED));\r\n }\r\n\r\n private getRepeaterHtmlElementId(repeaterFieldId: string, elementType: RepeaterElementType, itemIndex?: number): string {\r\n const htmlElementId = repeaterFieldId\r\n ? (itemIndex !== null && itemIndex !== undefined)\r\n ? `${repeaterFieldId}_${elementType}_${itemIndex}`\r\n : `${repeaterFieldId}_${elementType}`\r\n : null;\r\n return htmlElementId;\r\n }\r\n\r\n private getPageFieldId(formConfig: FormlyFieldConfig[], pagePath: PagePath): string {\r\n const pageConfig = this.formConfigurationParserService.findPageConfig(formConfig, ...pagePath);\r\n const pageFieldId = pageConfig?.id;\r\n return pageFieldId;\r\n }\r\n\r\n private getSectionFieldId(formConfig: FormlyFieldConfig[], sectionPath: SectionPath): string {\r\n const sectionConfig = this.formConfigurationParserService.findSectionConfig(formConfig, ...sectionPath);\r\n const sectionFieldId = sectionConfig?.id;\r\n return sectionFieldId;\r\n }\r\n\r\n getPageRepeaterHtmlElementId(formConfig: FormlyFieldConfig[], pagePath: PagePath, elementType: RepeaterElementType, itemIndex?: number): string {\r\n const pageFieldId = this.getPageFieldId(formConfig, pagePath);\r\n const htmlElementId = this.getRepeaterHtmlElementId(pageFieldId, elementType, itemIndex)\r\n return htmlElementId;\r\n }\r\n\r\n getSectionRepeaterHtmlElementId(formConfig: FormlyFieldConfig[], sectionPath: SectionPath, elementType: RepeaterElementType, itemIndex?: number): string {\r\n const sectionFieldId = this.getSectionFieldId(formConfig, sectionPath);\r\n const htmlElementId = this.getRepeaterHtmlElementId(sectionFieldId, elementType, itemIndex)\r\n return htmlElementId;\r\n }\r\n\r\n // configureFormViewMode / configureFormRepeatingPage / configureFormRepeatingSection / configureFormReadOnlyGridViewMode methods\r\n\r\n configureUserFormViewMode(\r\n getFormConfig: () => FormlyFieldConfig[],\r\n isFormEditable: () => boolean,\r\n isViewModeAllowed: () => boolean,\r\n setViewMode: (enabled: boolean) => void,\r\n getViewMode: () => boolean,\r\n allowLegacyAccountOperations: () => boolean,\r\n legacyAccountLogin: () => void,\r\n legacyAccountReset: () => void) {\r\n\r\n this.coreService.applicationFunctions['enableViewModeForUserProfile'] = () => setViewMode(true);\r\n this.coreService.applicationFunctions['disableViewModeForUserProfile'] = () => setViewMode(false);\r\n this.coreService.applicationFunctions['showEnableViewModeButtonForUserProfile'] = () => isFormEditable() && isViewModeAllowed() && !getViewMode();\r\n this.coreService.applicationFunctions['showDisableViewModeButtonForUserProfile'] = () => isFormEditable() && isViewModeAllowed() && getViewMode();\r\n\r\n this.coreService.applicationFunctions['showLegacyAccountLoginButton'] = () => isFormEditable() && allowLegacyAccountOperations();\r\n this.coreService.applicationFunctions['showLegacyAccountResetButton'] = () => isFormEditable() && allowLegacyAccountOperations();\r\n this.coreService.applicationFunctions['legacyAccountLogin'] = () => legacyAccountLogin();\r\n this.coreService.applicationFunctions['legacyAccountReset'] = () => legacyAccountReset();\r\n\r\n this.coreService.pageFunctions['isViewModeForUserProfile'] =\r\n (pageConfig: FormlyFieldConfig) => isViewModeAllowed() && getViewMode();\r\n\r\n this.coreService.pageFunctions['isSectionIncludedInViewModeForUserProfile'] =\r\n (pageConfig: FormlyFieldConfig, sectionConfig: FormlyFieldConfig) => sectionConfig.key === SectionCodes.UserForm.viewUserProfile;\r\n\r\n this.coreService.pageFunctions['getViewModeCustomHtmlForUserProfile'] =\r\n (pageConfig: FormlyFieldConfig, sectionConfig: FormlyFieldConfig, sectionIndex: number, questionConfigs: FormlyFieldConfig[]) => {\r\n\r\n const userOrganisationProfileQuestionConfigs = this.formConfigurationParserService.findQuestionConfigs(\r\n getFormConfig?.(),\r\n NavTabNumbers.UserForm.userProfile,\r\n PageNumbers.UserForm.profile,\r\n SectionCodes.UserForm.userOrganisationProfile)\r\n ?? [];\r\n const userProfileQuestionConfigs = this.formConfigurationParserService.findQuestionConfigs(\r\n getFormConfig?.(),\r\n NavTabNumbers.UserForm.userProfile,\r\n PageNumbers.UserForm.profile,\r\n SectionCodes.UserForm.userProfile)\r\n ?? [];\r\n\r\n const organisation = this.findFieldValue(userOrganisationProfileQuestionConfigs, QuestionCodes.UserForm.userOrganisation, '');\r\n const givenName = this.findFieldValue(userProfileQuestionConfigs, QuestionCodes.UserForm.userGivenName, '');\r\n const familyName = this.findFieldValue(userProfileQuestionConfigs, QuestionCodes.UserForm.userFamilyName, '');\r\n const email = this.findFieldValue(userProfileQuestionConfigs, QuestionCodes.UserForm.userEmail, '');\r\n\r\n const title = { name: 'User', value: `${givenName} ${familyName}`, isActive: true };\r\n const fields = [\r\n { name: 'Email', value: email },\r\n { name: 'Organisation', value: organisation }\r\n ];\r\n return this.toHtmlHeader({ title, fields });\r\n }\r\n }\r\n\r\n configureUserFormRepeatingSection(\r\n isFormEditable: () => boolean,\r\n isEditItemAllowed: (itemIndex?: number) => boolean,\r\n isBrowseApplicationAllowed: (itemIndex?: number) => boolean,\r\n browseApplication: (itemIndex: number) => void,\r\n removeUserAccess: (itemIndex: number, onComplete: (cancel: boolean) => void) => void) {\r\n\r\n this.coreService.repeatingSectionFunctions['onBeforeRemoveUserAccess'] = (itemIndex: number, onComplete: (cancel: boolean) => void): void => {\r\n if (isEditItemAllowed(itemIndex)) {\r\n // If the item did not exist in the back-end but was added by the user on the form,\r\n // then deleting it will not result in any access being revoked, so there is no need to issue a warning.\r\n onComplete(false);\r\n return;\r\n }\r\n removeUserAccess(itemIndex, onComplete);\r\n }\r\n\r\n const hasWriteAccessToUserApplicationAccesses = () => isFormEditable();\r\n this.coreService.repeatingSectionFunctions['isUserApplicationAccessAddVisible'] = (itemIndex?: number): boolean => hasWriteAccessToUserApplicationAccesses();\r\n this.coreService.repeatingSectionFunctions['isUserApplicationAccessEditVisible'] = (itemIndex?: number): boolean => hasWriteAccessToUserApplicationAccesses() && isEditItemAllowed(itemIndex);\r\n this.coreService.repeatingSectionFunctions['isUserApplicationAccessSaveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToUserApplicationAccesses();\r\n this.coreService.repeatingSectionFunctions['isUserApplicationAccessRemoveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToUserApplicationAccesses();\r\n\r\n this.coreService.repeatingSectionFunctions['isUserApplicationAccessBrowseVisible'] = (itemIndex?: number): boolean => isBrowseApplicationAllowed(itemIndex);\r\n\r\n this.coreService.repeatingSectionFunctions['browseApplication'] = (itemIndex: number): void => browseApplication(itemIndex);\r\n }\r\n\r\n configureUserFormReadOnlyGridViewMode(\r\n toggleUserRequestControls: () => void,\r\n toggleAppAdministratorAssignmentControls: () => void,\r\n toggleAppSupportAssignmentControls: () => void,\r\n toggleOrgAuthorityAssignmentControls: () => void,\r\n toggleOrgSupportAssignmentControls: () => void): void {\r\n\r\n this.coreService.applicationFunctions['toggleUserRequestControls'] = () => toggleUserRequestControls();\r\n this.coreService.applicationFunctions['toggleAppAdministratorAssignmentControls'] = () => toggleAppAdministratorAssignmentControls();\r\n this.coreService.applicationFunctions['toggleAppSupportAssignmentControls'] = () => toggleAppSupportAssignmentControls();\r\n this.coreService.applicationFunctions['toggleOrgAuthorityAssignmentControls'] = () => toggleOrgAuthorityAssignmentControls();\r\n this.coreService.applicationFunctions['toggleOrgSupportAssignmentControls'] = () => toggleOrgSupportAssignmentControls();\r\n }\r\n\r\n configureOrganisationFormViewMode(\r\n getFormConfig: () => FormlyFieldConfig[],\r\n isFormEditable: () => boolean,\r\n isViewModeAllowed: () => boolean,\r\n setViewMode: (enabled: boolean) => void,\r\n getViewMode: () => boolean) {\r\n\r\n this.coreService.applicationFunctions['enableViewModeForDetails'] = () => setViewMode(true);\r\n this.coreService.applicationFunctions['disableViewModeForDetails'] = () => setViewMode(false);\r\n this.coreService.applicationFunctions['showEnableViewModeButtonForDetails'] = () => isFormEditable() && isViewModeAllowed() && !getViewMode();\r\n this.coreService.applicationFunctions['showDisableViewModeButtonForDetails'] = () => isFormEditable() && isViewModeAllowed() && getViewMode();\r\n\r\n this.coreService.pageFunctions['isViewModeForDetails'] =\r\n (pageConfig: FormlyFieldConfig) => isViewModeAllowed() && getViewMode();\r\n\r\n this.coreService.pageFunctions['isSectionIncludedInViewModeForDetails'] =\r\n (pageConfig: FormlyFieldConfig, sectionConfig: FormlyFieldConfig) => sectionConfig.key === SectionCodes.OrganisationForm.viewOrganisationDetails;\r\n\r\n this.coreService.pageFunctions['getViewModeCustomHtmlForDetails'] =\r\n (pageConfig: FormlyFieldConfig, sectionConfig: FormlyFieldConfig, sectionIndex: number, questionConfigs: FormlyFieldConfig[]) => {\r\n\r\n const detailsQuestionConfigs = this.formConfigurationParserService.findQuestionConfigs(\r\n getFormConfig?.(),\r\n NavTabNumbers.OrganisationForm.organisationDetails,\r\n PageNumbers.OrganisationForm.organisationDetails,\r\n SectionCodes.OrganisationForm.organisationDetails)\r\n ?? [];\r\n\r\n const name = this.findFieldValue(detailsQuestionConfigs, QuestionCodes.OrganisationForm.name, '');\r\n const organisationAuthority = this.findFieldValue(detailsQuestionConfigs, QuestionCodes.OrganisationForm.organisationAuthority, '');\r\n const organisationEscalationAuthority = this.findFieldValue(detailsQuestionConfigs, QuestionCodes.OrganisationForm.organisationEscalationAuthority, '');\r\n const isActive = this.findFieldValue(detailsQuestionConfigs, QuestionCodes.OrganisationForm.isActive, null);\r\n\r\n const title = { name: 'Organisation', value: name, isActive: isActive };\r\n const fields = [\r\n { name: 'Organisation authorities', value: organisationAuthority },\r\n { name: 'Organisation escalation authorities', value: organisationEscalationAuthority }\r\n ];\r\n return this.toHtmlHeader({ title, fields });\r\n }\r\n }\r\n\r\n configureOrganisationFormRepeatingSection(\r\n isFormEditable: () => boolean,\r\n isOrganisationExternalCodeReadOnly: () => boolean,\r\n isReviewDefinitionReadOnly: () => boolean,\r\n isEditingReviewDefinition: (sectionIndex: number) => boolean) {\r\n\r\n this.coreService.repeatingSectionFunctions['onBeforeRemoveSubOrganisation'] = (itemIndex: number, onComplete: (cancel: boolean) => void): void =>\r\n this.showOkCancelPopup('Are you sure you want to delete this sub-organisation?', 'Delete Sub-Organisation', onComplete);\r\n\r\n this.coreService.repeatingSectionFunctions['onBeforeRemoveOrganisationExternalCode'] = (itemIndex: number, onComplete: (cancel: boolean) => void): void =>\r\n this.showOkCancelPopup(\r\n `\r\n

    Are you sure you want to delete this external code?

    \r\n

    Please consider that if there are applications relying on this particular external code, then the API call-back functionality might stop working.

    \r\n `,\r\n 'Delete Organisation External Code',\r\n onComplete);\r\n\r\n this.coreService.repeatingSectionFunctions['onBeforeRemoveReviewDefinition'] = (itemIndex: number, onComplete: (cancel: boolean) => void): void =>\r\n this.showOkCancelPopup('Are you sure you want to delete this user review?', 'Delete User Review', onComplete);\r\n\r\n const hasWriteAccessToSubOrganisations = () => isFormEditable();\r\n this.coreService.repeatingSectionFunctions['isSubOrganisationAddVisible'] = (itemIndex?: number): boolean => hasWriteAccessToSubOrganisations();\r\n this.coreService.repeatingSectionFunctions['isSubOrganisationEditVisible'] = (itemIndex?: number): boolean => hasWriteAccessToSubOrganisations();\r\n this.coreService.repeatingSectionFunctions['isSubOrganisationSaveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToSubOrganisations();\r\n this.coreService.repeatingSectionFunctions['isSubOrganisationRemoveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToSubOrganisations();\r\n\r\n const hasWriteAccessToOrganisationExternalCodes = () => isFormEditable() && !isOrganisationExternalCodeReadOnly();\r\n this.coreService.repeatingSectionFunctions['isOrganisationExternalCodeAddVisible'] = (itemIndex?: number): boolean => hasWriteAccessToOrganisationExternalCodes();\r\n this.coreService.repeatingSectionFunctions['isOrganisationExternalCodeEditVisible'] = (itemIndex?: number): boolean => hasWriteAccessToOrganisationExternalCodes();\r\n this.coreService.repeatingSectionFunctions['isOrganisationExternalCodeSaveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToOrganisationExternalCodes();\r\n this.coreService.repeatingSectionFunctions['isOrganisationExternalCodeRemoveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToOrganisationExternalCodes();\r\n\r\n const hasWriteAccessToReviewDefinitions = () => isFormEditable() && !isReviewDefinitionReadOnly();\r\n this.coreService.repeatingSectionFunctions['isReviewDefinitionAddVisible'] = (itemIndex?: number): boolean => hasWriteAccessToReviewDefinitions();\r\n this.coreService.repeatingSectionFunctions['isReviewDefinitionEditVisible'] = (itemIndex?: number): boolean => hasWriteAccessToReviewDefinitions();\r\n this.coreService.repeatingSectionFunctions['isReviewDefinitionSaveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToReviewDefinitions() && !isEditingReviewDefinition(itemIndex);\r\n this.coreService.repeatingSectionFunctions['isReviewDefinitionRemoveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToReviewDefinitions();\r\n }\r\n\r\n configureOrganisationFormReadOnlyGridViewMode(\r\n toggleCustomApprovalControls: () => void): void {\r\n\r\n this.coreService.applicationFunctions['toggleCustomApprovalControls'] = () => toggleCustomApprovalControls();\r\n }\r\n\r\n configureReferenceDataFormViewMode(\r\n getFormConfig: () => FormlyFieldConfig[],\r\n isFormEditable: () => boolean,\r\n isViewModeAllowed: () => boolean,\r\n setViewMode: (enabled: boolean) => void,\r\n getViewMode: () => boolean) {\r\n\r\n this.coreService.applicationFunctions['enableViewModeForCategory'] = () => setViewMode(true);\r\n this.coreService.applicationFunctions['disableViewModeForCategory'] = () => setViewMode(false);\r\n this.coreService.applicationFunctions['showEnableViewModeButtonForCategory'] = () => isFormEditable() && isViewModeAllowed() && !getViewMode();\r\n this.coreService.applicationFunctions['showDisableViewModeButtonForCategory'] = () => isFormEditable() && isViewModeAllowed() && getViewMode();\r\n\r\n this.coreService.pageFunctions['isViewModeForCategory'] =\r\n (pageConfig: FormlyFieldConfig) => isViewModeAllowed() && getViewMode();\r\n\r\n this.coreService.pageFunctions['isSectionIncludedInViewModeForCategory'] =\r\n (pageConfig: FormlyFieldConfig, sectionConfig: FormlyFieldConfig) => sectionConfig.key === SectionCodes.ReferenceDataForm.viewRefDataCategory;\r\n\r\n this.coreService.pageFunctions['getViewModeCustomHtmlForCategory'] =\r\n (pageConfig: FormlyFieldConfig, sectionConfig: FormlyFieldConfig, sectionIndex: number, questionConfigs: FormlyFieldConfig[]) => {\r\n\r\n const referenceCategoryQuestionConfigs = this.formConfigurationParserService.findQuestionConfigs(\r\n getFormConfig?.(),\r\n NavTabNumbers.ReferenceDataForm.refDataCategory,\r\n PageNumbers.ReferenceDataForm.refDataCategory,\r\n SectionCodes.ReferenceDataForm.refDataCategory)\r\n ?? [];\r\n\r\n const text = this.findFieldValue(referenceCategoryQuestionConfigs, QuestionCodes.ReferenceDataForm.referenceCategoryText, '');\r\n const isActive = this.findFieldValue(referenceCategoryQuestionConfigs, QuestionCodes.ReferenceDataForm.referenceCategoryIsActive, null);\r\n\r\n const title = { name: 'Reference Data', value: text, isActive: isActive };\r\n const fields = [];\r\n return this.toHtmlHeader({ title, fields });\r\n }\r\n }\r\n\r\n configureReferenceDataFormRepeatingSection(\r\n isFormEditable: () => boolean,\r\n isRemoveItemAllowed: (itemIndex?: number) => boolean) {\r\n\r\n const hasWriteAccessToReferenceData = () => isFormEditable();\r\n this.coreService.repeatingSectionFunctions['isReferenceDataAddVisible'] = (itemIndex?: number): boolean => hasWriteAccessToReferenceData();\r\n this.coreService.repeatingSectionFunctions['isReferenceDataEditVisible'] = (itemIndex?: number): boolean => hasWriteAccessToReferenceData();\r\n this.coreService.repeatingSectionFunctions['isReferenceDataSaveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToReferenceData();\r\n this.coreService.repeatingSectionFunctions['isReferenceDataRemoveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToReferenceData() && isRemoveItemAllowed(itemIndex);\r\n }\r\n\r\n configureApplicationFormViewMode(\r\n getFormConfig: () => FormlyFieldConfig[],\r\n isFormEditable: () => boolean,\r\n isViewModeAllowed: () => boolean,\r\n setViewMode: (enabled: boolean) => void,\r\n getViewMode: () => boolean) {\r\n\r\n this.coreService.applicationFunctions['enableViewModeForApplicationProfile'] = () => setViewMode(true);\r\n this.coreService.applicationFunctions['disableViewModeForApplicationProfile'] = () => setViewMode(false);\r\n this.coreService.applicationFunctions['showEnableViewModeButtonForApplicationProfile'] = () => isFormEditable() && isViewModeAllowed() && !getViewMode();\r\n this.coreService.applicationFunctions['showDisableViewModeButtonForApplicationProfile'] = () => isFormEditable() && isViewModeAllowed() && getViewMode();\r\n\r\n this.coreService.pageFunctions['isViewModeForApplicationProfile'] =\r\n (pageConfig: FormlyFieldConfig) => isViewModeAllowed() && getViewMode();\r\n\r\n this.coreService.pageFunctions['isSectionIncludedInViewModeForApplicationProfile'] =\r\n (pageConfig: FormlyFieldConfig, sectionConfig: FormlyFieldConfig) => sectionConfig.key === SectionCodes.ApplicationForm.viewApplicationProfile;\r\n\r\n this.coreService.pageFunctions['getViewModeCustomHtmlForApplicationProfile'] =\r\n (pageConfig: FormlyFieldConfig, sectionConfig: FormlyFieldConfig, sectionIndex: number, questionConfigs: FormlyFieldConfig[]) => {\r\n\r\n const applicationProfileQuestionConfigs = this.formConfigurationParserService.findQuestionConfigs(\r\n getFormConfig?.(),\r\n NavTabNumbers.ApplicationForm.applicationProfile,\r\n PageNumbers.ApplicationForm.applicationProfile,\r\n SectionCodes.ApplicationForm.applicationProfile)\r\n ?? [];\r\n\r\n const applicationName = this.findFieldValue(applicationProfileQuestionConfigs, QuestionCodes.ApplicationForm.applicationName, '');\r\n const environments = this.findFieldValue(applicationProfileQuestionConfigs, QuestionCodes.ApplicationForm.environments, '');\r\n const authenticationType = this.findFieldValue(applicationProfileQuestionConfigs, QuestionCodes.ApplicationForm.authenticationType, '');\r\n const isActive = this.findFieldValue(applicationProfileQuestionConfigs, QuestionCodes.ApplicationForm.isActive, null);\r\n\r\n const title = { name: 'Application', value: applicationName, isActive: isActive };\r\n const fields = [\r\n { name: 'Environments', value: environments },\r\n { name: 'Authentication type', value: authenticationType }\r\n ];\r\n return this.toHtmlHeader({ title, fields });\r\n }\r\n }\r\n\r\n configureApplicationFormRepeatingSection(\r\n isFormEditable: () => boolean) {\r\n\r\n this.coreService.repeatingSectionFunctions['onBeforeRemoveFunctionalRoles'] = (itemIndex: number, onComplete: (cancel: boolean) => void): void =>\r\n this.showOkCancelPopup('Are you sure you want to delete this functional role?', 'Delete Functional Role', onComplete);\r\n\r\n this.coreService.repeatingSectionFunctions['onBeforeRemoveReviewDefinition'] = (itemIndex: number, onComplete: (cancel: boolean) => void): void =>\r\n this.showOkCancelPopup('Are you sure you want to delete this access review?', 'Delete Access Review', onComplete);\r\n\r\n const hasWriteAccessToFunctionalRoles = () => isFormEditable();\r\n this.coreService.repeatingSectionFunctions['isFunctionalRoleAddVisible'] = (itemIndex?: number): boolean => hasWriteAccessToFunctionalRoles();\r\n this.coreService.repeatingSectionFunctions['isFunctionalRoleEditVisible'] = (itemIndex?: number): boolean => hasWriteAccessToFunctionalRoles();\r\n this.coreService.repeatingSectionFunctions['isFunctionalRoleSaveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToFunctionalRoles();\r\n this.coreService.repeatingSectionFunctions['isFunctionalRoleRemoveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToFunctionalRoles();\r\n\r\n const hasWriteAccessToReviewDefinitions = () => isFormEditable();\r\n this.coreService.repeatingSectionFunctions['isReviewDefinitionAddVisible'] = (itemIndex?: number): boolean => hasWriteAccessToReviewDefinitions();\r\n this.coreService.repeatingSectionFunctions['isReviewDefinitionEditVisible'] = (itemIndex?: number): boolean => hasWriteAccessToReviewDefinitions();\r\n this.coreService.repeatingSectionFunctions['isReviewDefinitionSaveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToReviewDefinitions();\r\n this.coreService.repeatingSectionFunctions['isReviewDefinitionRemoveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToReviewDefinitions();\r\n}\r\n\r\n configureEnvironmentFormViewMode(\r\n getFormConfig: () => FormlyFieldConfig[],\r\n isFormEditable: () => boolean,\r\n isViewModeAllowed: () => boolean,\r\n setViewMode: (enabled: boolean) => void,\r\n getViewMode: () => boolean) {\r\n\r\n this.coreService.applicationFunctions['enableViewModeForEnvironment'] = () => setViewMode(true);\r\n this.coreService.applicationFunctions['disableViewModeForEnvironment'] = () => setViewMode(false);\r\n this.coreService.applicationFunctions['showEnableViewModeButtonForEnvironment'] = () => isFormEditable() && isViewModeAllowed() && !getViewMode();\r\n this.coreService.applicationFunctions['showDisableViewModeButtonForEnvironment'] = () => isFormEditable() && isViewModeAllowed() && getViewMode();\r\n\r\n this.coreService.pageFunctions['isViewModeForEnvironment'] =\r\n (pageConfig: FormlyFieldConfig) => isViewModeAllowed() && getViewMode();\r\n\r\n this.coreService.pageFunctions['isSectionIncludedInViewModeForEnvironment'] =\r\n (pageConfig: FormlyFieldConfig, sectionConfig: FormlyFieldConfig) => sectionConfig.key === SectionCodes.ApplicationEnvironmentForm.viewEnvironment;\r\n\r\n this.coreService.pageFunctions['getViewModeCustomHtmlForEnvironment'] =\r\n (pageConfig: FormlyFieldConfig, sectionConfig: FormlyFieldConfig, sectionIndex: number, questionConfigs: FormlyFieldConfig[]) => {\r\n\r\n const environmentQuestionConfigs = this.formConfigurationParserService.findQuestionConfigs(\r\n getFormConfig?.(),\r\n NavTabNumbers.ApplicationEnvironmentForm.environment,\r\n PageNumbers.ApplicationEnvironmentForm.environment,\r\n SectionCodes.ApplicationEnvironmentForm.environment)\r\n ?? [];\r\n\r\n const applicationName = this.findFieldValue(environmentQuestionConfigs, QuestionCodes.ApplicationEnvironmentForm.applicationName, '');\r\n const environmentName = this.findFieldValue(environmentQuestionConfigs, QuestionCodes.ApplicationEnvironmentForm.environmentName, '');\r\n const isActive = this.findFieldValue(environmentQuestionConfigs, QuestionCodes.ApplicationEnvironmentForm.isActive, null);\r\n const environmentAllowedOrganisations = this.findFieldValue(environmentQuestionConfigs, QuestionCodes.ApplicationEnvironmentForm.environmentAllowedOrganisations, '');\r\n\r\n const title = { name: 'Environment', value: [applicationName, environmentName].filter(item => item).join(' - '), isActive: isActive };\r\n const fields = [\r\n { name: 'Restrict access to organisations', value: environmentAllowedOrganisations }\r\n ];\r\n return this.toHtmlHeader({ title, fields });\r\n }\r\n }\r\n\r\n configureEnvironmentFormRepeatingPage(\r\n isFormEditable: () => boolean,\r\n forceRenderAsync: () => void) {\r\n\r\n this.coreService.repeatingPageFunctions['onBeforeAddFunctionalRole'] = (itemIndex: number, onComplete: (cancel: boolean) => void): void => {\r\n forceRenderAsync();\r\n onComplete(false);\r\n }\r\n this.coreService.repeatingPageFunctions['onBeforeRemoveFunctionalRole'] = (itemIndex: number, onComplete: (cancel: boolean) => void): void =>\r\n this.showOkCancelPopup('Are you sure you want to delete this functional role?', 'Delete Functional Role', onComplete);\r\n\r\n const hasWriteAccessToFunctionalRoles = () => isFormEditable();\r\n this.coreService.repeatingPageFunctions['isFunctionalRoleAddVisible'] = (itemIndex?: number): boolean => hasWriteAccessToFunctionalRoles();\r\n this.coreService.repeatingPageFunctions['isFunctionalRoleEditVisible'] = (itemIndex?: number): boolean => hasWriteAccessToFunctionalRoles();\r\n this.coreService.repeatingPageFunctions['isFunctionalRoleSaveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToFunctionalRoles();\r\n this.coreService.repeatingPageFunctions['isFunctionalRoleRemoveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToFunctionalRoles();\r\n\r\n const hasWriteAccessToEnvironmentCustomOrganisationApprovals = () => isFormEditable();\r\n this.coreService.repeatingSectionFunctions['isEnvironmentCustomOrganisationApprovalAddVisible'] = (itemIndex?: number): boolean => hasWriteAccessToEnvironmentCustomOrganisationApprovals();\r\n this.coreService.repeatingSectionFunctions['isEnvironmentCustomOrganisationApprovalEditVisible'] = (itemIndex?: number): boolean => hasWriteAccessToEnvironmentCustomOrganisationApprovals();\r\n this.coreService.repeatingSectionFunctions['isEnvironmentCustomOrganisationApprovalSaveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToEnvironmentCustomOrganisationApprovals();\r\n this.coreService.repeatingSectionFunctions['isEnvironmentCustomOrganisationApprovalRemoveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToEnvironmentCustomOrganisationApprovals();\r\n\r\n const hasWriteAccessToCustomEmailTemplates = () => isFormEditable();\r\n this.coreService.repeatingSectionFunctions['isCustomEmailTemplateAddVisible'] = (itemIndex?: number): boolean => hasWriteAccessToCustomEmailTemplates();\r\n this.coreService.repeatingSectionFunctions['isCustomEmailTemplateEditVisible'] = (itemIndex?: number): boolean => hasWriteAccessToCustomEmailTemplates();\r\n this.coreService.repeatingSectionFunctions['isCustomEmailTemplateSaveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToCustomEmailTemplates();\r\n this.coreService.repeatingSectionFunctions['isCustomEmailTemplateRemoveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToCustomEmailTemplates();\r\n\r\n const hasWriteAccessToCustomOrganisationApprovals = () => isFormEditable();\r\n this.coreService.repeatingSectionFunctions['isCustomOrganisationApprovalAddVisible'] = (itemIndex?: number): boolean => hasWriteAccessToCustomOrganisationApprovals();\r\n this.coreService.repeatingSectionFunctions['isCustomOrganisationApprovalEditVisible'] = (itemIndex?: number): boolean => hasWriteAccessToCustomOrganisationApprovals();\r\n this.coreService.repeatingSectionFunctions['isCustomOrganisationApprovalSaveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToCustomOrganisationApprovals();\r\n this.coreService.repeatingSectionFunctions['isCustomOrganisationApprovalRemoveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToCustomOrganisationApprovals();\r\n\r\n const hasWriteAccessToApiCallBacks = () => isFormEditable();\r\n this.coreService.repeatingSectionFunctions['isApiCallBackAddVisible'] = (itemIndex?: number): boolean => hasWriteAccessToApiCallBacks();\r\n this.coreService.repeatingSectionFunctions['isApiCallBackEditVisible'] = (itemIndex?: number): boolean => hasWriteAccessToApiCallBacks();\r\n this.coreService.repeatingSectionFunctions['isApiCallBackSaveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToApiCallBacks();\r\n this.coreService.repeatingSectionFunctions['isApiCallBackRemoveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToApiCallBacks();\r\n\r\n const hasWriteAccessToAadGroups = () => isFormEditable();\r\n this.coreService.repeatingSectionFunctions['isAadGroupAddVisible'] = (itemIndex?: number): boolean => hasWriteAccessToAadGroups();\r\n this.coreService.repeatingSectionFunctions['isAadGroupEditVisible'] = (itemIndex?: number): boolean => hasWriteAccessToAadGroups();\r\n this.coreService.repeatingSectionFunctions['isAadGroupSaveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToAadGroups();\r\n this.coreService.repeatingSectionFunctions['isAadGroupRemoveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToAadGroups();\r\n\r\n const hasWriteAccessToLdapGroups = () => isFormEditable();\r\n this.coreService.repeatingSectionFunctions['isLdapGroupAddVisible'] = (itemIndex?: number): boolean => hasWriteAccessToLdapGroups();\r\n this.coreService.repeatingSectionFunctions['isLdapGroupEditVisible'] = (itemIndex?: number): boolean => hasWriteAccessToLdapGroups();\r\n this.coreService.repeatingSectionFunctions['isLdapGroupSaveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToLdapGroups();\r\n this.coreService.repeatingSectionFunctions['isLdapGroupRemoveVisible'] = (itemIndex?: number): boolean => hasWriteAccessToLdapGroups();\r\n }\r\n\r\n configureReviewDefinitionFormViewMode(\r\n getFormConfig: () => FormlyFieldConfig[],\r\n isFormEditable: () => boolean,\r\n isViewModeAllowed: () => boolean,\r\n setViewMode: (enabled: boolean) => void,\r\n getViewMode: () => boolean) {\r\n\r\n this.coreService.applicationFunctions['enableViewModeForDetails'] = () => setViewMode(true);\r\n this.coreService.applicationFunctions['disableViewModeForDetails'] = () => setViewMode(false);\r\n this.coreService.applicationFunctions['showEnableViewModeButtonForDetails'] = () => isFormEditable() && isViewModeAllowed() && !getViewMode();\r\n this.coreService.applicationFunctions['showDisableViewModeButtonForDetails'] = () => isFormEditable() && isViewModeAllowed() && getViewMode();\r\n\r\n this.coreService.pageFunctions['isViewModeForDetails'] =\r\n (pageConfig: FormlyFieldConfig) => isViewModeAllowed() && getViewMode();\r\n\r\n this.coreService.pageFunctions['isSectionIncludedInViewModeForDetails'] =\r\n (pageConfig: FormlyFieldConfig, sectionConfig: FormlyFieldConfig) => sectionConfig.key === SectionCodes.ReviewDefinitionForm.viewReviewDefinitionDetails;\r\n\r\n this.coreService.pageFunctions['getViewModeCustomHtmlForDetails'] =\r\n (pageConfig: FormlyFieldConfig, sectionConfig: FormlyFieldConfig, sectionIndex: number, questionConfigs: FormlyFieldConfig[]) => {\r\n\r\n const findQuestionConfigs = (sectionCode: string) => this.formConfigurationParserService.findQuestionConfigs(\r\n getFormConfig?.(),\r\n NavTabNumbers.ReviewDefinitionForm.reviewDefinitionDetails,\r\n PageNumbers.ReviewDefinitionForm.reviewDefinitionDetails,\r\n sectionCode)\r\n ?? [];\r\n const detailsQuestionConfigs = findQuestionConfigs(SectionCodes.ReviewDefinitionForm.reviewDefinitionDetails);\r\n const scheduleQuestionConfigs = findQuestionConfigs(SectionCodes.ReviewDefinitionForm.reviewDefinitionSchedule);\r\n const settingsQuestionConfigs = findQuestionConfigs(SectionCodes.ReviewDefinitionForm.reviewDefinitionSettings);\r\n\r\n const name = this.findFieldValue(detailsQuestionConfigs, QuestionCodes.ReviewDefinitionForm.name, '');\r\n const isActive = this.findFieldValue(detailsQuestionConfigs, QuestionCodes.ReviewDefinitionForm.isActive, null);\r\n const startDate = this.findFieldValue(scheduleQuestionConfigs, QuestionCodes.ReviewDefinitionForm.startDate, '');\r\n const durationInDays = this.findFieldValue(scheduleQuestionConfigs, QuestionCodes.ReviewDefinitionForm.durationInDays, '');\r\n const isRecurrent = this.findFieldValue(scheduleQuestionConfigs, QuestionCodes.ReviewDefinitionForm.isRecurrent, '') === OptionSetValues.ReviewDefinitionForm.YesNo.Yes;\r\n const numberOfOccurrences = this.findFieldValue(scheduleQuestionConfigs, QuestionCodes.ReviewDefinitionForm.numberOfOccurrences, 'Unlimited');\r\n const recurrencePeriodInMonths = this.findFieldValue(scheduleQuestionConfigs, QuestionCodes.ReviewDefinitionForm.recurrencePeriodInMonths, '');\r\n const useAsPrivateIndividualUserReview = this.findFieldValue(settingsQuestionConfigs, QuestionCodes.ReviewDefinitionForm.useAsPrivateIndividualUserReview, false);\r\n\r\n const title = { name: 'Review Definition', value: name, isActive: isActive };\r\n const fields = [\r\n { name: 'Start date', value: startDate },\r\n { name: 'Duration [days]', value: durationInDays },\r\n { name: 'Number of occurrences', value: isRecurrent ? numberOfOccurrences : '1' },\r\n { name: 'Recurrence [months]', value: isRecurrent ? recurrencePeriodInMonths : 'N/A' },\r\n { name: 'Use as a \"user review\" for \"private individuals\"', value: useAsPrivateIndividualUserReview ? 'Yes' : 'No' }\r\n ];\r\n return this.toHtmlHeader({ title, fields });\r\n }\r\n }\r\n\r\n configureReviewDefinitionFormReadOnlyGridViewMode(\r\n toggleReviewOccurrenceHistoryControls: () => void): void {\r\n\r\n this.coreService.applicationFunctions['toggleReviewOccurrenceHistoryControls'] = () => toggleReviewOccurrenceHistoryControls();\r\n }\r\n\r\n // FormGetId methods\r\n\r\n userFormGetAccessDefinitionId(model: any, sectionIndex: number) {\r\n return this.responseParserService.findQuestionModel(\r\n model,\r\n NavTabNumbers.UserForm.applicationAccess,\r\n PageNumbers.UserForm.applicationAccess,\r\n null,\r\n SectionCodes.UserForm.applicationRef,\r\n sectionIndex,\r\n 'id');\r\n }\r\n\r\n organisationFormGetSubOrganisationId(model: any, sectionIndex: number) {\r\n return this.responseParserService.findQuestionModel(\r\n model,\r\n NavTabNumbers.OrganisationForm.subOrganisations,\r\n PageNumbers.OrganisationForm.subOrganisations,\r\n null,\r\n SectionCodes.OrganisationForm.subOrganisations,\r\n sectionIndex,\r\n 'id');\r\n }\r\n\r\n organisationFormGetOrganisationExternalCodeId(model: any, sectionIndex: number) {\r\n return this.responseParserService.findQuestionModel(\r\n model,\r\n NavTabNumbers.OrganisationForm.organisationExternalCodes,\r\n PageNumbers.OrganisationForm.organisationExternalCodes,\r\n null,\r\n SectionCodes.OrganisationForm.organisationExternalCodes,\r\n sectionIndex,\r\n 'id');\r\n }\r\n\r\n organisationFormGetReviewDefinitionId(model: any, sectionIndex: number) {\r\n return this.responseParserService.findQuestionModel(\r\n model,\r\n NavTabNumbers.OrganisationForm.reviewDefinitions,\r\n PageNumbers.OrganisationForm.reviewDefinitions,\r\n null,\r\n SectionCodes.OrganisationForm.reviewDefinitions,\r\n sectionIndex,\r\n 'id');\r\n }\r\n\r\n referenceDataFormGetRefValueId(model: any, sectionIndex: number) {\r\n return this.responseParserService.findQuestionModel(\r\n model,\r\n NavTabNumbers.ReferenceDataForm.refDataValue,\r\n PageNumbers.ReferenceDataForm.refDataValue,\r\n null,\r\n SectionCodes.ReferenceDataForm.refDataValue,\r\n sectionIndex,\r\n 'id');\r\n }\r\n\r\n applicationFormGetFunctionalRoleId(model: any, sectionIndex: number) {\r\n return this.responseParserService.findQuestionModel(\r\n model,\r\n NavTabNumbers.ApplicationForm.functionalRoles,\r\n PageNumbers.ApplicationForm.functionalRoles,\r\n null,\r\n SectionCodes.ApplicationForm.functionalRoles,\r\n sectionIndex,\r\n 'id');\r\n }\r\n\r\n applicationFormGetReviewDefinitionId(model: any, sectionIndex: number) {\r\n return this.responseParserService.findQuestionModel(\r\n model,\r\n NavTabNumbers.ApplicationForm.reviewDefinitions,\r\n PageNumbers.ApplicationForm.reviewDefinitions,\r\n null,\r\n SectionCodes.ApplicationForm.reviewDefinitions,\r\n sectionIndex,\r\n 'id');\r\n }\r\n\r\n environmentFormGetCustomOrganisationApprovalId(model: any, pageIndex: number, sectionIndex: number) {\r\n return this.responseParserService.findQuestionModel(\r\n model,\r\n NavTabNumbers.ApplicationEnvironmentForm.role,\r\n PageNumbers.ApplicationEnvironmentForm.role,\r\n pageIndex,\r\n SectionCodes.ApplicationEnvironmentForm.customOrganisationApproval,\r\n sectionIndex,\r\n 'id');\r\n }\r\n\r\n environmentFormGetEnvironmentCustomOrganisationApprovalId(model: any, sectionIndex: number) {\r\n return this.responseParserService.findQuestionModel(\r\n model,\r\n NavTabNumbers.ApplicationEnvironmentForm.environmentCustomOrganisationApproval,\r\n PageNumbers.ApplicationEnvironmentForm.environmentCustomOrganisationApproval,\r\n null,\r\n SectionCodes.ApplicationEnvironmentForm.environmentCustomOrganisationApproval,\r\n sectionIndex,\r\n 'id');\r\n }\r\n\r\n // FormIsEditing methods\r\n\r\n userFormIsEditingAccessDefinition(model: any, sectionIndex: number): boolean {\r\n const idValue = this.userFormGetAccessDefinitionId(model, sectionIndex);\r\n return idValue !== null && idValue !== undefined;\r\n }\r\n\r\n organisationFormIsEditingSubOrganisation(model: any, sectionIndex: number): boolean {\r\n const idValue = this.organisationFormGetSubOrganisationId(model, sectionIndex);\r\n return idValue !== null && idValue !== undefined;\r\n }\r\n\r\n organisationFormIsEditingOrganisationExternalCode(model: any, sectionIndex: number): boolean {\r\n const idValue = this.organisationFormGetOrganisationExternalCodeId(model, sectionIndex);\r\n return idValue !== null && idValue !== undefined;\r\n }\r\n\r\n organisationFormIsEditingReviewDefinition(model: any, sectionIndex: number): boolean {\r\n const idValue = this.organisationFormGetReviewDefinitionId(model, sectionIndex);\r\n return idValue !== null && idValue !== undefined;\r\n }\r\n\r\n referenceDataFormIsEditingRefValue(model: any, sectionIndex: number): boolean {\r\n const idValue = this.referenceDataFormGetRefValueId(model, sectionIndex);\r\n return idValue !== null && idValue !== undefined;\r\n }\r\n\r\n applicationFormIsEditingFunctionalRole(model: any, sectionIndex: number): boolean {\r\n const idValue = this.applicationFormGetFunctionalRoleId(model, sectionIndex);\r\n return idValue !== null && idValue !== undefined;\r\n }\r\n\r\n applicationFormIsEditingReviewDefinition(model: any, sectionIndex: number): boolean {\r\n const idValue = this.applicationFormGetReviewDefinitionId(model, sectionIndex);\r\n return idValue !== null && idValue !== undefined;\r\n }\r\n\r\n environmentFormIsEditingCustomOrganisationApproval(model: any, pageIndex: number, sectionIndex: number): boolean {\r\n const idValue = this.environmentFormGetCustomOrganisationApprovalId(model, pageIndex, sectionIndex);\r\n return idValue !== null && idValue !== undefined;\r\n }\r\n\r\n environmentFormIsEditingEnvironmentCustomOrganisationApproval(model: any, sectionIndex: number): boolean {\r\n const idValue = this.environmentFormGetEnvironmentCustomOrganisationApprovalId(model, sectionIndex);\r\n return idValue !== null && idValue !== undefined;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { GetUserRequestDetailsResponse } from \"../interfaces/get-user-request-details-response.interface\";\r\nimport { GetReviewDecisionDetailsResponse } from \"../interfaces/get-review-decision-details-response.interface\";\r\n\r\nimport { HtmlHelperService } from \"./html-helper.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormatHtmlDetailsService {\r\n\r\n constructor(\r\n private htmlHelperService: HtmlHelperService) {\r\n }\r\n\r\n formatUserRequestDetailsHtml(response: GetUserRequestDetailsResponse): string {\r\n\r\n const userRequestDetails = this.htmlHelperService.toEncodedHtml(response) ?? {};\r\n userRequestDetails.reasonForRequestingAccess = this.htmlHelperService.toEncodedHtmlLineBreaks(userRequestDetails.reasonForRequestingAccess);\r\n userRequestDetails.reasonForRequestingAccessRevoke = this.htmlHelperService.toEncodedHtmlLineBreaks(userRequestDetails.reasonForRequestingAccessRevoke);\r\n userRequestDetails.reasonForRejection = this.htmlHelperService.toEncodedHtmlLineBreaks(userRequestDetails.reasonForRejection);\r\n\r\n const reasonForRequestingAccessHtmlParagraph = this.formatHtmlParagraph(\r\n 'Reason For Requesting Access',\r\n userRequestDetails.reasonForRequestingAccess);\r\n\r\n const reasonForRequestingAccessRevokeHtmlParagraph = this.formatHtmlParagraph(\r\n 'Reason For Requesting The Revoking Of Access',\r\n userRequestDetails.reasonForRequestingAccessRevoke);\r\n\r\n const userOrganisationRoleHtmlParagraph = this.formatHtmlParagraph(\r\n 'User Organisation Role',\r\n userRequestDetails.userOrganisationRole);\r\n\r\n const awaitingApprovalDetailsHtmlList = this.formatHtmlList(\r\n 'Pending Approval',\r\n 'The Access Request is awaiting approval by one of these users:',\r\n userRequestDetails.awaitingApprovalDetails?.approverDetails);\r\n\r\n const reasonForRejectionHtmlParagraph = this.formatHtmlParagraph(\r\n 'Reason For Rejecting The Request',\r\n userRequestDetails.reasonForRejection);\r\n\r\n const changeLogHtmlTable = this.formatHtmlTable(\r\n 'Change Log',\r\n ['Time', 'User', 'Change'],\r\n userRequestDetails.changeLog?.rows?.map(row => [row.time, row.user, row.change]));\r\n\r\n const errorDetailsHtmlParagraph = this.formatHtmlParagraph(\r\n 'Error Details',\r\n userRequestDetails.errorDetail);\r\n\r\n return (\r\n reasonForRequestingAccessHtmlParagraph +\r\n reasonForRequestingAccessRevokeHtmlParagraph +\r\n userOrganisationRoleHtmlParagraph +\r\n awaitingApprovalDetailsHtmlList +\r\n reasonForRejectionHtmlParagraph + \r\n changeLogHtmlTable +\r\n errorDetailsHtmlParagraph\r\n );\r\n }\r\n\r\n formatReviewDecisionDetailsHtml(response: GetReviewDecisionDetailsResponse): string {\r\n\r\n const reviewDecisionDetails = this.htmlHelperService.toEncodedHtml(response);\r\n reviewDecisionDetails.reasonForDenial = this.htmlHelperService.toEncodedHtmlLineBreaks(reviewDecisionDetails.reasonForDenial);\r\n\r\n const reasonForDenialHtmlParagraph = this.formatHtmlParagraph(\r\n 'Reason For The Revoke Decision',\r\n reviewDecisionDetails.reasonForDenial);\r\n\r\n const changeLogHtmlTable = this.formatHtmlTable(\r\n 'Change Log',\r\n ['Time', 'User', 'Change'],\r\n reviewDecisionDetails?.changeLog?.rows?.map(row => [row.time, row.user, row.change]));\r\n\r\n const errorDetailsHtmlParagraph = this.formatHtmlParagraph(\r\n 'Error Details',\r\n reviewDecisionDetails.errorDetail);\r\n\r\n return (\r\n reasonForDenialHtmlParagraph +\r\n changeLogHtmlTable +\r\n errorDetailsHtmlParagraph\r\n );\r\n }\r\n\r\n private formatHtmlParagraph(paragraphName: string, paragraphContent: string): string {\r\n if (!paragraphContent?.length) {\r\n return '';\r\n }\r\n const html: string[] = [];\r\n html.push(this.htmlHelperService.formatHtml('h5', paragraphName));\r\n html.push(this.htmlHelperService.formatHtml('p', paragraphContent));\r\n return html.join('');\r\n }\r\n\r\n private formatHtmlList(listName: string, listDescription: string, listItems: string[]): string {\r\n if (!listItems?.length) {\r\n return '';\r\n }\r\n const html: string[] = [];\r\n html.push(this.htmlHelperService.formatHtml('h5', listName));\r\n html.push(this.htmlHelperService.formatHtml('p', listDescription));\r\n html.push(this.htmlHelperService.formatHtmlList(HtmlHelperService.listTag, HtmlHelperService.listItemTag, listItems));\r\n return html.join('');\r\n }\r\n\r\n private formatHtmlTable(tableName: string, headerRow: string[], dataRows: string[][]): string {\r\n const html: string[] = [];\r\n html.push(this.htmlHelperService.formatHtml('h5', tableName));\r\n if (!dataRows?.length) {\r\n html.push(this.htmlHelperService.formatHtml('p', 'No data found.'));\r\n return;\r\n }\r\n html.push(this.htmlHelperService.formatHtmlTable(headerRow, dataRows));\r\n return html.join('');\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { CardSetHeaderConfiguration, MenuConfigService } from \"dspx-core\";\r\n\r\nimport { AppDataService } from \"./app-data.service\";\r\n\r\nimport { AppDataKeys, AppSelector, HeaderMenuToggleSelector, HeaderSelector, UserAvatar, VictorianGovernment } from \"../constants/app-data.constants\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HeaderCustomisationService {\r\n\r\n constructor(\r\n private menuConfigService: MenuConfigService,\r\n private appDataService: AppDataService) {\r\n }\r\n\r\n // Get the header configuration, which may or may not include the logged-in user information.\r\n getHeaderConfiguration(userProfile?: { fullName: string }): CardSetHeaderConfiguration {\r\n\r\n const headerConfiguration: CardSetHeaderConfiguration = {};\r\n\r\n headerConfiguration.applicationTitle = {\r\n label: this.appDataService.getAppData(AppDataKeys.applicationTitle),\r\n url: this.appDataService.getAppData(AppDataKeys.applicationUrl),\r\n target: '_self'\r\n };\r\n\r\n headerConfiguration.miscellaneousLogo = {\r\n source: VictorianGovernment.logo,\r\n link: {\r\n label: VictorianGovernment.title,\r\n url: VictorianGovernment.url,\r\n target: '_blank'\r\n }\r\n };\r\n\r\n if (userProfile) {\r\n headerConfiguration.loggedInUser = {\r\n name: userProfile.fullName,\r\n imageSource: UserAvatar.source,\r\n imageDescription: userProfile.fullName,\r\n menuSubItems: [\r\n {\r\n label: \"Logout\",\r\n icon: \"pi pi-fw pi-sign-out\",\r\n routerLink: \"logout\"\r\n }\r\n ]\r\n };\r\n }\r\n\r\n return headerConfiguration;\r\n }\r\n\r\n\r\n // Ensure the menu functionality is disabled, i.e.:\r\n // - hide the \"menu toggle link\" (i.e. the link in the header that allows to toggle the menu visibility)\r\n // - hide the menu\r\n disableMenu(): void {\r\n\r\n const { isMenuVisible } = this.getMenuStatus();\r\n if (isMenuVisible) {\r\n this.toggleMenuVisibility();\r\n }\r\n\r\n this.setHeaderMenuToggleVisibility({ showHeaderMenuToggle: false });\r\n }\r\n\r\n // Ensure the menu functionality is enabled, i.e.:\r\n // - display the \"menu toggle link\" (i.e. the link in the header that allows to toggle the menu visibility)\r\n // - display the menu (only if it is supposed to be displayed by default)\r\n enableMenu(): void {\r\n\r\n this.setHeaderMenuToggleVisibility({ showHeaderMenuToggle: true });\r\n\r\n const { isMenuVisible, isMenuVisibleByDefault } = this.getMenuStatus();\r\n if (!isMenuVisible && isMenuVisibleByDefault) {\r\n this.toggleMenuVisibility();\r\n }\r\n }\r\n\r\n private getMenuStatus(): { isMenuVisible: boolean; isMenuVisibleByDefault: boolean } {\r\n return (this.menuConfigService.styleConfigService.layoutMode === 'overlay')\r\n ? { isMenuVisible: !!this.menuConfigService.overlayMenuActive, isMenuVisibleByDefault: false }\r\n : (this.menuConfigService.isDesktop())\r\n ? { isMenuVisible: !this.menuConfigService.staticMenuDesktopInactive, isMenuVisibleByDefault: true }\r\n : { isMenuVisible: !!this.menuConfigService.staticMenuMobileActive, isMenuVisibleByDefault: false };\r\n }\r\n\r\n private toggleMenuVisibility(): void {\r\n this.menuConfigService.onMenuButtonClick(new Event('click'));\r\n }\r\n\r\n private setHeaderMenuToggleVisibility(configuration: { showHeaderMenuToggle: boolean }): void {\r\n const headerMenuToggleHtmlElement = document.querySelector(`${AppSelector} ${HeaderSelector} ${HeaderMenuToggleSelector}`) as HTMLElement;\r\n if (headerMenuToggleHtmlElement) {\r\n headerMenuToggleHtmlElement.style['display'] = configuration?.showHeaderMenuToggle ? '' : 'none';\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { ComponentDialogSelector } from \"../constants/app-data.constants\";\r\n\r\nexport type PageActionButtonPath = [navTabNumber: number, pageNumber: number, pageActionButtonCode: string];\r\n\r\nexport type HtmlTableColumnConfiguration = {\r\n isRightAligned?: boolean;\r\n}\r\n\r\nexport type HtmlTableConfiguration = {\r\n dataColumns?: { [columnIndex: number]: HtmlTableColumnConfiguration };\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HtmlHelperService {\r\n\r\n toEncodedHtml(input: any): any {\r\n input = input ?? null;\r\n if (input instanceof Array) {\r\n return input.map(item => this.toEncodedHtml(item));\r\n }\r\n if (input !== null && typeof input === 'object') {\r\n const object = {};\r\n for (var propertyName in input) {\r\n object[propertyName] = this.toEncodedHtml(input[propertyName]);\r\n }\r\n return object;\r\n }\r\n return input?.toString()?.replace(/[\\u00A0-\\u9999<>\\&]/g, s => `&#${s.charCodeAt(0)};`);\r\n }\r\n\r\n toEncodedHtmlLineBreaks(input: string): string {\r\n return input?.replace(/\\n/g, '
    ');\r\n }\r\n\r\n formatHtml(tag: string, innerHtml: string, classAttribute?: string): string {\r\n const classAttributeSuffix = classAttribute ? ` class=\"${classAttribute}\"` : '';\r\n return `<${tag}${classAttributeSuffix}>${innerHtml ?? ''}`;\r\n }\r\n\r\n formatHtmlList(tag: string, itemTag: string, items: string[]): string {\r\n return this.formatHtml(tag, items?.map(item => this.formatHtml(itemTag, item))?.join(''));\r\n }\r\n\r\n formatHtmlTable(headerRow: string[], dataRows: string[][], configuration?: HtmlTableConfiguration): string {\r\n const html: string[] = [];\r\n html.push(``);\r\n html.push('');\r\n html.push('');\r\n for (const cell of headerRow ?? []) {\r\n html.push(this.formatHtml('th', cell));\r\n }\r\n html.push('');\r\n html.push('');\r\n html.push('');\r\n for (const dataRow of dataRows ?? []) {\r\n html.push('');\r\n let columnIndex = 0;\r\n for (const cell of dataRow ?? []) {\r\n const classAttribute = configuration?.dataColumns?.[columnIndex]?.isRightAligned ? 'duopv2-compact-table-cell-right-aligned' : '';\r\n html.push(this.formatHtml('td', cell, classAttribute));\r\n columnIndex++;\r\n }\r\n html.push('');\r\n }\r\n html.push('');\r\n html.push('
    ');\r\n return html.join('');\r\n }\r\n\r\n static readonly fieldNameTag = 'b';\r\n static readonly fieldValueTag = 'i';\r\n static readonly listTag = 'ul';\r\n static readonly listItemTag = 'li';\r\n\r\n formatFieldName(name: string): string {\r\n return this.formatHtml(HtmlHelperService.fieldNameTag, name);\r\n }\r\n\r\n formatFieldValue(value: string): string {\r\n return this.formatHtml(HtmlHelperService.fieldValueTag, value);\r\n }\r\n\r\n formatField(field: { name: string, value: string }): string {\r\n return `${this.formatFieldName(field?.name)}: ${this.formatFieldValue(field?.value)}`;\r\n }\r\n\r\n formatFieldValues(values: string[]): string {\r\n return this.formatHtmlList(HtmlHelperService.listTag, HtmlHelperService.listItemTag, values?.map(value => this.formatFieldValue(value)));\r\n }\r\n\r\n formatFields(fields: { name: string, value: string }[]): string {\r\n return this.formatHtmlList(HtmlHelperService.listTag, HtmlHelperService.listItemTag, fields?.map(field => this.formatField(field)));\r\n }\r\n\r\n createField(name: string, value: string): { name: string, value: string } {\r\n return { name, value };\r\n }\r\n\r\n createFieldFromPropertyName(object: any, propertyName: string): { name: string, value: string } {\r\n return this.createField(propertyName, object?.[propertyName]?.toString());\r\n }\r\n\r\n setFocusToHtmlElementByClassName(className: string, delayMs = 0): void {\r\n this.setFocusToHtmlElement(() => document.getElementsByClassName(className)?.[0] as HTMLElement, delayMs);\r\n }\r\n\r\n setFocusToHtmlElementById(id: string, delayMs = 0): void {\r\n this.setFocusToHtmlElement(() => document.getElementById(id), delayMs);\r\n }\r\n\r\n setFocusToHtmlElement(getHtmlElement: () => HTMLElement, delayMs = 0): void {\r\n const functionToInvoke = () => {\r\n const element = getHtmlElement();\r\n if (element) {\r\n element.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n element.focus({ preventScroll: true });\r\n }\r\n };\r\n this.invokeFunction(() => functionToInvoke(), delayMs);\r\n }\r\n\r\n getElementsById(id: string): TElement[] {\r\n const elements = Array.from(document.querySelectorAll(`#${id}`));\r\n return elements;\r\n }\r\n\r\n getPageActionButtonId(pageNumber: number, pageActionButtonCode: string): string {\r\n const pageActionButtonId = `page${pageNumber}-${pageActionButtonCode}`;\r\n return pageActionButtonId;\r\n }\r\n\r\n ensurePageActionButtonsAreEnabled(pageActionButtonPaths: PageActionButtonPath[]): void {\r\n const pageActionButtonIds = pageActionButtonPaths\r\n .map(pageActionButtonPath => {\r\n const [navTabNumber, pageNumber, pageActionButtonCode] = pageActionButtonPath;\r\n return this.getPageActionButtonId(pageNumber, pageActionButtonCode);\r\n });\r\n const distinctPageActionButtonIds = [...new Set(pageActionButtonIds)];\r\n for (const pageActionButtonId of distinctPageActionButtonIds) {\r\n const htmlButtonElements = this.getElementsById(pageActionButtonId);\r\n for (const htmlButtonElement of htmlButtonElements ?? []) {\r\n htmlButtonElement?.removeAttribute('disabled');\r\n }\r\n }\r\n }\r\n\r\n getComponentDialogButtonHtmlElement(appSelector: string, componentSelector: string, buttonTitle: string): HTMLElement {\r\n return document.querySelector(`${appSelector} ${componentSelector} ${ComponentDialogSelector} p-button[title='${buttonTitle}']`) as HTMLElement;\r\n }\r\n\r\n getComponentDialogIconButtonHtmlElement(appSelector: string, componentSelector: string, buttonClass: string): HTMLElement {\r\n return document.querySelector(`${appSelector} ${componentSelector} ${ComponentDialogSelector} button.${buttonClass}`) as HTMLElement;\r\n }\r\n \r\n clickButtonByTitle(appSelector: string, componentSelector: string, buttonTitle: string, delayMs: number = 0): void {\r\n this.invokeFunction(() => this.clickElement(appSelector, componentSelector, `button[title='${buttonTitle}']`), delayMs);\r\n }\r\n\r\n addOneOffEventListener(target: TEventTarget, name: string, listener: (event: any) => void): void {\r\n const onEventCallBack = (e: any) => {\r\n target.removeEventListener(name, onEventCallBack);\r\n listener(e);\r\n };\r\n target.addEventListener(name, onEventCallBack);\r\n }\r\n\r\n uploadFile(fileTypes?: string[], onSelect?: (file: File) => void, onCancel?: () => void): void {\r\n let element: HTMLInputElement = null;\r\n try {\r\n element = document.createElement('input');\r\n element.setAttribute('style', 'display: none');\r\n element.setAttribute('type', 'file');\r\n if (fileTypes && fileTypes.length) {\r\n element.setAttribute('accept', fileTypes.join());\r\n }\r\n this.addOneOffEventListener(element, \"change\", changeEvent => {\r\n onSelect?.(changeEvent.target.files[0]);\r\n element?.remove();\r\n });\r\n this.addOneOffEventListener(element, \"cancel\", cancelEvent =>\r\n {\r\n onCancel?.();\r\n element?.remove();\r\n });\r\n element.click();\r\n }\r\n catch {\r\n element?.remove();\r\n }\r\n }\r\n\r\n private invokeFunction(functionToInvoke: () => void, delayMs: number = null): void {\r\n if (delayMs !== null && delayMs !== undefined && delayMs >= 0) {\r\n setTimeout(() => functionToInvoke(), delayMs);\r\n } else {\r\n functionToInvoke();\r\n }\r\n }\r\n\r\n private clickElement(appSelector: string, componentSelector: string, elementSelector: string): void {\r\n const element = document.querySelector(`${appSelector} ${componentSelector} ${elementSelector}`) as HTMLElement;\r\n element?.click();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nexport type NavTabPath = [navTabNumber: number];\r\nexport type PagePath = [navTabNumber: number, pageNumber: number];\r\nexport type SectionPath = [navTabNumber: number, pageNumber: number, sectionCode: string];\r\nexport type QuestionPath = [navTabNumber: number, pageNumber: number, sectionCode: string, questionCode: string];\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResponseParserService {\r\n\r\n findNavTabModel(model: any, navTabNumber: number): any {\r\n return model?.form?.tabs?.[`tab${navTabNumber}`];\r\n }\r\n\r\n findPageModel(model: any, navTabNumber: number, pageNumber: number, pageIndex: number): any {\r\n const isTryingToFindRepeatingPageItem = pageIndex !== null && pageIndex !== undefined;\r\n return isTryingToFindRepeatingPageItem\r\n ? this.findNavTabModel(model, navTabNumber)?.[`page${pageNumber}`]?.[pageIndex]\r\n : this.findNavTabModel(model, navTabNumber)?.[`page${pageNumber}`];\r\n }\r\n\r\n findSectionModel(model: any, navTabNumber: number, pageNumber: number, pageIndex: number, sectionCode: string, sectionIndex: number): any {\r\n const isTryingToFindRepeatingSectionItem = sectionIndex !== null && sectionIndex !== undefined;\r\n return isTryingToFindRepeatingSectionItem\r\n ? this.findPageModel(model, navTabNumber, pageNumber, pageIndex)?.[sectionCode]?.[sectionIndex]\r\n : this.findPageModel(model, navTabNumber, pageNumber, pageIndex)?.[sectionCode];\r\n }\r\n\r\n findQuestionModel(model: any, navTabNumber: number, pageNumber: number, pageIndex: number, sectionCode: string, sectionIndex: number, questionCode: string) {\r\n return this.findSectionModel(model, navTabNumber, pageNumber, pageIndex, sectionCode, sectionIndex)?.[questionCode];\r\n }\r\n\r\n replaceNavTabModel(model: any, navTabNumber: number, newNavTabModel: any): boolean {\r\n const navTabParentModel = model?.form?.tabs;\r\n if (navTabParentModel) {\r\n navTabParentModel[`tab${navTabNumber}`] = newNavTabModel;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n replacePageModel(model: any, navTabNumber: number, pageNumber: number, pageIndex: number, newPageModel: any): boolean {\r\n const pageParentModel = this.findNavTabModel(model, navTabNumber);\r\n if (pageParentModel) {\r\n const isTryingToReplaceRepeatingPageItem = pageIndex !== null && pageIndex !== undefined;\r\n if (isTryingToReplaceRepeatingPageItem) {\r\n const pageItemParentModel = pageParentModel[`page${pageNumber}`];\r\n if (pageItemParentModel) {\r\n pageItemParentModel[pageIndex] = newPageModel;\r\n return true;\r\n }\r\n }\r\n else {\r\n pageParentModel[`page${pageNumber}`] = newPageModel;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n replaceSectionModel(model: any, navTabNumber: number, pageNumber: number, pageIndex: number, sectionCode: string, sectionIndex: number, newSectionModel: any): boolean {\r\n const sectionParentModel = this.findPageModel(model, navTabNumber, pageNumber, pageIndex);\r\n if (sectionParentModel) {\r\n const isTryingToReplaceRepeatingSectionItem = sectionIndex !== null && sectionIndex !== undefined;\r\n if (isTryingToReplaceRepeatingSectionItem) {\r\n const sectionItemParentModel = sectionParentModel[sectionCode];\r\n if (sectionItemParentModel) {\r\n sectionItemParentModel[sectionIndex] = newSectionModel;\r\n return true;\r\n }\r\n }\r\n else {\r\n sectionParentModel[sectionCode] = newSectionModel;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n replaceQuestionModel(model: any, navTabNumber: number, pageNumber: number, pageIndex: number, sectionCode: string, sectionIndex: number, questionCode: string, newQuestionModel: any): boolean {\r\n const questionParentModel = this.findSectionModel(model, navTabNumber, pageNumber, pageIndex, sectionCode, sectionIndex);\r\n if (questionParentModel) {\r\n questionParentModel[questionCode] = newQuestionModel;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n // Making sure that a SingleCheckBox question, after it is ticked and then un-ticked again, has a model of undefined instead of false, so that validations work as expected.\r\n // For example, if the question is mandatory, changing the model from false to undefined ensures that the client-side validation will be triggered.\r\n handleSingleCheckBoxQuestionChanges(\r\n getModel: () => any,\r\n setModel: (model: any) => void,\r\n singleCheckBoxQuestionPaths: QuestionPath[]): number {\r\n\r\n const model = getModel();\r\n\r\n let resetCount = 0;\r\n for (const [navTabNumber, pageNumber, sectionCode, questionCode] of singleCheckBoxQuestionPaths ?? []) {\r\n\r\n const getIndexes = (objectOrArrayOfObjects: any) => Array.isArray(objectOrArrayOfObjects) ? [...objectOrArrayOfObjects.keys()] : [null];\r\n\r\n const pageIndexes = getIndexes(this.findPageModel(model, navTabNumber, pageNumber, null));\r\n for (const pageIndex of pageIndexes) {\r\n\r\n const sectionIndexes = getIndexes(this.findSectionModel(model, navTabNumber, pageNumber, pageIndex, sectionCode, null))\r\n for (const sectionIndex of sectionIndexes) {\r\n\r\n const singleCheckBoxQuestionModel = this.findQuestionModel(model, navTabNumber, pageNumber, pageIndex, sectionCode, sectionIndex, questionCode);\r\n if (singleCheckBoxQuestionModel === false) {\r\n this.replaceQuestionModel(model, navTabNumber, pageNumber, pageIndex, sectionCode, sectionIndex, questionCode, undefined);\r\n resetCount++;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (resetCount > 0) {\r\n setModel({ ...model });\r\n }\r\n\r\n return resetCount;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SessionStorageService {\r\n\r\n get(key: TKey): TValue {\r\n const stringKey = this.trySerialise(key);\r\n const stringValue = this.tryGetItem(stringKey);\r\n const value = this.tryDeserialise(stringValue);\r\n return value;\r\n }\r\n\r\n set(key: TKey, value: TValue): void {\r\n if (value) {\r\n const stringKey = this.trySerialise(key);\r\n const stringValue = this.trySerialise(value)\r\n this.trySetItem(stringKey, stringValue);\r\n }\r\n else {\r\n const stringKey = this.trySerialise(key);\r\n this.tryRemoveItem(stringKey);\r\n }\r\n }\r\n\r\n private tryGetItem(key: string): string {\r\n try { return window.sessionStorage.getItem(key); }\r\n catch { return null; }\r\n }\r\n\r\n private trySetItem(key: string, value: string): void {\r\n try { window.sessionStorage.setItem(key, value); }\r\n catch { }\r\n }\r\n\r\n private tryRemoveItem(key: string): void {\r\n try { window.sessionStorage.removeItem(key); }\r\n catch { }\r\n }\r\n\r\n private tryDeserialise(s: string): T {\r\n try { return JSON.parse(s) as T; }\r\n catch { return null; }\r\n }\r\n\r\n private trySerialise(o: T): string {\r\n try { return JSON.stringify(o); }\r\n catch { return null; }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { take } from \"rxjs\";\r\n\r\nimport { CardSetTransformationService, FormConfigurationRequest, FormConfigurationService, HeaderService, MenuService, UserService } from \"dspx-core\";\r\n\r\nimport { AppDataKeys } from \"../constants/app-data.constants\";\r\nimport { ApiEndpointKeys } from \"../constants/api-endpoints.constants\";\r\nimport { Templates, Versions } from \"../constants/templates.constants\";\r\n\r\nimport { AppDataService } from \"./app-data.service\";\r\nimport { HeaderCustomisationService } from \"./header-customisation.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserProfileService {\r\n\r\n constructor(\r\n private userService: UserService,\r\n private headerService: HeaderService,\r\n private menuService: MenuService,\r\n private formConfigurationService: FormConfigurationService,\r\n private appDataService: AppDataService,\r\n private headerCustomisationService: HeaderCustomisationService,\r\n private cardSetTransformationService: CardSetTransformationService) {\r\n }\r\n\r\n private isUserProfileSet = false;\r\n\r\n setHeaderAndMenuFromUserProfile(): void {\r\n\r\n if (this.isUserProfileSet) {\r\n return;\r\n }\r\n this.isUserProfileSet = true;\r\n\r\n // Get Logged In User and update header\r\n this.userService\r\n .getLoggedInUser('getLoggedInUser')\r\n .pipe(take(1))\r\n .subscribe(userProfile => {\r\n const headerConfig = this.headerCustomisationService.getHeaderConfiguration({ fullName: userProfile.fullName });\r\n this.headerService.onHeaderUpdated(headerConfig);\r\n this.appDataService.setAppData(AppDataKeys.userProfile, userProfile);\r\n });\r\n\r\n // Configure the menu\r\n const request: FormConfigurationRequest = {\r\n apiEndpointKey: ApiEndpointKeys.getFormConfig,\r\n templateId: Templates.menu,\r\n versionNo: Versions.latest,\r\n entityId: null\r\n };\r\n this.formConfigurationService\r\n .getFormConfigAndResponse(request)\r\n .pipe(take(1))\r\n .subscribe(data => {\r\n const menuConfig = this.cardSetTransformationService.extractMenuConfigFromFormConfig([data.configData.config]);\r\n this.menuService.onMenuLoad(menuConfig);\r\n this.headerCustomisationService.enableMenu();\r\n });\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nimport { AutoCompleteFieldType } from 'dspx-core';\r\n\r\n@Component({\r\n selector: 'duop-v2-autocomplete',\r\n templateUrl: './duop-v2-autocomplete.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\n\r\n// This FieldType is identical to the DSPX AutoCompleteFieldType FieldType, except for:\r\n// - the filtering of items is based not only on the start of the item, but on any sub-string within the item)\r\n// - the placeholder text is set to empty instead of the label text, which is redundant.\r\nexport class DuopV2AutoCompleteFieldType extends AutoCompleteFieldType {\r\n filter($event) {\r\n const items = (this.to.options as any[]) ?? [];\r\n const fieldName = this.to.labelProp ? this.to.labelProp : 'label';\r\n const query = $event.query.toLowerCase();\r\n this.filteredList = items.filter(item => item[fieldName].toLowerCase().indexOf(query) >= 0);\r\n }\r\n}\r\n","\r\n\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":["RouterModule","DspxLogoutComponent","RouteConstants","ApplicationUserComponent","ReferenceDataComponent","ApplicationComponent","ApplicationDashboardComponent","ApplicationEnvironmentComponent","UserListComponent","UserRequestListComponent","ApprovalListComponent","ReferenceDataListComponent","ApplicationListComponent","OrganisationListComponent","LandingComponent","OrganisationComponent","ApplicationUserVerificationComponent","ApplicationUserRegistrationComponent","ReviewListComponent","ReviewDefinitionComponent","ReviewDefinitionListComponent","MyAppsComponent","UserLegacyProfileSetupComponent","GlobalSetupComponent","UserTermsAndConditionsComponent","OnBehalfOfTermsAndConditionsComponent","ComponentDeactivationService","HelpComponent","routes","path","component","termsAndConditions","user","onBehalfOf","logout","verify","canDeactivate","register","myApps","list","prefix","edit","userLegacyProfileSetup","resetEdit","userRequest","approval","review","referenceData","organisation","application","applicationDashboard","applicationEnvironment","reviewDefinition","reviewOccurrenceList","globalSetup","help","AppRoutingModule","_","_2","_3","forRoot","imports","i1","exports","take","ApiEndpoints","AppDataKeys","AppComponent","constructor","appDataService","headerCustomisationService","footerCustomisationService","coreService","addressService","userService","formConfigurationService","menuConfigService","menuService","headerService","ngOnInit","menuLoaded$","subscribe","config","menuConfig","headerUpdated$","headerConfig","styleConfigService","layoutMode","layoutColor","darkMenu","ripple","inputStyle","primengConfig","endpoints","getFormConfig","configuration","default","getReferenceDataConfigAndResponse","getConfigAndResponse","getOrganisationConfigAndResponse","getApplicationConfigAndResponse","getApplicationDashboardConfigAndResponse","getEnvironmentDefinitionConfigAndResponse","getReviewDefinitionConfigAndResponse","getReviewDecisionsAdminModeConfigAndResponse","reviewDecision","getAdminModeConfigAndResponse","getGlobalSetupConfigAndResponse","getApplicationUserEmptyConfigAndResponse","applicationUser","getEmptyConfigAndResponse","getApplicationUserConfigAndResponse","getMyAppsConfigAndResponse","getUserRegistrationConfigAndResponse","getRegistrationConfigAndResponse","getApplicationUserDraftConfigAndResponse","getDraftConfigAndResponse","getMyAppsDraftConfigAndResponse","getUserRegistrationDraftConfigAndResponse","getRegistrationDraftConfigAndResponse","getUserLegacyProfileSetupConfigAndResponse","getUserLegacyProfileSetupResetConfigAndResponse","getResetConfigAndResponse","addressApiSearchEndpoint","address","search","addressApiLgaEndpoint","lga","applicationFunctions","conditionFunctions","pageFunctions","repeatingPageFunctions","repeatingSectionFunctions","getFromHtmlAndSaveToAppData","htmlElementIdAndAppDataKey","htmlAttributeName","setAppData","getAttributeFromHtmlElement","applicationTitle","applicationUrl","environmentName","environmentBannerBgColor","environmentBannerColor","maxGridRowCount","maxBulkOperationItemCount","googleRecaptchaSiteKey","userTermsAndConditions","onBehalfOfTermsAndConditions","ldapNotFederatedAccountSignInUrl","ldapNotFederatedAccountResetUrl","ldapLegacyUserOnboardingPortalName","privateIndividualOrganisationId","fileDownloadMetadataHeaderName","technicalSupportEmail","getAppData","environmentBannerMessage","getLoggedInUser","users","window","open","getHeaderConfiguration","footerConfig","getFooterConfiguration","post","getGlobalSettings","pipe","response","informationBannerConfig","globalSettings","ngAfterViewInit","disableMenu","i0","ɵɵdirectiveInject","AppDataService","i2","HeaderCustomisationService","i3","FooterCustomisationService","i4","CoreService","AddressService","UserService","FormConfigurationService","MenuConfigService","MenuService","HeaderService","selectors","decls","vars","consts","template","AppComponent_Template","rf","ctx","ɵɵelement","ɵɵelementStart","ɵɵlistener","AppComponent_Template_div_click_1_listener","onLayoutClick","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵpureFunctionV","_c0","overlayMenuActive","staticMenuDesktopInactive","staticMenuMobileActive","ɵɵpureFunction0","_c1","BrowserModule","BrowserAnimationsModule","FormsModule","ReactiveFormsModule","CommonModule","HttpClientModule","FormlyModule","FormlyPrimeNGModule","DividerModule","CardModule","ButtonModule","MessagesModule","ToggleButtonModule","AccordionModule","AutoCompleteModule","DspxCoreModule","CheckboxFieldType","SwitchFieldType","ButtonFieldType","DateFieldType","DateTimeFieldType","FileUploadFieldType","AddressFieldType","MaskedInputFieldType","SelectButtonFieldType","TextAreaFieldType","MultiselectFieldType","ParagraphFieldType","PasswordFieldType","StepsFieldType","TabsFieldType","PageFieldType","PageRepeatingFieldType","SectionFieldType","SectionRepeatingFieldType","TableFieldType","FormNavigationFieldType","dspxRequiredValidator","whitespaceValidator","sameAsValidator","differentToValidator","eitherMandatoryValidator","dateLessThanValidator","dateLessThanOrEqualToValidator","dateGreaterThanValidator","dateGreaterThanOrEqualToValidator","numberGreaterThanValidator","numberLessThanValidator","verificationRequiredValidator","urlValidator","SearchBoxFieldType","FormSummaryFieldType","TimeFieldType","SingleCheckboxFieldType","RadioFieldType","DspxWrapperFormField","DspxWrapperContainer","DspxRadioWrapperFormField","PBIEmbeddedFieldType","HtmlHeadingFieldType","DspxWrapperFilter","FilterFieldType","CardSectionFieldType","CardSectionRepeatingFieldType","CardSetPageFieldType","CardSetPageRepeatingFieldType","CardSetTabsFieldType","CardSetTabsFlatFieldType","InformationBannerComponent","DuopV2AutoCompleteFieldType","AppModule","bootstrap","wrappers","name","types","validators","validation","extras","resetFieldOnHide","checkExpressionOn","lazyRender","declarations","CardSetTransformationService","FormActions","NavTabNumbers","PageNumbers","QuestionCodes","ReadOnlyAccessPageActionButtons","ApiEndpointKeys","Templates","BaseListComponent","route","router","spinnerService","dialogService","responseParserService","htmlHelperService","excelExportService","excelImportService","userProfileService","fieldTypeReplacements","cardSetWithFlatTabsFieldTypeReplacements","templateId","isNavigatingFromApplicationDetail","initialise","ApplicationDashboardForm","environments","dashboard","getApplicationEnvironments","id","setHeaderAndMenuFromUserProfile","paramMap","get","formServiceEndpoint","cancel","formLoad","event","ensurePageActionButtonsAreEnabledOnFormLoad","loadGridDataOnFormLoad","actionButtonClicked","field","key","environmentPlaceholder","type","View","Edit","navigateToApplicationEnvironmentDetail","data","Export","exportApplicationEnvironmentToXlsx","entityIds","Import","clickedRow","importApplicationEnvironmentFromXlsx","entityId","excelImportResult","isCancelled","loadGridData","navigateBackToApplicationDetail","navigateBackToApplicationList","navigate","applicationEnvironmentFragment","ActivatedRoute","Router","SpinnerService","DialogService","ResponseParserService","HtmlHelperService","i5","i6","ExcelExportService","i7","ExcelImportService","i8","UserProfileService","features","ɵɵInheritDefinitionFeature","ApplicationDashboardComponent_Template","ApplicationDashboardComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","$event","ApplicationDashboardComponent_Template_dspx_card_set_base_form_onActionButtonClick_0_listener","ApplicationDashboardComponent_Template_dspx_card_set_base_form_onCancel_0_listener","versionNo","PopupCodes","SectionCodes","ServerErrorPopupCodes","Versions","BaseDetailComponent","dialogHelperService","componentDeactivationService","errorService","dataService","formDataService","latest","applicationId","editing","isViewModeForEnvironment","pageIndex","sectionIndex","environmentFormIsEditingCustomOrganisationApproval","baseForm","model","environmentFormIsEditingEnvironmentCustomOrganisationApproval","isFormEditable","configureEnvironmentFormViewMode","fields","enabled","configureEnvironmentFormRepeatingPage","forceRenderAsync","formLoaded","ApplicationEnvironmentForm","handlePostFormLoadActions","modelChanged","handleSingleCheckBoxChanges","save","saveDataRequest","versionNumber","expectedLastUpdateTime","lastUpdatedTime","isSubmit","isFormValid","markAllFieldsAsTouched","formControl","valid","showValidationSummary","showDialog","Common","ValidationError","saveData","request","showSpinner","errorHandler","hideSpinner","handleWarnings","r","SaveApplicationEnvironment","includes","message","activeDialog","SaveSuccessful","details","navigateBackToApplicationDashboard","dialogSubmitted","environmentSkipOrganisationApprovalQuestionPath","environmentCustomOrganisationApproval","environmentSkipOrganisationApproval","skipOrganisationApprovalQuestionPath","role","customOrganisationApproval","skipOrganisationApproval","handleSingleCheckBoxQuestionChanges","ignoreUnsavedChanges","applicationDashboardFragment","DialogHelperService","ErrorService","DataService","FormDataService","i9","i10","ApplicationEnvironmentComponent_Template","ApplicationEnvironmentComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","ApplicationEnvironmentComponent_Template_dspx_card_set_base_form_onModelChange_0_listener","ApplicationEnvironmentComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","ApplicationEnvironmentComponent_Template_dspx_card_set_base_form_onSave_0_listener","ApplicationEnvironmentComponent_Template_dspx_card_set_base_form_onCancel_0_listener","FormCustomActions","FilterQuestionDefaults","FilterQuestionCodes","ComponentSelectors","DashboardNames","AppSelector","FilterQuestionLabels","applicationList","ApplicationListForm","applications","getApplications","getFilterName","ApplicationList","sectionPath","searchQuestionCode","applicationSearch","customQuestionCode","applicationFilter","customModelVisibleKeys","getFilterRequestFromModels","searchModel","customModel","searchTerm","active","applicationFilterActive","environment","applicationFilterEnvironment","authenticationTypes","applicationFilterAuthenticationType","getDefaultFilterRequest","filterHandler","setInitialFilterRequest","getInitialFilterRequest","hasNonEmptyCustomProperties","clickButtonByTitle","filterData","saveFilterRequest","action","dialogButtonClicked","applicationPlaceholder","ManageEnvironments","Custom","buttonType","Add","BulkExport","applicationExportToDataTablesRequest","getApplicationExportToDataTablesRequest","exportApplicationsToXlsx","BulkImport","importApplicationsFromXlsx","getFilterRequest","entities","getQuestionValue","map","entity","ApplicationListComponent_Template","ApplicationListComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","ApplicationListComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","ApplicationListComponent_Template_dspx_card_set_base_form_onActionButtonClick_0_listener","ApplicationListComponent_Template_dspx_card_set_base_form_onFilter_0_listener","BaseApplicationUserComponent","recaptchaService","applicationUserService","formatHtmlDetailsService","settings","isMyApps","hasAnonymousAccess","draftModeEndpointKey","editModeEndpointKey","insertModeEndpointKey","getIdForDraftMode","navigationState","draftId","getIdForEditMode","getIdForInsertMode","getIsDraftMode","getIsEditMode","getIsEmailReadOnly","isDraftMode","isEditMode","getApplicationUserId","getApplicationUserRegistrationId","applicationUserRegistrationId","navigateOnCancel","navigateAfterSave","saveSuccessfulPopup","UserForm","SaveSuccessfulRegistration","customErrorPopups","showUserRequestDetailsEndpoint","withdrawUserRequestEndpoint","componentSelector","UserRegistration","NgRecaptcha3Service","ApplicationUserService","i11","FormatHtmlDetailsService","i12","ApplicationUserRegistrationComponent_Template","ApplicationUserRegistrationComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","ApplicationUserRegistrationComponent_Template_dspx_card_set_base_form_onModelChange_0_listener","ApplicationUserRegistrationComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","ApplicationUserRegistrationComponent_Template_dspx_card_set_base_form_onActionButtonClick_0_listener","ApplicationUserRegistrationComponent_Template_dspx_card_set_base_form_onSave_0_listener","ApplicationUserRegistrationComponent_Template_dspx_card_set_base_form_onCancel_0_listener","userVerification","recaptchaSiteKey","init","then","status","console","log","UserVerificationForm","getToken","token","recaptchaToken","error","verifyUserRegistration","VerificationCompleted","navigateBackToLandingPage","ApplicationUserVerificationComponent_Template","ApplicationUserVerificationComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","ApplicationUserVerificationComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","ApplicationUserVerificationComponent_Template_dspx_card_set_base_form_onSave_0_listener","ApplicationUserVerificationComponent_Template_dspx_card_set_base_form_onCancel_0_listener","applicationUserId","getDetails","withdraw","User","ApplicationUserComponent_Template","ApplicationUserComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","ApplicationUserComponent_Template_dspx_card_set_base_form_onModelChange_0_listener","ApplicationUserComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","ApplicationUserComponent_Template_dspx_card_set_base_form_onActionButtonClick_0_listener","ApplicationUserComponent_Template_dspx_card_set_base_form_onSave_0_listener","ApplicationUserComponent_Template_dspx_card_set_base_form_onCancel_0_listener","isViewModeForDetails","isEditingFunctionalRole","applicationFormIsEditingFunctionalRole","isEditingReviewDefinition","applicationFormIsEditingReviewDefinition","manageEnvironments","configureApplicationFormViewMode","configureApplicationFormRepeatingSection","ApplicationForm","SaveApplication","navigateToApplicationDashboard","ApplicationComponent_Template","ApplicationComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","ApplicationComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","ApplicationComponent_Template_dspx_card_set_base_form_onSave_0_listener","ApplicationComponent_Template_dspx_card_set_base_form_onCancel_0_listener","UserRequestSource","approvalList","ApprovalListForm","approvals","getUserAccessRequestsForApproval","ApprovalList","approvalSearch","approvalFilter","approvalFilterRequestType","approvalFilterApplication","approvalFilterEnvironment","roles","approvalFilterFunctionalRole","approvalFilterOrganisation","escalationLevels","approvalFilterEscalationLevel","progressiveModelUpdate","filterQuestionPath","filterSubQuestionCodeAncestorGroup","filterSubQuestionCodeDescendantGroups","ApprovalsApprovalConfirmation","approveAccessRequests","accessRequests","ApprovalsRejectionConfirmation","rejectAccessRequests","reasonForRejection","registerSelectedItems","approvalPlaceholder","Details","requestUniqueKey","userRequestSource","Access","showUserRequestDetails","Approve","selectedItems","getSelectedItems","confirmApproveAccessRequests","Reject","confirmRejectAccessRequests","approvalExportToDataTablesRequest","getApprovalExportToDataTablesRequest","exportApprovalsToXlsx","showSimplePopup","formatUserRequestDetailsHtml","confirmBulkOperation","popupCode","length","ApprovalsNoneSelected","parseInt","ApprovalsTooManyItems","popupModel","popupMessagePlaceholders","itemCount","toString","openDialog","apiEndpoint","approve","completionPopupCode","ApprovalsApprovalCompleted","performBulkOperation","additionalFields","reject","ApprovalsRejectionCompleted","accessRequestIds","accessRequest","onComplete","loadGridDataAfterSave","ApprovalListComponent_Template","ApprovalListComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","ApprovalListComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","ApprovalListComponent_Template_dspx_card_set_base_form_onActionButtonClick_0_listener","ApprovalListComponent_Template_dspx_card_set_base_form_onFilter_0_listener","DialogResult","RepeaterElementType","OptionSetCodes","ServerCallDebounceTimeMs","ReadOnlyGrid","internalDomains","Set","accessDefinitionCodesByRequiredProperty","requiringReasonForRequest","requiringUserOrganisationRoleType","additionalInfoByAccessDefinitionCode","Map","hasOrganisation","optionalOrganisation","organisationId","readOnlyGridControlGroupNames","userRequests","appSupportAssignments","appAdministratorAssignments","orgAuthorityAssignments","orgSupportAssignments","getCurrentNavigation","state","readOnlyGridRegistry","changeUserOrganisationEndpoint","changeUserOrganisationAnonymous","changeUserOrganisation","saveEndpoint","saveAnonymous","idForDraftMode","idForEditMode","idForInsertMode","setDirtyFlagAfterLoading","resetDirtyFlagAfterLoading","isEditingAccessDefinition","userFormIsEditingAccessDefinition","showReasonForRequest","has","getAccessDefinitionCode","showUserOrganisationRoleType","organisationUpdateIsNotAllowed","isInternalUser","args","shouldShowReadOnlyGrid","configureUserFormViewMode","isViewModeForUserProfile","allowLegacyAccountOperations","legacyAccountLogin","legacyAccountReset","configureUserFormReadOnlyGridViewMode","toggleReadOnlyGridVisibility","isEditItemAllowed","isBrowseApplicationAllowed","configureUserFormRepeatingSection","browseApplication","confirmRevokeUserAccess","email","getEmailFromModel","isInternalEmail","Object","entries","getUserOrganisation","onPopupClosed","dialogResult","CannotChangeOrganisation","scrollToAccessDefinitionSection","handleOrganisationChange","handleEmailChangeWithDebounce","preSelectSingleEnvironmentAndRoleByUserSelection","internalUserNotFound","showInternalUserProfileNotification","NoUserAccessDefinitions","DuplicateUserAccessDefinition","RevokeUserRequestConfirmation","revokeUserRequest","reasonForRequestRevoke","userRequestGrid","Withdraw","withdrawUserRequest","saveDataFunction","SaveUser","accessDefinitionTopOfAddButtonId","getSectionRepeaterHtmlElementId","applicationAccess","applicationRef","TopOfAddButton","setFocusToHtmlElementById","showConfirm","WithdrawUserRequestConfirmation","ACCEPTED","replaceUserRequestGrid","userRequestGridModel","forceRender","REJECTED","accessDefinitionCode","getAccessDefinitionAdditionalInfo","accessDefinitionAdditionalInfo","addToRevokedAccessDefinitions","openInNewTabAbsoluteUrl","YesNo","Yes","previousOrganisation","changeOrganisationFunction","userOrganisationChangeRequest","JSON","stringify","newNavigationState","reloadPage","clearTimeout","handleEmailChangeDebounceTimeout","setTimeout","handleEmailChange","accessBeingEdited","getAccessBeingEdited","applicationName","applicationBeingEdited","updateAccessBeingEditedInModel","envName","RoleDropdownLoadMs","roleName","environmentBeingEdited","questionCode","optionSetId","hasSingleOption","optionSet","getOptionSet","firstOption","code","forceRenderByModelChange","optionSets","Environment","OptionSetCode","Role","getUserEmail","trim","toUpperCase","size","indexOfAtSymbol","indexOf","domain","substring","getInternalUserProfile","callback","isUserProfileValid","showNotification","severity","isClosable","isSticky","durationMs","showSimpleNotification","handleChange","replaceUserProfile","BaseApplicationUserComponent_Template","encapsulation","DspxCardSetBaseFormComponent","BaseComponent","getPopupRegistryFunction","popups","pageActionButtonPaths","ensurePageActionButtonsAreEnabled","viewQuery","BaseComponent_Query","Observable","isVisible","setVisibility","showButton","hideButton","statusBar","grid","toggleVisibility","isButtonControl","controlName","ignoreCanDeactivateGuard","formHasUpdates","unloadNotification","returnValue","warnings","showWarnings","ignoreWarnings","responseAndConfig","showDialogIfRequired","subscriber","nextAndComplete","next","complete","navigateIfRequired","clientRoute","split","forwardClientRoute","absoluteUrl","navigateToAbsoluteUrl","location","href","commands","executeReloadIgnoringUnsavedChanges","routeReuseStrategy","shouldReuseRoute","onSameUrlNavigation","url","canDeactivateResult","controlGroupName","readOnlyGrid","form","dirty","markAsPristine","markAsDirty","savePreviousModel","clonedModel","parse","previousModel","getPreviousModel","formHasUpdatesToFileUploadQuestions","fileUploadQuestion","fileUploadQuestions","currentQuestionModel","getQuestionModel","previousQuestionModel","hostBindings","BaseDetailComponent_HostBindings","BaseDetailComponent_beforeunload_HostBindingHandler","ɵɵresolveWindow","catchError","EMPTY","throwError","CustomStatusBarSelector","QueryStringParameters","FilterAction","GridDataFilterHandler","getModel","searchQuestionPath","customQuestionPath","initialFilterRequest","filterFromSessionStorage","getFromSessionStorage","queryParams","queryStringParameters","filterFromQueryString","getGridDataFilterFromQueryString","setIntoSessionStorage","defaultFilterRequest","filterAction","isClearFilters","ClearFilters","setQuestionValue","filterRequest","some","value","Array","isArray","navTabNumber","pageNumber","sectionCode","findQuestionModel","newQuestionModel","replaceQuestionModel","GridDataFilter","_selectedItemsRegister","gridPagePath","getListApiEndpoint","filterSettings","hasFilters","extraMessage","hasMoreItemsMessage","loadGridDataAsync","suppressErrorHandler","findPageModel","clearSelectedItemsOfAllControls","updateModel","statusBarHtmlElement","document","querySelector","statusBarContent","hasMoreItems","innerHTML","fieldKey","clearSelectedItems","filter","item","setModel","isProgressiveModelUpdateRequired","filterQuestionModel","ancestorGroup","ancestor","descendantGroups","descendantGroup","storedFilterQuestionModel","groupIndex","descendantIndex","descendant","updateModelForNextDescendantGroup","BaseListComponent_Template","Guid","RequestSaveResultStatus","fileService","fileUploadEndpoint","fileRemoveEndpoint","fileDownloadEndpoint","fileUploadFormIdentifiers","GlobalSetupForm","userGuidesForAnonymousUser","userGuidesForUser","userGuidesForOrganisationSupport","userGuidesForOrganisationAuthority","userGuidesForApplicationSupport","userGuidesForApplicationAdministrator","userGuidesForAdminReadOnly","userGuidesForIdamReviewer","userGuidesForIdamOnboarder","userGuidesForIdamApprover","userGuidesForIdamAdministrator","getUserGuidesQuestionModel","userGuides","UpdatedSinceReadTime","SaveGlobalSetup","FileService","GlobalSetupComponent_Template","GlobalSetupComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","GlobalSetupComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","GlobalSetupComponent_Template_dspx_card_set_base_form_onSave_0_listener","GlobalSetupComponent_Template_dspx_card_set_base_form_onCancel_0_listener","Dialogs","DepartmentOfFamiliesFairnessAndHousing","DepartmentOfHealth","HelpComponent_ng_template_74_li_3_Template_a_click_1_listener","userGuide_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","onClickUserGuide","ɵɵtext","ɵɵtextInterpolate","ɵɵtemplate","HelpComponent_ng_template_74_li_3_Template","ɵɵpropertyInterpolate1","ɵɵsanitizeUrl","fileSaverService","dhWebsitePrivacyStatementUrl","dffhWebsitePrivacyStatementUrl","eBusinessPortalName","eBusinessPortalUrl","downloadUserGuide","isUserLoggedIn","userGuideConfig","loggedInUserGuides","anonymousUserGuides","files","userGuidesAreAvailable","downloadUserGuideAnonymous","download","dispositionHeader","headers","fileName","getContentFileName","body","SERVER_ERROR","userProfile","FileSaverService","HelpComponent_Template","HelpComponent_div_73_Template","HelpComponent_ng_template_74_Template","ɵɵtemplateRefExtractor","HelpComponent_ng_template_76_Template","ɵɵpropertyInterpolate","ɵɵtextInterpolate1","moreInformationWithUserGuides_r4","moreInformationWithoutUserGuides_r5","SecurityContext","ɵɵstyleProp","ctx_r0","foregroundColour","backgroundColour","ɵɵsanitizeHtml","_config","defaultConfig","sanitiseHtml","dividerConfig","_dividerConfig","defaultDividerConfig","top","bottom","sanitizer","html","sanitisedHtml","sanitize","HTML","DomSanitizer","inputs","InformationBannerComponent_Template","InformationBannerComponent_p_divider_0_Template","InformationBannerComponent_div_1_Template","InformationBannerComponent_p_divider_2_Template","LandingComponent_div_11_ng_template_2_Template_button_click_5_listener","ctx_r1","hideConditionSection","LandingComponent_div_11_ng_template_2_Template","LandingComponent_ng_template_17_Template_button_click_1_listener","_r3","signIn","LandingComponent_ng_template_17_Template_button_click_2_listener","acceptTerms","showConditions","showConditionSection","authentication","LandingComponent_Template","ɵɵtwoWayListener","LandingComponent_Template_p_checkbox_ngModelChange_4_listener","ɵɵtwoWayBindingSet","LandingComponent_Template_a_click_8_listener","LandingComponent_div_11_Template","LandingComponent_ng_template_17_Template","ɵɵtwoWayProperty","SaveSuccessfulMyApps","getMyAppsUserRequestDetails","withdrawMyAppsUserRequest","MyApps","MyAppsComponent_Template","MyAppsComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","MyAppsComponent_Template_dspx_card_set_base_form_onModelChange_0_listener","MyAppsComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","MyAppsComponent_Template_dspx_card_set_base_form_onActionButtonClick_0_listener","MyAppsComponent_Template_dspx_card_set_base_form_onSave_0_listener","MyAppsComponent_Template_dspx_card_set_base_form_onCancel_0_listener","OnBehalfOfTermsAndConditionsComponent_Template","organisationList","OrganisationListForm","organisations","getOrganisations","OrganisationList","organisationSearch","organisationFilter","organisationFilterActive","organisationPlaceholder","organisationExportToDataTablesRequest","getOrganisationExportToDataTablesRequest","exportOrganisationsToXlsx","importOrganisationsFromXlsx","OrganisationListComponent_Template","OrganisationListComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","OrganisationListComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","OrganisationListComponent_Template_dspx_card_set_base_form_onActionButtonClick_0_listener","OrganisationListComponent_Template_dspx_card_set_base_form_onFilter_0_listener","customApprovals","isEditingSubOrganisation","organisationFormIsEditingSubOrganisation","isEditingOrganisationExternalCode","organisationFormIsEditingOrganisationExternalCode","organisationFormIsEditingReviewDefinition","isOrganisationExternalCodeReadOnly","isReviewDefinitionReadOnly","configureOrganisationFormViewMode","configureOrganisationFormReadOnlyGridViewMode","configureOrganisationFormRepeatingSection","OrganisationForm","SaveOrganisation","navigateBackToDashboard","OrganisationComponent_Template","OrganisationComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","OrganisationComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","OrganisationComponent_Template_dspx_card_set_base_form_onSave_0_listener","OrganisationComponent_Template_dspx_card_set_base_form_onCancel_0_listener","referenceDataList","ReferenceDataListForm","getReferenceDataCategories","ReferenceDataList","referenceDataSearch","referenceDataFilter","referenceDataFilterActive","referenceDataPlaceholder","referenceDataExportToDataTablesRequest","getReferenceDataExportToDataTablesRequest","exportReferenceDataToXlsx","importReferenceDataFromXlsx","ReferenceDataListComponent_Template","ReferenceDataListComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","ReferenceDataListComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","ReferenceDataListComponent_Template_dspx_card_set_base_form_onActionButtonClick_0_listener","ReferenceDataListComponent_Template_dspx_card_set_base_form_onFilter_0_listener","isViewModeForCategory","isEditingRefValue","referenceDataFormIsEditingRefValue","isUndeletableRefValue","undeletableReferenceDataIds","referenceDataFormGetRefValueId","configureReferenceDataFormViewMode","configureReferenceDataFormRepeatingSection","ReferenceDataForm","SaveReferenceData","ReferenceDataComponent_Template","ReferenceDataComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","ReferenceDataComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","ReferenceDataComponent_Template_dspx_card_set_base_form_onSave_0_listener","ReferenceDataComponent_Template_dspx_card_set_base_form_onCancel_0_listener","reviewDefinitionList","ReviewDefinitionListForm","reviewDefinitions","getReviewDefinitions","ReviewDefinitionList","reviewDefinitionSearch","reviewDefinitionFilter","reviewDefinitionFilterActive","BulkExportChoice","reviewDefinitionExportToDataTablesRequest","getReviewDefinitionExportToDataTablesRequest","bulkExportType","BulkExportType","Standard","exportReviewDefinitionsToXlsx","ImportCompatible","exportReviewDefinitionsToXlsxImportCompatible","reviewDefinitionPlaceholder","BulkExportChooseType","importReviewDefinitionsFromXlsx","ReviewDefinitionListComponent_Template","ReviewDefinitionListComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","ReviewDefinitionListComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","ReviewDefinitionListComponent_Template_dspx_card_set_base_form_onActionButtonClick_0_listener","ReviewDefinitionListComponent_Template_dspx_card_set_base_form_onFilter_0_listener","reviewOccurrenceHistory","configureReviewDefinitionFormViewMode","configureReviewDefinitionFormReadOnlyGridViewMode","ReviewDefinitionForm","reviewOccurrenceHistoryGrid","reviewOccurrenceDetailFragment","reviewDecisionListFragment","SaveReviewDefinition","ReviewDefinitionComponent_Template","ReviewDefinitionComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","ReviewDefinitionComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","ReviewDefinitionComponent_Template_dspx_card_set_base_form_onActionButtonClick_0_listener","ReviewDefinitionComponent_Template_dspx_card_set_base_form_onSave_0_listener","ReviewDefinitionComponent_Template_dspx_card_set_base_form_onCancel_0_listener","reviewList","isAdminMode","reviewDefinitionId","reviewOccurrenceId","ReviewListForm","reviews","getReviewDecisionsAdminMode","getReviewDecisions","ReviewListAdminMode","ReviewList","reviewSearch","reviewFilter","reviewFilterActive","decisions","reviewFilterDecision","statuses","reviewFilterStatus","reviewType","reviewFilterReviewType","reviewFilterApplication","reviewFilterEnvironment","reviewFilterFunctionalRole","reviewFilterOrganisation","escalationLevel","reviewFilterEscalationLevel","reviewFilterDecisionsAdminMode","reviewFilterDecisions","ReviewApprovalConfirmation","approveReviewDecisions","reviewDecisions","ReviewDenialConfirmation","denyReviewDecisions","reasonForDenial","reviewPlaceholder","showReviewDecisionDetails","confirmApproveReviewDecisions","Deny","confirmDenyReviewDecisions","Purge","messagePlaceholders","userListRoute","ReviewPurgeInformation","reviewExportToDataTablesRequest","getReviewExportToDataTablesRequest","exportReviewsToXlsx","reviewDecisionId","endPoint","getDetailsAdminMode","formatReviewDecisionDetailsHtml","ReviewNoneSelected","ReviewTooManyItems","ReviewApprovalCompleted","deny","ReviewDenialCompleted","reviewDecisionIds","ReviewListComponent_Template","ReviewListComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","ReviewListComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","ReviewListComponent_Template_dspx_card_set_base_form_onActionButtonClick_0_listener","ReviewListComponent_Template_dspx_card_set_base_form_onFilter_0_listener","ReviewListComponent_Template_dspx_card_set_base_form_onCancel_0_listener","UserLegacyProfileSetupForm","forwardUrl","SaveUserLegacyProfile","navigateToMyApps","navigateToLegacyPortalAccountReset","UserLegacyProfileSetupComponent_Template","UserLegacyProfileSetupComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","UserLegacyProfileSetupComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","UserLegacyProfileSetupComponent_Template_dspx_card_set_base_form_onSave_0_listener","UserLegacyProfileSetupComponent_Template_dspx_card_set_base_form_onCancel_0_listener","MinWaitForDialogToCloseMs","PopupCodeButtonTitles","UserPurgeType","PurgeUserResultStatus","SyncUserResultStatus","directoryLookupService","userList","directoryLookupPatchConfig","appSelector","UserListForm","UserList","acceptButtonTitle","DirectoryLookup","Accept","rejectButtonTitle","limitedDirectoryLookupConfiguration","onCloseLookup","directoryLookupConfiguration","onOpenDirectoryLookupSubDialogCallBack","closeDialogEvent","closeDialogEventToUse","openDialogAsync","directoryLookupPopupModel","rejectButtonElement","getComponentDialogButtonHtmlElement","addOneOffEventListener","closeDialogButtonElement","getComponentDialogIconButtonHtmlElement","getApplicationUsers","userSearch","userFilter","userFilterApplication","userFilterEnvironment","userFilterFunctionalRole","userFilterOrganisation","disableApplicationAccessAutomatedEmails","userFilterDisableApplicationAccessAutomatedEmails","openSearchDialogWithCloseCallback","title","onCloseDialogEvent","DirectoryLookupResult","resultMessage","resultTitle","LimitedDirectoryLookup","limitedDirectoryLookupType","LimitedDirectoryLookupType","AzureAdUser","searchAzureAdUserLimited","limitedDirectoryLookupValue","LdapUser","searchLdapProtocolUserLimited","lookupDirectoryName","LookupDirectoryName","LdapProtocol","ldapProtocolLookupType","LdapProtocolLookupType","ProtocolUser","LdapProtocolLookup","LdapScim","ldapScimLookupType","LdapScimLookupType","ScimUser","LdapScimLookup","AzureAd","azureAdLookupType","AzureAdLookupType","AzureAdLookup","searchLdapProtocolUser","ldapProtocolLookupValue","ProtocolGroup","searchLdapProtocolGroup","ProtocolOrganisation","searchLdapProtocolOrganisation","ProtocolApplication","searchLdapProtocolApplication","ScimUserAndGroups","searchLdapScimUser","ldapScimLookupOnlyExactMatch","ldapScimLookupValue","ScimGroup","searchLdapScimGroup","searchAzureAdUser","azureAdLookupOnlyExactMatch","azureAdLookupValue","Group","searchAzureAdGroup","Domain","searchAzureAdDomain","UserSendInvitation","userTabSendInvitationEmail","sendSingleUserInvitation","userExportToDataTablesRequest","getUserExportToDataTablesRequest","exportUsersToXlsx","StandardFromEmailList","uploadFile","file","validateEmailsAndExportUsersToXlsxFromEmailList","exportUsersToXlsxImportCompatible","PurgeUserConfirmation","userId","userEmail","purgeUserConfirmationPurgeType","DeleteType","DbAndAzureAd","purgeUser","FromBothDbAndAzureAd","DbOnly","FromDbOnly","SyncUserConfirmation","syncUser","userPlaceholder","Sync","SendInvitation","importUsersFromXlsx","BulkPurge","purgeUsersFromXlsx","BulkSync","syncUsersFromXlsx","showInstructionsDialog","showConfirmationDialog","purgeResponse","summary","formatPurgeSummaryHtml","showCompletedDialog","onSuccess","exportDataTablesToXlsx","exportResponse","onCancel","syncResponse","formatSyncSummaryHtml","bulkExportChoicePopupModel","validateEmails","emails","exportUsersToXlsxFromEmailList","patchConfig","displayCloseButton","titleMessagePlaceholders","patchConfirmDialogValidationIssue","onOpenDialogCallBack","userPurgeType","purge","Success","PurgeUserSuccess","Error","PurgeUserError","errorCode","errorData","ServerError","sync","SyncUserSuccess","SyncUserError","sendInvitation","success","UserTabSendInvitationSuccessful","UserTabSendInvitationFailed","totalItems","totalSuccessItems","totalFailureItems","addFieldIfNotEmpty","push","summaryHtml","formatHtml","formatFields","DirectoryLookupService","UserListComponent_Template","UserListComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","UserListComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","UserListComponent_Template_dspx_card_set_base_form_onActionButtonClick_0_listener","UserListComponent_Template_dspx_card_set_base_form_onFilter_0_listener","userRequestList","UserRequestListForm","getUserRequests","UserRequestList","userRequestSearch","userRequestFilter","statusCategories","requestFilterRequestStatusCategory","requestFilterRequestType","requestFilterApplication","requestFilterEnvironment","requestFilterFunctionalRole","requestFilterOrganisation","userRequestPlaceholder","SendInvitations","requestUniqueKeys","sendUserRequestInvitations","Retry","retryUserRequests","Repair","repairUserRequests","userRequestExportToDataTablesRequest","getUserRequestExportToDataTablesRequest","exportUserRequestsToXlsx","confirmPopupCode","BulkOperationConfirmSendInvitations","sendInvitations","fileNamePrefix","reloadOnComplete","BulkOperationConfirmRetry","retry","BulkOperationConfirmRepair","repair","BulkOperationNoItems","BulkOperationTooManyItems","exportToXlsx","formatBulkOperationSummary","BulkOperationCompleted","operationSummary","totalNotApplicableItems","UserRequestListComponent_Template","UserRequestListComponent_Template_dspx_card_set_base_form_onFormLoad_0_listener","UserRequestListComponent_Template_dspx_card_set_base_form_onDialogSubmit_0_listener","UserRequestListComponent_Template_dspx_card_set_base_form_onActionButtonClick_0_listener","UserRequestListComponent_Template_dspx_card_set_base_form_onFilter_0_listener","UserTermsAndConditionsComponent_Template","pbi","embedInfo","directorySearch","exportToDataTables","exportToDataTablesFromEmailList","exportToDataTablesImportCompatible","importFromDataTables","purgeFromDataTables","syncFromDataTables","exportToDataTablesAdminMode","ReviewDecisionResult","VictorianGovernment","logo","UserAvatar","source","HeaderSelector","HeaderMenuToggleSelector","ComponentDialogSelector","UserVerification","UserLegacyProfileSetup","ApplicationDashboard","Application","ApplicationEnvironment","Organisation","ReferenceData","ReviewDefinition","GlobalSetup","Other","Landing","Help","InformationBanner","UserTermsAndConditions","OnBehalfOfTermsAndConditions","No","ReviewFilterActive","ApplicationFilterActive","OrganisationFilterActive","ReferenceDataFilterActive","ReviewDefinitionFilterActive","OptionSetValues","ClientError","CLIENT_ERROR","VALIDATION","formNavigation","formNavigationBottom","applicationProfile","functionalRoles","organisationDetails","subOrganisations","organisationExternalCodes","refDataCategory","refDataValue","reviewDefinitionDetails","profile","viewUserProfile","userOrganisationProfile","conditionsOfUse","revokedApplicationRef","viewApplicationProfile","viewEnvironment","viewOrganisationDetails","viewRefDataCategory","viewReviewDefinitionDetails","reviewDefinitionSchedule","reviewDefinitionSettings","userHasOrganisation","userOrganisation","userFamilyName","userGivenName","userPreferredName","userMiddleName","userPhoneWork","userPhoneMobile","userConditionsAgree","authenticationType","isActive","environmentAllowedOrganisations","organisationAuthority","organisationEscalationAuthority","referenceCategoryText","referenceCategoryIsActive","startDate","durationInDays","isRecurrent","numberOfOccurrences","recurrencePeriodInMonths","useAsPrivateIndividualUserReview","approvalFilterRequestStatus","NotReviewed","PageActionButtonCodes","menu","PurgeUserErrorCode","SyncUserErrorCode","fileSaver","ApiService","httpClient","appSettings","sessionStorageService","apiUrl","appData","generatePdf","relativeUrl","downloadFile","getUrl","responseType","observe","a","createElement","setAttribute","appendChild","URL","createObjectURL","target","click","removeChild","fileURL","err","contentDispositionHeader","parts","replace","endpoint","postAndFetch","fetchData","getCsv","requestBody","defaultFileName","metadata","excelMimeType","Blob","Date","getTime","saveAs","getDataTableSet","getTransientId","elementId","attributeName","getElementById","attributes","set","ɵɵinject","HttpClient","ApplicationSettings","SessionStorageService","factory","ɵfac","providedIn","findQuestionModelFromUserProfileSection","getUserProfileQuestionModel","getUserGivenName","getUserFamilyName","sectionModel","getAccessDefinitionsSectionModel","applicationCodeAndEnvironmentCode","functionalRoleCode","accessDefinition","find","isEditing","replaceUserProfileQuestionModel","givenName","familyName","phoneWork","phoneMobile","userConditionsAgreeQuestionPath","sourceSectionIndex","sourceSectionItemModel","destinationSectionItemModel","destinationSectionPath","destinationSectionModel","findSectionModel","replaceSectionModel","userProfileQuestionModel","CollectionService","compare","item1","item2","getComparisonValue","comparisonValue1","comparisonValue2","orderBy","items","slice","sort","openConfirmDialog","UNSAVED_CHANGES","defaultDialogTitle","subscription","dialogRequested","waitUntil","acceptButtonElement","unsubscribe","condition","msWaits","evaluateLater","iteration","msWait","placeholders","dataTitle","toHtmlString","warningHtmlTable","getWarningHtmlTable","entry","toEncodedHtml","htmlTitle","htmlList","htmlString","headerRow","dataRows","warning","getPopupText","htmlTable","formatHtmlTable","popupRegistry","getPopupRegistry","popup","p","popupText","text","collectionService","lookupType","callbackToShowPopup","formatAzureAdUserLimitedHtml","onlyExactMatch","formatAzureAdUserHtml","formatAzureAdGroupHtml","formatAzureAdDomainHtml","formatLdapProtocolUserLimitedHtml","formatLdapProtocolUserHtml","formatLdapProtocolGroupHtml","formatLdapProtocolOrganisationHtml","formatLdapProtocolApplicationHtml","includeGroupMemberships","formatLdapScimUserHtml","formatLdapScimGroupHtml","formatResponseHeader","formatResponseMessage","setFocusToHtmlElementByClassName","paragraphTag","headerTag","errorMessage","matches","hasMoreMatches","formatAzureAdUserSummariesHtml","userDetailsHtml","userDetails","formatAzureAdUserLimitedDetailsHtml","ldapUserMatchHtml","ldapUserMatch","formatLdapUserMatchHtml","subHeaderTag","getUserGroupTitle","displayName","getUserAppRoleAssignmentTitle","resourceDisplayName","appRoleId","formatUserGroupsHtml","userGroups","userGroup","formatAzureAdGroupDetailsHtml","join","formatUserAppRoleAssignmentsHtml","userAppRoleAssignments","userAppRoleAssignment","formatAzureAdUserAppRoleAssignmentHtml","formatAzureAdUserDetailsHtml","userGroupsHtml","userAppRoleAssignmentsHtml","group","formatAzureAdGroupSummariesHtml","groupDetailsHtml","groupDetails","formatAzureAdDomainSummariesHtml","domainDetailsHtml","domainDetails","formatAzureAdDomainDetailsHtml","formatLdapProtocolUserSummariesHtml","formatLdapProtocolUserLimitedDetailsHtml","azureAdUserMatchHtml","azureAdUserMatch","formatAzureAdUserMatchHtml","cn","getUserSecurityTitle","secAuthority","getUserOrganisationRoleTitle","dhsOrgRoleId","formatUserSecuritiesHtml","userSecurities","userSecurity","formatLdapProtocolUserSecurityHtml","formatUserOrganisationRolesHtml","userOrganisationRoles","userOrganisationRole","formatLdapProtocolUserOrganisationRoleHtml","formatLdapProtocolGroupDetailsHtml","warningMessageHtml","warningMessage","formatLdapProtocolUserDetailsHtml","userSecuritiesHtml","userOrganisationRolesHtml","getGroupApplicationTitle","dhsAppNameId","getGroupApplicationRoleTitle","parentDhsAppNameId","dhsApplicationRoleName","formatGroupApplicationsHtml","groupApplications","groupApplication","formatLdapProtocolApplicationDetailsHtml","formatGroupApplicationRolesHtml","groupApplicationRoles","groupApplicationRole","formatLdapProtocolApplicationRoleHtml","formatLdapProtocolGroupSummariesHtml","groupApplicationsHtml","groupApplicationRolesHtml","getOrganisationApplicationTitle","getOrganisationSubOrganisationTitle","dhsOrgNameId","formatOrganisationApplicationsHtml","organisationApplications","organisationApplication","formatOrganisationSubOrganisationsHtml","organisationSubOrganisations","organisationSubOrganisation","formatLdapProtocolOrganisationDetailsHtml","formatLdapProtocolOrganisationSummariesHtml","organisationDetailsHtml","organisationApplicationsHtml","organisationSubOrganisationsHtml","getApplicationRoleTitle","getApplicationInvocationMethodTitle","dhsInvocationMethod","formatApplicationRolesHtml","applicationRoles","applicationRole","formatApplicationInvocationMethodsHtml","applicationInvocationMethods","applicationInvocationMethod","formatLdapProtocolApplicationInvocationMethodHtml","formatLdapProtocolApplicationSummariesHtml","applicationDetailsHtml","applicationDetails","applicationRolesHtml","applicationInvocationMethodsHtml","formatUserDetailsHtml","formatScimObjectsHtml","formatLdapScimUserSummariesHtml","formatGroupDetailsHtml","formatLdapScimGroupSummariesHtml","createFieldFromPropertyName","createField","formatFieldValues","otherMails","businessPhones","getUserIdentityTitle","issuer","formatUserIdentitiesHtml","userIdentities","userIdentity","formatAzureAdUserIdentityHtml","identities","userIdentityHtml","userAppRoleAssignmentHtml","groupTypes","supportedServices","userSecurityHtml","userOrganisationRoleHtml","applicationRoleHtml","applicationInvocationMethodHtml","scimObjects","preformattedTag","scimObjectHtml","scimObject","jsonObject","userSummaries","userSummariesHtml","u","mail","userPrincipalName","surname","onPremisesSamAccountName","userType","groupSummaries","groupSummariesHtml","g","description","domainSummaries","domainSummariesHtml","d","dhsDominoDisplayName","sn","uniqueIdentifier","organisationSummaries","organisationSummariesHtml","o","dhsOrganisationId","applicationSummaries","applicationSummariesHtml","dhsApplicationName","userName","StatusCode","Message","serverValidationErrorsToHtml","errorStatusEnumValue","undefined","customErrorPopup","validationErrors","stringArrayToHtmlUnorderedList","serverValidationErrorsToStringArray","array","listItems","x","excelService","getExportResponse","transientId","dataSetFriendlyName","workSheetInfos","dataTables","dataTable","workSheetName","tableName","workSheetData","writeWorkBookToFile","ExcelService","ExcelImportError","excelParserService","validateViaXlsx","result","handleError","prePurgeRequest","skipConfirmation","prePurgeResponse","actualPurgeRequest","actualPurgeResponse","preSyncRequest","preSyncResponse","actualSyncRequest","actualSyncResponse","importFromXlsxWithInstructions","importFromXlsxWithoutInstructions","validateFileTypePopupCode","validateUnknownErrorPopupCode","processFunction","uploadAndParseWorkBook","importInstructionsPopupCode","importFileTypePopupCode","importConfirmationPopupCode","importSuccessfulPopupCode","importFromXlsx","postDataTables","uploadWorkBook","parseWorkBook","fileTypeErrorPopupCode","reader","FileReader","onload","validFileTypes","readAsBinaryString","unknownErrorPopupCode","confirmationPopupCode","preImportRequest","preImportResponse","confirmationPopupMessagePlaceholder","importChanges","formatImportChangesHtml","entityChangeAnalyses","actualImportRequest","actualImportResponse","analyses","encode","cell","rowTotal","totalRemoved","totalAdded","totalModified","totalUnmodified","colTotal","getValue","reduce","accumulator","entityRows","entityName","totalRow","concat","htmlTableConfiguration","dataColumns","isRightAligned","ExcelParserService","XLSX","xlsxWorkSheets","getXlsxWorkSheets","xlsxWorkSheet","xlsxWorkSheetName","xlsxWorkSheetData","getXlsxWorkBook","xlsxWorkBook","read","raw","SheetNames","Sheets","utils","sheet_to_json","header","footerConfiguration","prideLogo","prideDeclaration","lightModeAppLogo","darkModeAppLogo","lightModeLogo","darkModeLogo","atsiLogo","atsiDeclaration","footerLinkColumns","heading","links","label","departmentName","governmentName","FormConfigurationParserService","findNavTabConfigs","formConfig","fieldGroup","findNavTabConfig","navTabConfig","findPageConfigs","findPageConfig","pageConfig","findSectionConfigs","fieldArray","findSectionConfig","sectionConfig","findQuestionConfigs","findQuestionConfig","questionConfig","formConfigurationParserService","findFieldValue","questionConfigs","questionKey","defaultValue","doHtmlEncoding","f","getFieldValue","findFieldLabel","props","toHtmlHeader","toHtmlHeaderTitle","toHtmlHeaderField","showOkCancelPopup","getRepeaterHtmlElementId","repeaterFieldId","elementType","itemIndex","htmlElementId","getPageFieldId","pagePath","pageFieldId","getSectionFieldId","sectionFieldId","getPageRepeaterHtmlElementId","isViewModeAllowed","setViewMode","getViewMode","userOrganisationProfileQuestionConfigs","userProfileQuestionConfigs","removeUserAccess","hasWriteAccessToUserApplicationAccesses","toggleUserRequestControls","toggleAppAdministratorAssignmentControls","toggleAppSupportAssignmentControls","toggleOrgAuthorityAssignmentControls","toggleOrgSupportAssignmentControls","detailsQuestionConfigs","hasWriteAccessToSubOrganisations","hasWriteAccessToOrganisationExternalCodes","hasWriteAccessToReviewDefinitions","toggleCustomApprovalControls","referenceCategoryQuestionConfigs","isRemoveItemAllowed","hasWriteAccessToReferenceData","applicationProfileQuestionConfigs","hasWriteAccessToFunctionalRoles","environmentQuestionConfigs","hasWriteAccessToEnvironmentCustomOrganisationApprovals","hasWriteAccessToCustomEmailTemplates","hasWriteAccessToCustomOrganisationApprovals","hasWriteAccessToApiCallBacks","hasWriteAccessToAadGroups","hasWriteAccessToLdapGroups","scheduleQuestionConfigs","settingsQuestionConfigs","toggleReviewOccurrenceHistoryControls","userFormGetAccessDefinitionId","organisationFormGetSubOrganisationId","organisationFormGetOrganisationExternalCodeId","organisationFormGetReviewDefinitionId","applicationFormGetFunctionalRoleId","applicationFormGetReviewDefinitionId","environmentFormGetCustomOrganisationApprovalId","environmentFormGetEnvironmentCustomOrganisationApprovalId","idValue","userRequestDetails","reasonForRequestingAccess","toEncodedHtmlLineBreaks","reasonForRequestingAccessRevoke","reasonForRequestingAccessHtmlParagraph","formatHtmlParagraph","reasonForRequestingAccessRevokeHtmlParagraph","userOrganisationRoleHtmlParagraph","awaitingApprovalDetailsHtmlList","formatHtmlList","awaitingApprovalDetails","approverDetails","reasonForRejectionHtmlParagraph","changeLogHtmlTable","changeLog","rows","row","time","change","errorDetailsHtmlParagraph","errorDetail","reviewDecisionDetails","reasonForDenialHtmlParagraph","paragraphName","paragraphContent","listName","listDescription","listTag","listItemTag","headerConfiguration","miscellaneousLogo","link","loggedInUser","fullName","imageSource","imageDescription","menuSubItems","icon","routerLink","isMenuVisible","getMenuStatus","toggleMenuVisibility","setHeaderMenuToggleVisibility","showHeaderMenuToggle","enableMenu","isMenuVisibleByDefault","isDesktop","onMenuButtonClick","Event","headerMenuToggleHtmlElement","style","input","object","propertyName","s","charCodeAt","tag","innerHtml","classAttribute","classAttributeSuffix","itemTag","dataRow","columnIndex","fieldNameTag","fieldValueTag","_4","formatFieldName","formatFieldValue","formatField","values","className","delayMs","setFocusToHtmlElement","getElementsByClassName","getHtmlElement","functionToInvoke","element","scrollIntoView","behavior","block","focus","preventScroll","invokeFunction","getElementsById","elements","from","querySelectorAll","getPageActionButtonId","pageActionButtonCode","pageActionButtonId","pageActionButtonIds","pageActionButtonPath","distinctPageActionButtonIds","htmlButtonElements","htmlButtonElement","removeAttribute","buttonTitle","buttonClass","clickElement","listener","onEventCallBack","e","removeEventListener","addEventListener","fileTypes","onSelect","changeEvent","remove","cancelEvent","elementSelector","_5","_6","findNavTabModel","tabs","isTryingToFindRepeatingPageItem","isTryingToFindRepeatingSectionItem","replaceNavTabModel","newNavTabModel","navTabParentModel","replacePageModel","newPageModel","pageParentModel","isTryingToReplaceRepeatingPageItem","pageItemParentModel","newSectionModel","sectionParentModel","isTryingToReplaceRepeatingSectionItem","sectionItemParentModel","questionParentModel","singleCheckBoxQuestionPaths","resetCount","getIndexes","objectOrArrayOfObjects","keys","pageIndexes","sectionIndexes","singleCheckBoxQuestionModel","stringKey","trySerialise","stringValue","tryGetItem","tryDeserialise","trySetItem","tryRemoveItem","sessionStorage","getItem","setItem","removeItem","cardSetTransformationService","isUserProfileSet","onHeaderUpdated","apiEndpointKey","getFormConfigAndResponse","extractMenuConfigFromFormConfig","configData","onMenuLoad","AutoCompleteFieldType","to","options","fieldName","labelProp","query","toLowerCase","filteredList","t","DuopV2AutoCompleteFieldType_Template","DuopV2AutoCompleteFieldType_Template_p_autoComplete_completeMethod_0_listener","DuopV2AutoCompleteFieldType_Template_p_autoComplete_onBlur_0_listener","onBlur","ɵɵclassProp","showError","production","enableProdMode","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","catch"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}