{"version":3,"file":"main.js","mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACV6D;AACF;;;;;;;;;;;;;;;;;ICqBnD,yEAAgE;IAAC,+DAAG;IAAA,4DAAK;;;IACzE,yEAA+D;IAAC,uDAAe;IAAA,4DAAK;;;IAApB,0DAAe;IAAf,0FAAe;;;IAG/E,yEAAiE;IAAC,8EAAkB;IAAA,4DAAK;;;IACzF,yEAAgE;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAI1F,yEAAgE;IAAC,yEAAc;IAAA,4DAAK;;;IACpF,yEAAgH;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGxI,yEAAiE;IAAC,oEAAQ;IAAA,4DAAK;;;IAC/E,yEAA+G;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAGpI,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;IAC5E,yEAAgE;IAAC,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,6FAAkB;;;IAInF,yEAAiE;IAAC,2EAAe;IAAA,4DAAK;;;IACtF,yEAAgE;IAC9D,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,qGACF;;;IAGA,yEAAiE;IAAC,gFAAoB;IAAA,4DAAK;;;IAC3F,yEAAgE;IAAA,uDAA8B;IAAA,4DAAK;;;IAAnC,0DAA8B;IAA9B,+FAA8B;;;IAG9F,oEAAqE;;;IACrE,oEAA0F;;;IAyD1F,yEAAiH;IAAC,oEAAQ;IAAA,4DAAK;;;;;IAC/H,yEAA6F;IAC/F,6EAA8O;IAAnL,iaAAiC;IAC1F,2EAAU;IAAA,qEAAU;IAAA,4DAAW;IACjC,4DAAS;IAHP,4DAA6F;;;;IACF,0DAAkE;IAAlE,8LAAkE;;;IAO/J,oEAAsF;;;IACtF,oEAA2F;;;IAG3F,yEAAkC;IAChC,yEAAiC;IAAA,uDAA6C;IAAA,4DAAK;IACrF,4DAAK;;;;IAD8B,0DAA6C;IAA7C,mHAA6C;;;ADf/E,IAAI,SAAS,GAAiB,EAAE;AAChC,IAAI,gBAAgB,GAAuB,EAAE;AAE7C,MAAM,iBAAiB,GAAiB;IAC7C,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,iCAAiC,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAC,KAAK,EAAC,kBAAkB,EAAC,EAAE,EAAC,UAAU,EAAC,EAAE,EAAC;CAGlO;AACM,MAAM,cAAc,GAA2B,EAAE,CAAC;AAWlD,MAAM,2CAA2C;IA4BtD,YAAmB,MAAiB,EAAU,MAA0B,EAAU,WAAiC,EAAS,MAAc;QAAvH,WAAM,GAAN,MAAM,CAAW;QAAU,WAAM,GAAN,MAAM,CAAoB;QAAU,gBAAW,GAAX,WAAW,CAAsB;QAAS,WAAM,GAAN,MAAM,CAAQ;QAlB1I,mBAAc,GAAW,CAAC,CAAC;QAC3B,qBAAgB,GAAa,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,cAAc,EAAC,UAAU,EAAC,cAAc,EAAE,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,cAAc,EAAC,oBAAoB,EAAC,cAAc,EAAE,QAAQ,EAAC,cAAc,EAAE,MAAM,EAAC,cAAc,EAAG,MAAM,EAAC,cAAc,EAAE,QAAQ,EAAC,cAAc,EAAC,OAAO,CAAC;QAExT,+DAA+D;QAC/D,SAAI,GAAG,EAAE,CAAC;IAcoI,CAAC;IAP/I,eAAe;QACb,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC;QAEjC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAC7C,CAAC;IAID,cAAc,CAAC,iBAAiB;QAC9B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YAEtE,SAAS,GAAE,IAAI,CAAC;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,uEAAkB,CAAa,SAAS,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,QAAQ;QAEN,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE7C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,uEAAkB,CAAa,SAAS,CAAC,CAAC;QAE/D,IAAI,CAAC,gBAAgB,GAAE,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,cAAc,EAAC,UAAU,EAAC,cAAc,EAAE,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,cAAc,EAAC,oBAAoB,EAAC,cAAc,EAAE,QAAQ,CAAC;QACrN,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC;IACzC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,UAAU,GAAG,IAAI,uEAAkB,CAAa,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAC7C,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5D,CAAC;IAOC,cAAc,CAAC,IAAS;QAElB,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,SAAS,EAAE;YAEnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iCAAiC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,0BAA0B;SACjG;IACH,CAAC;IAOP,kBAAkB,CAAC,GAAQ,EAAC,MAAU;QAEpC,IAAG,MAAM,IAAE,QAAQ,EACnB;YAEI,OAAO,IAAI,CAAC;SAGf;QAEG,OAAO,KAAK,CAAC;IACnB,CAAC;;sIA7FU,2CAA2C;yIAA3C,2CAA2C;kEAgB3C,qEAAY;;;;;QCpJzB,8EAA8B;QAE1B,wEAA4C;QAAA,wFAA6B;QAAA,4DAAK;QAC9E,gEAAI;QACF,yEAAiB;QACf,yEAAsB;QACpB,oFAAsC;QAEpC,4EAAW;QAAA,kEAAO;QAAA,4DAAY;QAC9B,8EAAoE;QAApD,wKAAS,uBAAmB,IAAC;QAA7C,4DAAoE;QACtE,4DAAiB;QACnB,4DAAM;QAEN,qEAA4B;QAG9B,4DAAM;QAGN,0EAA8B;QAEhC,4EAAoH;QAElH,6EAAgC;QAC9B,wIAAyE;QACzE,wIAAoF;QACtF,qEAAe;QACf,6EAA0C;QACxC,wIAAyF;QACzF,wIAA+F;QACjG,qEAAe;QAEf,6EAAoF;QAClF,wIAAoF;QACpF,wIAA6I;QAC/I,qEAAe;QACf,6EAAgE;QAC9D,wIAA+E;QAC/E,wIAAyI;QAC3I,qEAAe;QACf,6EAAmC;QACjC,wIAA4E;QAC5E,wIAAwF;QAC1F,qEAAe;QAEf,6EAA2C;QACzC,wIAAsF;QACtF,wIAEK;QACP,qEAAe;QACf,6EAAgD;QAC9C,wIAA2F;QAC3F,wIAAmG;QACrG,qEAAe;QACf,6EAA0C;QACxC,wIAAqE;QACrE,wIAA0F;QAC5F,qEAAe;QAuDf,6EAAoC;QAClC,wIAA+H;QAC/H,wIAA6F;QAK7F,qEAAe;QAGjB,wIAAsF;QACtF,wIAA2F;QAG3F,wIAEK;QACP,4DAAQ;QACR,4DAAM;QAEN,uEAAK;QACH,gFAAiK;QAEnK,4DAAM;QAEN,4DAAW;;QArHM,2DAAyB;QAAzB,sFAAyB;QAsGM,2DAAiC;QAAjC,iGAAiC;QACrB,0DAA0B;QAA1B,kGAA0B;QAUtC,0DAAoC;QAApC,kJAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrIxF;AACA;AACA;AACA;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;ACUYO,IAAAA,4DAAAA;AAAkGA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwCA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;;;;;AAA9EA,IAAAA,wDAAAA;AAA+DA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;AAYrJA,IAAAA,4DAAAA;AAA8HA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;AAA1DA,IAAAA,wDAAAA;AAAsCA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;;;AAiB7GA,IAAAA,4DAAAA;AAAuGA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AACvGA,IAAAA,4DAAAA;AAAWA,IAAAA,oDAAAA;AAAKA,IAAAA,0DAAAA;AAChBA,IAAAA,0DAAAA;;;;AAFQA,IAAAA,wDAAAA;;;;;;AAKZA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAKA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;AACxBA,IAAAA,0DAAAA;;;;;;;;AACAA,IAAAA,4DAAAA;AAA4CA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA,OAAmD,OAAnD,EAAmD;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA,KAAnD;AAC1CA,IAAAA,oDAAAA;AACFA,IAAAA,0DAAAA;;;;;AAFqJA,IAAAA,wDAAAA;AACnJA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;ADUhB,MAAMC,gBAAgB,GAAqB,EAA3C;AAQU,MAAOC,qBAAP,CAA4B;AAuChCC,cAA4CC,IAA5C,EAA4EC,YAA5E,EAA8GC,SAA9G,EAA8IC,WAA9I,EAA+KC,MAA/K,EAAiNC,UAAjN,EAAyPC,WAAzP,EAA6RC,SAA7R,EAA2VC,QAA3V,EAA0XC,QAA1X,EAA4Y;AAAhW;AAAgC;AAAkC;AAAgC;AAAiC;AAAkC;AAAwC;AAAoC;AAA8D;AAA+B;AAhC1X,mBAAkB,EAAlB;AACA,mCAA0B,IAAId,uDAAJ,EAA1B;AACA,+BAAsB,EAAtB;AACA,4BAA6B,EAA7B;AACA,2BAAiC,EAAjC;AACA,kCAAyB,IAAIA,uDAAJ,EAAzB;AAEA,2BAAiC;AAACe,mBAAa,EAAC,CAAf;AAAiBC,cAAQ,EAAC,CAA1B;AAA6BC,qBAAe,EAAE,EAA9C;AAAkDC,uBAAiB,EAAC,EAApE;AAAuEC,sBAAgB,EAAC,CAAxF;AAA0FC,aAAO,EAAE,CAAnG;AAAqGC,kBAAY,EAAC,CAAlH;AAAoHC,gBAAU,EAAE,CAAhI;AAAkIC,eAAS,EAAC,EAA5I;AAA+IC,iBAAW,EAAC,EAA3J;AAA8JC,eAAS,EAAC;AAAxK,KAAjC;AACO,sBAAwB,EAAxB;AAMP,2BAA0B,EAA1B;AAEA,mCAA0B,IAAIzB,uDAAJ,CAAgB,EAAhB,CAA1B;AACA,sCAA6B,IAAIA,uDAAJ,EAA7B;AACA,gCAAuB,EAAvB;AACA,iCAAgDJ,wCAAE,CAAC,KAAK8B,UAAN,CAAlD;AACA,4BAAkB,IAAI1B,uDAAJ,CAAgB,EAAhB,CAAlB;AACA,+BAAqB,IAAIA,uDAAJ,CAAgB,EAAhB,CAArB;AAKA;;AACA,iBAAc,CAAd;AACA,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AAUA,qBAAY,IAAIA,uDAAJ,CAAgB,EAAhB,CAAZ;AACA,mBAAoB,CAAC,QAAD,EAAW,OAAX,EAAoB,SAApB,EAA+B,UAA/B,EAA2C,KAA3C,CAApB;AAGA,sBAAa,IAAIA,uDAAJ,CAAgB,EAAhB,CAAb;AACA,oBAAqB,CAAC,UAAD,EAAa,SAAb,EAAwB,UAAxB,EAAoC,UAApC,EAAgD,KAAhD,CAArB;AAIA,yBAAiC,EAAjC;AAEA,uBAAe,6BAAf;AAhBE,SAAK2B,YAAL,GAAoBrB,YAAY,CAACsB,KAAb,CAAmB;AACrC,uBAAgB,CAAC,EAAD,EAAK7B,+DAAL;AADqB,KAAnB,CAApB;AAGD;;AAgBD+B,UAAQ;AACN,QAAG,KAAKzB,IAAL,IAAY,IAAZ,IAAoB,KAAKA,IAAL,IAAY0B,SAAnC,EACE;AACF,WAAKC,YAAL,CAAkB,KAAK3B,IAAL,CAAU4B,SAA5B,EAAsC,CAAtC;AACA,WAAKC,aAAL,CAAmB,CAAnB;AACG;;AACH,SAAKC,gBAAL,GAAuB,IAAIxC,uEAAJ,CAAyCO,gBAAzC,CAAvB;AACD,SAAKyB,YAAL,GAAoB,KAAKnB,WAAL,CAAiBoB,KAAjB,CAAuB;AAC1CQ,6BAAuB,EAAE,CAAC,IAAD,EAAMrC,+DAAN,CADiB;AAE1CsC,4BAAsB,EAAE,CAAC,IAAD,EAAMtC,+DAAN,CAFkB;AAG1CuC,6BAAuB,EAAE,CAAC,IAAD,EAAMvC,+DAAN,CAHiB;AAI5CwB,eAAS,EAAG,CAAC,IAAD,EAAOxB,+DAAP,CAJgC;AAK5CyB,iBAAW,EAAE,CAAC,IAAD,EAAOzB,+DAAP,CAL+B;AAM5CwC,UAAI,EAAE,CAAC,IAAD,EAAOxC,+DAAP,CANsC;AAO3CyC,YAAM,EAAC,CAAC,IAAD,CAPoC;AAQ3CC,WAAK,EAAG,CAAC,IAAD,EAAO1C,+DAAP,CARmC;AAS3CqB,aAAO,EAAE,CAAC,IAAD,EAAOrB,+DAAP,CATkC;AAU5C2C,gBAAU,EAAE,CAAC,IAAD,EAAO3C,+DAAP,CAVgC;AAW5C4C,kBAAY,EAAE,CAAC,IAAD,EAAM5C,+DAAN;AAX8B,KAAvB,CAApB;AAcC,SAAK6C,eAAL,GAAuB,KAAKC,SAAL,CAAeC,YAAf,CAA4BC,IAA5B,CACrBjD,yDAAS,CAAC,EAAD,CADY,EAErBD,mDAAG,CAACmD,KAAK,IAAI,KAAKC,OAAL,CAAaD,KAAK,IAAI,EAAtB,CAAV,CAFkB,CAAvB;AAKA,SAAKE,gBAAL,GAAwB,KAAKC,UAAL,CAAgBL,YAAhB,CAA6BC,IAA7B,CACtBjD,yDAAS,CAAC,EAAD,CADa,EAEtBD,mDAAG,CAACmD,KAAK,IAAI,KAAKI,QAAL,CAAcJ,KAAK,IAAI,EAAvB,CAAV,CAFmB,CAAxB;AAID;;AAMDhB,cAAY,CAACqB,SAAD,EAAWC,EAAX,EAAa;AAEvB,SAAK3C,WAAL,CAAiB4C,gBAAjB,CAAkCF,SAAlC,EAA4CC,EAA5C,EAAgDE,SAAhD,CAA2DnD,IAAD,IAAY;AACpE,WAAKoD,OAAL,GAAcpD,IAAd;AACAqD,aAAO,CAACC,GAAR,CAAYtD,IAAZ;AACA,UAAIuD,KAAJ;;AACA,UAAI,KAAKH,OAAL,IAAgB,KAAKA,OAAL,CAAaI,MAAb,GAAsB,CAA1C,EAA6C;AAC3C,aAAKJ,OAAL,CAAaK,OAAb,CAAsBC,CAAD,IAAM;AACzB;AACAH,eAAK,GAAEG,CAAC,CAACH,KAAT;;AACE,cAAI,KAAKI,mBAAL,CAAyBC,OAAzB,CAAiCF,CAAjC,KAAuC,CAAC,CAA5C,EAA+C;AAC7C,iBAAKC,mBAAL,CAAyBE,IAAzB,CAA8BH,CAA9B;AACD;AACH;;AACD,SAPD;AAQD;;AACD,WAAK3B,uBAAL,CAA6B+B,UAA7B,CAAwC,KAAKH,mBAAL,CAAyB,CAAzB,CAAxC;AACA,WAAKrD,WAAL,CAAiByD,iBAAjB,CAAmCR,KAAnC,EAAyCN,EAAzC,EAA6CE,SAA7C,CAAwDnD,IAAD,IAAY;AACjE,aAAKgE,eAAL,GAAuBhE,IAAvB,EAA6B,MAAMqD,OAAO,CAACC,GAAR,CAAY,kBAAZ,CAAnC;AACD,OAFD;AAGD,KAlBD;AAmBD;;AAGDW,iBAAe,CAACC,KAAD,EAAa;AAC1B,SAAKF,eAAL,GAAqB,EAArB;AAEA,SAAKhC,sBAAL,CAA4BmC,KAA5B;AAEA,SAAK7D,WAAL,CAAiByD,iBAAjB,CAAmCG,KAAnC,EAAyC,CAAzC,EAA4Cf,SAA5C,CAAuDnD,IAAD,IAAY;AAChE,WAAKgE,eAAL,GAAuBhE,IAAvB,EAA6B,MAAMqD,OAAO,CAACC,GAAR,CAAY,kBAAZ,CAAnC;AACD,KAFD;AAGD;AAGP;;;;;;;;AAaA;;;AACMzB,eAAa,CAACoB,EAAD,EAAG;AACd,SAAK5C,UAAL,CAAgB+D,aAAhB,CAA8BnB,EAA9B,EAAkCE,SAAlC,CAA6CnD,IAAD,IAAY;AACtDqD,aAAO,CAACC,GAAR,CAAYtD,IAAZ;AACA,WAAKqB,UAAL,GAAkBrB,IAAlB,EACC,KAAKqE,qBAAL,GAA6B,KAAKC,0BAAL,CAAgC7B,YAAhC,CACjCC,IADiC,CAEhCjD,yDAAS,CAAS,EAAT,CAFuB,EAGhCD,mDAAG,CAAC+E,IAAI,IAAI,KAAKC,YAAL,CAAkBD,IAAlB,CAAT,CAH6B,CAD9B;;AAMD,YAAMlB,OAAO,CAACC,GAAR,CAAY,kBAAZ,CAAN;AACF,KATC;AAWD;;AAGOkB,cAAY,CAACD,IAAD,EAAa;AAC/B,UAAME,WAAW,GAAGF,IAAI,CAACG,WAAL,EAApB,CAD+B,CAE/B;;AACA,SAAKC,uBAAL;AACA,SAAKC,gBAAL,GAAuB,IAAIjF,uDAAJ,CAAgB,EAAhB,CAAvB;AACA,SAAKkF,mBAAL,GAA0B,IAAIlF,uDAAJ,CAAgB,EAAhB,CAA1B;AACA,SAAKsC,uBAAL,CAA6B6B,UAA7B,CAAwC,KAAKgB,oBAA7C;AACA,SAAK7C,uBAAL,CAA6BU,KAA7B,CAAmCc,OAAnC,CAA2CsB,IAAI,IAAE;AAC/C,WAAKH,gBAAL,CAAsBjC,KAAtB,CAA4BkB,IAA5B,CAAiCkB,IAAI,CAAC9B,EAAtC;AACA,WAAK4B,mBAAL,CAAyBlC,KAAzB,CAA+BkB,IAA/B,CAAoCkB,IAAI,CAACR,IAAzC;AACD,KAHD;AAIA,QAAIS,YAAY,GAAG,KAAK3D,UAAL,CAAgB4D,MAAhB,CAAuBC,MAAM,IAAIA,MAAM,CAACX,IAAP,CAAYG,WAAZ,GAA0BS,QAA1B,CAAmCV,WAAW,CAACC,WAAZ,EAAnC,CAAjC,CAAnB;AACA,WAAOM,YAAP;AACD;;AAEDI,uBAAqB,CAACC,KAAD,EAAM;AACzB,QAAIA,KAAK,CAACC,WAAN,IAAqBD,KAAK,CAACE,MAAN,CAAaC,QAAb,IAAyB,KAAlD,EAAyD;AACvD,UAAIC,KAAK,GAAG,KAAKX,oBAAL,CAA0BlB,OAA1B,CAAkCyB,KAAK,CAACE,MAAN,CAAa5C,KAA/C,CAAZ;AACA,WAAKmC,oBAAL,CAA0BY,MAA1B,CAAiCD,KAAjC,EAAwC,CAAxC;AACD;AACF;;AACDE,oBAAkB,CAACjC,CAAD,EAAE;AAClB;AACA,SAAKY,0BAAL,CAAgCR,UAAhC,CAA2C,EAA3C,EAFkB,CAGlB;;AACA,QAAIJ,CAAC,IAAI,IAAT,EAAe;AACb,WAAKkC,mBAAL,CAAyBC,aAAzB,CAAuCC,KAAvC;AACD;AACF;;AAEDC,mBAAiB,CAACV,KAAD,EAAM;AACrBA,SAAK,CAACW,eAAN;AACA,SAAK1B,0BAAL,CAAgCR,UAAhC,CAA2C,EAA3C;AACD;;AAEDa,yBAAuB;AACrBtB,WAAO,CAACC,GAAR,CAAY,yBAAZ,EAAuC,KAAKrB,uBAAL,CAA6BU,KAApE;;AACA,QAAI,KAAKV,uBAAL,CAA6BU,KAA7B,IAAsC,KAAKV,uBAAL,CAA6BU,KAA7B,CAAmCa,MAAnC,GAA4C,CAAtF,EAAyF;AACvF,WAAKvB,uBAAL,CAA6BU,KAA7B,CAAmCc,OAAnC,CAA4CC,CAAD,IAAM;AAC/C,YAAI,KAAKoB,oBAAL,CAA0BlB,OAA1B,CAAkCF,CAAlC,KAAwC,CAAC,CAA7C,EAAgD;AAC9C,eAAKoB,oBAAL,CAA0BjB,IAA1B,CAA+BH,CAA/B;AACD;AACF,OAJD;AAKD;AACF;;AACDuC,iBAAe;AAGb,SAAKrB,gBAAL,GAAuB,IAAIjF,uDAAJ,CAAgB,EAAhB,CAAvB;AACA,SAAKkF,mBAAL,GAA0B,IAAIlF,uDAAJ,CAAgB,EAAhB,CAA1B;AAGA,SAAKiF,gBAAL,CAAsBjC,KAAtB,CAA4BkB,IAA5B,CAAiC,KAAKvC,YAAL,CAAkB4E,QAAlB,CAA2BjE,uBAA3B,CAAmDU,KAAnD,CAAyDwD,QAA1F;AACD,SAAKtB,mBAAL,CAAyBlC,KAAzB,CAA+BkB,IAA/B,CAAoC,KAAKvC,YAAL,CAAkB4E,QAAlB,CAA2BjE,uBAA3B,CAAmDU,KAAnD,CAAyD4B,IAA7F;AAEC,SAAKjD,YAAL,CAAkBqB,KAAlB,CAAwByD,aAAxB,GAAwC,KAAKxB,gBAAL,CAAsBjC,KAA9D;AACAU,WAAO,CAACC,GAAR,CAAa,KAAKuB,mBAAL,CAAyBlC,KAAtC;AAED;;AAED0D,wBAAsB,CAACpD,EAAD,EAAW;AAC/B,WAAO,KAAK2B,gBAAL,CAAsBjC,KAAtB,CAA4B2D,IAA5B,CAAiCvB,IAAI,IAAEA,IAAI,KAAK9B,EAAhD,CAAP;AACD;;AACDsD,2BAAyB,CAAC5D,KAAD,EAAc;AACrC,WAAO,KAAKkC,mBAAL,CAAyBlC,KAAzB,CAA+B2D,IAA/B,CAAoCvB,IAAI,IAAEA,IAAI,KAAKpC,KAAnD,CAAP;AACD;AACP;;;AACM6D,aAAW,CAACnB,KAAD,EAAqB;AAC9BA,SAAK,CAACW,eAAN;AACF;;AAMJS,SAAO;AAEL,SAAKnF,YAAL,CAAkB6C,KAAlB;AACD;;AACWvB,SAAO,CAACD,KAAD,EAAc;AAC3B,UAAM8B,WAAW,GAAG9B,KAAK,CAAC+B,WAAN,EAApB;AAEA,WAAO,KAAKgC,OAAL,CAAazB,MAAb,CAAoBC,MAAM,IAAIA,MAAM,CAACR,WAAP,GAAqBS,QAArB,CAA8BV,WAA9B,CAA9B,CAAP;AACD;;AACO1B,UAAQ,CAACJ,KAAD,EAAc;AAC5B,UAAMgE,YAAY,GAAGhE,KAAK,CAAC+B,WAAN,EAArB;AAEA,WAAO,KAAKkC,QAAL,CAAc3B,MAAd,CAAqB4B,OAAO,IAAIA,OAAO,CAACnC,WAAR,GAAsBS,QAAtB,CAA+BwB,YAA/B,CAAhC,CAAP;AACD;;AAEDG,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf;AACH;;AACDC,gBAAc,CAACC,OAAD,EAAUC,MAAV,EAAkBC,QAAlB,EAA4BC,KAA5B,EAAiC;AAC7C,SAAK3G,QAAL,CAAc4G,IAAd,CAAmBJ,OAAnB,EAA4BC,MAA5B,EAAoC;AAClCC,cAAQ,EAAE,IADwB;AAElCG,sBAAgB,EAAE,KAFgB;AAGlCC,wBAAkB,EAAE,QAHc;AAIlCC,gBAAU,EAAE,CAACJ,KAAD;AAJsB,KAApC;AAMD;;AAIDK,UAAQ;AAGH,QAAG,KAAKlG,YAAL,CAAkBqB,KAAlB,CAAwBZ,uBAAxB,IAAiD,CAApD,EAAsD;AACrD,WAAKgF,cAAL,CAAoB,oCAApB,EAAyD,MAAzD,EAAgE,MAAhE,EAAwE,cAAxE;AACA;AACD;;AAED,QAAG,KAAKzF,YAAL,CAAkBqB,KAAlB,CAAwBX,sBAAxB,IAAgD,CAAnD,EAAqD;AACnD,WAAK+E,cAAL,CAAoB,sCAApB,EAA2D,MAA3D,EAAkE,MAAlE,EAA0E,cAA1E;AACA;AACD;;AACD,QAAG,KAAKzF,YAAL,CAAkBqB,KAAlB,CAAwBV,uBAAxB,IAAiD,CAApD,EAAsD;AACpD,WAAK8E,cAAL,CAAoB,sBAApB,EAA2C,MAA3C,EAAkD,MAAlD,EAA0D,cAA1D;AACA;AACD;;AAEC,QAAIU,MAAM,GAAGC,cAAc,CAACC,OAAf,CAAuB,QAAvB,CAAb;AACD;;AAEC,QAAI,KAAKrG,YAAL,CAAkBsG,KAAtB,EAA8B;AAE5B,WAAKC,eAAL,CAAqBnH,aAArB,GAAoC,KAAKY,YAAL,CAAkBwG,GAAlB,CAAsB,wBAAtB,EAAgDnF,KAApF;AAED;;AACC,WAAKkF,eAAL,CAAqBlH,QAArB,GAA8B,KAAKW,YAAL,CAAkBwG,GAAlB,CAAsB,yBAAtB,EAAiDnF,KAAjD,CAAuDwD,QAArF;AACA,WAAK0B,eAAL,CAAqBjH,eAArB,GAAuCmH,MAAM,CAAC,KAAKzG,YAAL,CAAkBwG,GAAlB,CAAsB,MAAtB,EAA8BnF,KAA/B,CAA7C,EACA,KAAKkF,eAAL,CAAqBhH,iBAArB,GAAuC,KAAKJ,QAAL,CAAcuH,SAAd,CAAyB,KAAK1G,YAAL,CAAkBwG,GAAlB,CAAsB,QAAtB,EAAgCnF,KAAzD,EAA+D,YAA/D,CADvC,EAEA,KAAKkF,eAAL,CAAqB/G,gBAArB,GAAuC,KAAKQ,YAAL,CAAkBwG,GAAlB,CAAsB,OAAtB,EAA+BnF,KAFtE,EAIA,KAAKkF,eAAL,CAAqB9G,OAArB,GAA8B,KAAKO,YAAL,CAAkBwG,GAAlB,CAAsB,SAAtB,EAAiCnF,KAJ/D,EAKA,KAAKkF,eAAL,CAAqB7G,YAArB,GAAmC,KAAKM,YAAL,CAAkBwG,GAAlB,CAAsB,cAAtB,EAAsCnF,KALzE,EAMA,KAAKkF,eAAL,CAAqB5G,UAArB,GAAgC,KAAKK,YAAL,CAAkBwG,GAAlB,CAAsB,YAAtB,EAAoCnF,KANpE;AAOA,WAAKkF,eAAL,CAAqB3G,SAArB,GAAgC,KAAKI,YAAL,CAAkBwG,GAAlB,CAAsB,WAAtB,EAAmCnF,KAAnE,EACA,KAAKkF,eAAL,CAAqB1G,WAArB,GAAkC,KADlC,EACwC;AAExC,WAAK0G,eAAL,CAAqBzG,SAArB,GAA+B6G,MAAM,CAACR,MAAD,CAHrC;AAKApE,aAAO,CAACC,GAAR,CAAY,KAAKuE,eAAjB;AACA,WAAKvH,WAAL,CAAiB4H,iBAAjB,CAAmC,KAAKL,eAAxC,EAAyD1E,SAAzD,CAAmE;AACjEgF,YAAI,EAAGC,GAAD,IAAa;AACjB,eAAK9H,WAAL,CAAiByG,cAAjB,CAAgC,wBAAhC,EAAyD,MAAzD,EAAgE,MAAhE,EAAwE,cAAxE;AACA,eAAKxG,SAAL,CAAeuG,KAAf,CAAqB,IAArB;AACD,SAJgE;AAKjEuB,aAAK,EAAGC,GAAD,IAAa;AAClB,eAAKhI,WAAL,CAAiByG,cAAjB,CAAgCuB,GAAG,CAACD,KAApC,EAA0C,MAA1C,EAAiD,MAAjD,EAAyD,cAAzD;AACD;AAPgE,OAAnE;AAWH;;AAEC,SAAK9H,SAAL,CAAeuG,KAAf,CAAqB;AAACzB,WAAK,EAAC,IAAP;AAAYrF,UAAI,EAAE;AAAEuI,6BAAqB,EAAE,KAAKvI,IAA9B;AAAoCwI,wBAAgB,EAAE,KAAKA;AAA3D;AAAlB,KAArB;AAAwH;AAC3H;;AA7T+B;;;mBAArB1I,uBAAqBF,+DAAAA,CAuCZP,qEAvCY,GAuCGO,+DAAAA,CAAAA,uDAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,uDAAAA,GAAAA,+DAAAA,CAAAA,oFAAAA,GAAAA,+DAAAA,CAAAA,mFAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,kEAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,sDAAAA;AAAA;;;QAvCxBE;AAAqB2I;AAAAC;AAAA;;;;;;;;;;;;;;;;;AC1EtC9I,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAiCA,MAAAA,0DAAAA;AAC/EA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AAAiCA,MAAAA,wDAAAA;AAAA,eAAU+I,cAAV;AAAoB,OAApB;AACjC/I,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAGIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAiBA,MAAAA,0DAAAA;AAC3DA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAINA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AAEEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAmBA,MAAAA,0DAAAA;AACjEA,MAAAA,4DAAAA;AACDA,MAAAA,wDAAAA;AACDA,MAAAA,0DAAAA;AACIA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAaA,MAAAA,0DAAAA;AACvDA,MAAAA,4DAAAA;AAA6DA,MAAAA,wDAAAA;AAAA,eAAsB+I,8BAAtB;AAAgD,OAAhD;AACvD/I,MAAAA,4DAAAA;AACEA,MAAAA,oDAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAwCA,MAAAA,wDAAAA;AAAA,eAAW+I,uBAAX;AAA8B,OAA9B;AAAxC/I,MAAAA,0DAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,wDAAAA;;AAGAA,MAAAA,wDAAAA;;AAGJA,MAAAA,0DAAAA;AACNA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AAIFA,MAAAA,0DAAAA;AAMFA,MAAAA,0DAAAA;AAEIA,MAAAA,4DAAAA;AAKIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAiBA,MAAAA,0DAAAA;AAC5BA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AASEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAWA,MAAAA,0DAAAA;AACtBA,MAAAA,uDAAAA;AAEFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AACAA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AAIAA,MAAAA,4DAAAA;AACFA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AACjBA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAASA,MAAAA,0DAAAA;AACpBA,MAAAA,uDAAAA;AAEJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AACIA,MAAAA,0DAAAA;AAEFA,MAAAA,4DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAcA,MAAAA,0DAAAA;AACzBA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAYA,MAAAA,0DAAAA;AACvBA,MAAAA,uDAAAA;AAEJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAUA,MAAAA,0DAAAA;AACrBA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAYA,MAAAA,0DAAAA;AACvBA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AAIAA,MAAAA,0DAAAA;AACAA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAAmDA,MAAAA,wDAAAA;AAAA,eAAS+I,aAAT;AAAkB,OAAlB;AAAqB/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC/EA,MAAAA,0DAAAA;AACFA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAoDA,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;;;;;;;;AA9JMA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AASqEA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAYNA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAWzDA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AAK2IA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACrGA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAKrBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,SAAAA,yDAAAA;AAGoGA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,YAAAA,yDAAAA;AAyCtEA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAIVA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnGjD;AACA;AACA;AAGA;AAIA;AAOA;AAEA;AAGA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXIA,IAAAA,4DAAAA;AAA4FA,IAAAA,4DAAAA;AAAqCA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAwBA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AAAUA,IAAAA,0DAAAA;;;;;;AAUlLA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAGA,IAAAA,0DAAAA;;;;;;AACpEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;;;;;AAAfA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAkBA,IAAAA,0DAAAA;;;;;;AACpFA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAyBA,IAAAA,0DAAAA;;;;;AAAzBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIjEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAcA,IAAAA,0DAAAA;;;;;;AAC/EA,IAAAA,4DAAAA;AAAiHA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGjHA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAQA,IAAAA,0DAAAA;;;;;;AAC1EA,IAAAA,4DAAAA;AAAgHA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;AAApBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhHA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAMA,IAAAA,0DAAAA;;;;;;AACvEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAkBA,IAAAA,0DAAAA;;;;;AAAlBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIjEA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;;;;;;AACjFA,IAAAA,4DAAAA;AACEA,IAAAA,oDAAAA;AACFA,IAAAA,0DAAAA;;;;;AADEA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIFA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;;AACtFA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAA8BA,IAAAA,0DAAAA;;;;;AAA9BA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;AAGhEA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAyDAA,IAAAA,4DAAAA;AAAkHA,IAAAA,oDAAAA;AAAQA,IAAAA,0DAAAA;;;;;;;;;;;;;;AAC1HA,IAAAA,4DAAAA;AACFA,IAAAA,4DAAAA;AAAoEA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAClEA,IAAAA,4DAAAA;AAAUA,IAAAA,oDAAAA;AAAUA,IAAAA,0DAAAA;AACtBA,IAAAA,0DAAAA;AACAA,IAAAA,4DAAAA;AAA0DA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACxDA,IAAAA,4DAAAA;AAAUA,IAAAA,oDAAAA;AAAUA,IAAAA,0DAAAA;AACtBA,IAAAA,0DAAAA;AACAA,IAAAA,4DAAAA;AAA2DA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACzDA,IAAAA,4DAAAA;AAA2BA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;AACjCA,IAAAA,0DAAAA;AACEA,IAAAA,4DAAAA;AAAoDA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAChDA,IAAAA,4DAAAA;AAA4BA,IAAAA,oDAAAA;AAAMA,IAAAA,0DAAAA;AACpCA,IAAAA,0DAAAA;AACAA,IAAAA,4DAAAA;AAAmDA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACjDA,IAAAA,4DAAAA;AAA6BA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;AACnCA,IAAAA,0DAAAA;AAfFA,IAAAA,0DAAAA;;;;;;AACoGA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAMJA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,YAAAA,6DAAAA,4DAAgE,UAAhE,EAAgEqJ,mCAAhE;AAGhBrJ,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,YAAAA,6DAAAA,+DAAkE,UAAlE,EAAkEqJ,mCAAlE;AAGCrJ,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,YAAAA,6DAAAA,8DAAiE,UAAjE,EAAiE,oBAAjE;;;;;;AAMnFA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAGAA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAiCA,IAAAA,oDAAAA;AAA6CA,IAAAA,0DAAAA;AAChFA,IAAAA,0DAAAA;;;;;;;;AADmCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;;;;;ACjHzBA,IAAAA,4DAAAA;AAA8FA,IAAAA,oDAAAA;AAAcA,IAAAA,0DAAAA;;;;;AAAjCA,IAAAA,wDAAAA;AAAmBA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;;;AAqC5FA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAA0CA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;AACtDA,IAAAA,uDAAAA;AACFA,IAAAA,0DAAAA;AACAA,IAAAA,4DAAAA;AAAoDA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAClDA,IAAAA,4DAAAA;AAAUA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;AACzBA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;;;;;AATOA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;;;AAVfA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAA0CA,IAAAA,oDAAAA;AAAUA,IAAAA,0DAAAA;AACpDA,IAAAA,uDAAAA;AACFA,IAAAA,0DAAAA;AACAA,IAAAA,4DAAAA;AAAQA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmEA,IAAAA,4DAAAA;AAAUA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;AAAWA,IAAAA,0DAAAA;AAC7GA,IAAAA,4DAAAA;AACEA,IAAAA,wDAAAA;AAWFA,IAAAA,0DAAAA;AACAA,IAAAA,4DAAAA;AAAoEA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAClEA,IAAAA,4DAAAA;AAAUA,IAAAA,oDAAAA;AAAUA,IAAAA,0DAAAA;AACtBA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;AACDA,IAAAA,uDAAAA;AACDA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;;;;;;AA1BOA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAQyBA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;;;;;ACnDpCA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAA8BA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAC5BA,IAAAA,4DAAAA;AAA6BA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;AAC5CA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;;;;;;AAsDQA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;;;;;;AACjFA,IAAAA,4DAAAA;AAAgHA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhHA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAGAA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAAgHA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhHA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAGAA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;;;;;;AACjFA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;;;;;AAAjBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;;AACpFA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;AAAnBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAASA,IAAAA,0DAAAA;;;;;;AACzEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;AAApBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAcA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAyBA,IAAAA,0DAAAA;;;;;AAAzBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AAC5EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;;AACnFA,IAAAA,4DAAAA;AAA+DA,IAAAA,oDAAAA;AAAkBA,IAAAA,0DAAAA;;;;;AAAlBA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;AAG/DA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;;;AACpEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAA6EA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwBA,IAAAA,oDAAAA;AAASA,IAAAA,0DAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AAGtHA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAkBEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAkBA,IAAAA,0DAAAA;;;;;;AACnFA,IAAAA,4DAAAA;AAAiHA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGjHA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAGAA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AAC7EA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAKjEA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAWA,IAAAA,0DAAAA;;;;;;AAC7EA,IAAAA,4DAAAA;AAAiHA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGjHA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAIAA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAkBA,IAAAA,0DAAAA;;;;;;AACpFA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;;;;;AAAjBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIjEA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;;AACrFA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;AAAnBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGjEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAUA,IAAAA,0DAAAA;;;;;;AAC1EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAsBA,IAAAA,0DAAAA;;;;;AAAtBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AAC5EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAwBA,IAAAA,0DAAAA;;;;;AAAxBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAcA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAA0BA,IAAAA,0DAAAA;;;;;AAA1BA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAsBA,IAAAA,0DAAAA;;;;;;;;AACxFA,IAAAA,4DAAAA;AAAgEA,IAAAA,4DAAAA;AAA8BA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiFA,IAAAA,oDAAAA;AAAyBA,IAAAA,0DAAAA;AAAIA,IAAAA,0DAAAA;;;;;AAA7BA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGjLA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AA4CAA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;;;;;;AACjFA,IAAAA,4DAAAA;AAAgHA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhHA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAGAA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAA+FA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAG/FA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAGAA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;;;;;;AACjFA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;;;;;AAAjBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;;AACpFA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;AAAnBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAASA,IAAAA,0DAAAA;;;;;;AACzEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;AAApBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAcA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAyBA,IAAAA,0DAAAA;;;;;AAAzBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AAC5EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;;AACnFA,IAAAA,4DAAAA;AAA+DA,IAAAA,oDAAAA;AAAkBA,IAAAA,0DAAAA;;;;;AAAlBA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;AAIjEA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAWEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAkBA,IAAAA,0DAAAA;;;;;;AACnFA,IAAAA,4DAAAA;AAAgGA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhGA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAGAA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AAC7EA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAKjEA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAWA,IAAAA,0DAAAA;;;;;;AAC7EA,IAAAA,4DAAAA;AAAgGA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhGA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAIAA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAkBA,IAAAA,0DAAAA;;;;;;AACpFA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;;;;;AAAjBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIjEA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;;AACrFA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;AAAnBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGjEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAUA,IAAAA,0DAAAA;;;;;;AAC1EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAsBA,IAAAA,0DAAAA;;;;;AAAtBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AAC5EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAwBA,IAAAA,0DAAAA;;;;;AAAxBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAcA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAA0BA,IAAAA,0DAAAA;;;;;AAA1BA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAsBA,IAAAA,0DAAAA;;;;;;AACxFA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAyBA,IAAAA,0DAAAA;;;;;AAAzBA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;AAGlEA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AC5TMA,IAAAA,4DAAAA;AAA6HA,IAAAA,oDAAAA;AAAcA,IAAAA,0DAAAA;;;;;AAAjCA,IAAAA,wDAAAA;AAAmBA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;ACFjIA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;;;;;;AACjFA,IAAAA,4DAAAA;AAA+HA,IAAAA,oDAAAA;;AAAuEA,IAAAA,0DAAAA;;;;;AAA3GA,IAAAA,wDAAAA;AAAoCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA,+BAAAA,yDAAAA;;;;;;AAG/HA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAA+HA,IAAAA,oDAAAA;;AAAuEA,IAAAA,0DAAAA;;;;;AAA3GA,IAAAA,wDAAAA;AAAoCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA,+BAAAA,yDAAAA;;;;;;AAG/HA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AAC7EA,IAAAA,4DAAAA;AAA8HA,IAAAA,oDAAAA;;AAAqEA,IAAAA,0DAAAA;;;;;AAAxGA,IAAAA,wDAAAA;AAAmCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA,8BAAAA,yDAAAA;;;;;;AAG9HA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAWA,IAAAA,0DAAAA;;;;;;AAC5EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAsBA,IAAAA,0DAAAA;;;;;AAAtBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAwBA,IAAAA,0DAAAA;;;;;AAAxBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;;AACpFA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;;;;;AAAjBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAqBA,IAAAA,0DAAAA;;;;;;AACtFA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;AAAnBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIhEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAOA,IAAAA,0DAAAA;;;;;;AACxEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAkBA,IAAAA,0DAAAA;;;;;AAAlBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIhEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAUA,IAAAA,0DAAAA;;;;;;AAC3EA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;AAApBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIjEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;;;;;;AAChFA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAyBA,IAAAA,0DAAAA;;;;;AAAzBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIjEA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIjEA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAMA,IAAAA,0DAAAA;;;;;;AACxEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;AAAnBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAKjEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;;;AACpEA,IAAAA,4DAAAA;AACIA,IAAAA,4DAAAA;AAAwBA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACpBA,IAAAA,4DAAAA;AAAUA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;AAChBA,IAAAA,0DAAAA;AACNA,IAAAA,0DAAAA;;;;;;AAIAA,IAAAA,4DAAAA;AAAoEA,IAAAA,oDAAAA;AAAOA,IAAAA,0DAAAA;;;;;;;;AAC3EA,IAAAA,4DAAAA;AAIEA,IAAAA,4DAAAA;AAAqDA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAAsJ;AAAA,aAAgCC,wBAAhC;AAAwD,KAAxD,EAAyD,eAAzD,EAAyD;AAAA;AAAA;AAAA;AAAA,KAAzD;AACnDvJ,IAAAA,4DAAAA;AAAqCA,IAAAA,oDAAAA;AAAKA,IAAAA,0DAAAA;AAC5CA,IAAAA,0DAAAA;AAECA,IAAAA,0DAAAA;;;;;AAJcA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,2CAAqC,SAArC,EAAqCwJ,kBAArC;;;;;;AASnBxJ,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;;;;;;AC7DkBA,IAAAA,4DAAAA;AAAuGA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AACvGA,IAAAA,4DAAAA;AAAWA,IAAAA,oDAAAA;AAAKA,IAAAA,0DAAAA;AAChBA,IAAAA,0DAAAA;;;;AAFQA,IAAAA,wDAAAA;;;;;;AAKZA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAKA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;AACxBA,IAAAA,0DAAAA;;;;;;;;AACAA,IAAAA,4DAAAA;AAA4CA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA,OAAmD,OAAnD,EAAmD;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA,KAAnD;AAC1CA,IAAAA,oDAAAA;AACFA,IAAAA,0DAAAA;;;;;AAFqJA,IAAAA,wDAAAA;AACnJA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;ACnCUA,IAAAA,oDAAAA;;;;;;;;AAShBA,IAAAA,4DAAAA;AAAkIA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuCA,IAAAA,oDAAAA;AAAcA,IAAAA,0DAAAA;;;;;AAA5EA,IAAAA,wDAAAA;AAA8DA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;;;AASzKA,IAAAA,4DAAAA;AAA4HA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6DA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;AAArHA,IAAAA,wDAAAA;AAAiGA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;AAgCzKA,IAAAA,oDAAAA;;;;;;;;AAQhBA,IAAAA,4DAAAA;AAAkIA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuCA,IAAAA,oDAAAA;AAAcA,IAAAA,0DAAAA;;;;;AAA5EA,IAAAA,wDAAAA;AAA8DA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;;;AASzKA,IAAAA,4DAAAA;AAA4HA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmEA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;AAA3HA,IAAAA,wDAAAA;AAAuGA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;;;AC1DvMA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAkBA,IAAAA,0DAAAA;;;;;;;;;;;;AAClFA,IAAAA,4DAAAA;AAAqIA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAA7DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAAsCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGrIA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAGAA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAAqGA,IAAAA,oDAAAA;AAAyBA,IAAAA,0DAAAA;;;;;AAA/DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAAsCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIrGA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAWA,IAAAA,0DAAAA;;;;;;AAC5EA,IAAAA,4DAAAA;AAAqGA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAA7DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAAsCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGrGA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAAqGA,IAAAA,oDAAAA;AAAyBA,IAAAA,0DAAAA;;;;;AAA/DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAAsCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGrGA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AACrEA,IAAAA,4DAAAA;AAAqGA,IAAAA,oDAAAA;AAAgBA,IAAAA,0DAAAA;;;;;AAAtDA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAAsCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGrGA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAASA,IAAAA,0DAAAA;;;;;;AAC1EA,IAAAA,4DAAAA;AAAqGA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;AAA1DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAAsCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIrGA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAWA,IAAAA,0DAAAA;;;;;;AAC5EA,IAAAA,4DAAAA;AAAqGA,IAAAA,oDAAAA;AAAsBA,IAAAA,0DAAAA;;;;;AAA5DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAAsCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIrGA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AAC7EA,IAAAA,4DAAAA;AAAqGA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAA7DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAAsCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIrGA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AAC7EA,IAAAA,4DAAAA;AAAoGA,IAAAA,oDAAAA;AAAwBA,IAAAA,0DAAAA;;;;;AAA9DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAAsCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGpGA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAcA,IAAAA,0DAAAA;;;;;;AAC/EA,IAAAA,4DAAAA;AAAqGA,IAAAA,oDAAAA;AAA0BA,IAAAA,0DAAAA;;;;;AAAhEA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAAsCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAEvGA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAKEA,IAAAA,4DAAAA;AAA2DA,IAAAA,oDAAAA;AAAgBA,IAAAA,0DAAAA;;;;;;AAC3EA,IAAAA,4DAAAA;AAA2DA,IAAAA,oDAAAA;AAA2BA,IAAAA,0DAAAA;;;;;;AAFxFA,IAAAA,4DAAAA;AACEA,IAAAA,wDAAAA;AACAA,IAAAA,wDAAAA;AACFA,IAAAA,0DAAAA;;;;;AAFqCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AACAA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AAYnCA,IAAAA,4DAAAA;AAA0FA,IAAAA,oDAAAA;AAAkBA,IAAAA,0DAAAA;;;;;;AAC5GA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAGAA,IAAAA,4DAAAA;AAA2FA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;AACxGA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAyBA,IAAAA,0DAAAA;;;;;AAAzBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIhEA,IAAAA,4DAAAA;AAA2FA,IAAAA,oDAAAA;AAAWA,IAAAA,0DAAAA;;;;;;AACtGA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAyBA,IAAAA,0DAAAA;;;;;AAAzBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAA2FA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AAC/FA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAgBA,IAAAA,0DAAAA;;;;;AAAhBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAA2FA,IAAAA,oDAAAA;AAASA,IAAAA,0DAAAA;;;;;;AACpGA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;AAApBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIhEA,IAAAA,4DAAAA;AAA2FA,IAAAA,oDAAAA;AAAWA,IAAAA,0DAAAA;;;;;;AACtGA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAsBA,IAAAA,0DAAAA;;;;;AAAtBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIhEA,IAAAA,4DAAAA;AAA2FA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AACvGA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIhEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AAC7EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAwBA,IAAAA,0DAAAA;;;;;AAAxBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGhEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAcA,IAAAA,0DAAAA;;;;;;AAC/EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAA0BA,IAAAA,0DAAAA;;;;;AAA1BA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGlEA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAEEA,IAAAA,4DAAAA;AAA2DA,IAAAA,oDAAAA;AAAgBA,IAAAA,0DAAAA;;;;;;AAC3EA,IAAAA,4DAAAA;AAA2DA,IAAAA,oDAAAA;AAA2BA,IAAAA,0DAAAA;;;;;;AAFxFA,IAAAA,4DAAAA;AACEA,IAAAA,wDAAAA;AACAA,IAAAA,wDAAAA;AACFA,IAAAA,0DAAAA;;;;;AAFqCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AACAA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;AR/BpC,IAAIyJ,SAAS,GAAiB,EAA9B;AACA,IAAIxJ,gBAAgB,GAAuB,EAA3C;AAEA,MAAMyJ,iBAAiB,GAAiB,CAC7C;AAAEC,IAAE,EAAE,CAAN;AAASC,aAAW,EAAE,oBAAtB;AAA4CC,OAAK,EAAE,MAAnD;AAA2DC,cAAY,EAAE,YAAzE;AAAuFC,UAAQ,EAAE,iCAAjG;AAAoIC,eAAa,EAAE,UAAnJ;AAA+JC,UAAQ,EAAE,IAAzK;AAA+KC,SAAO,EAAC,KAAvL;AAA6LC,oBAAkB,EAAC,EAAhN;AAAmNC,YAAU,EAAC;AAA9N,CAD6C,CAAxC;AAKA,MAAMC,cAAc,GAA2B,EAA/C;AAWD,MAAOC,4BAAP,CAAmC;AA2BvCnK,cAAmBoK,MAAnB,EAA8C/J,MAA9C,EAAkFE,WAAlF,EAAsH8J,MAAtH,EAAoI;AAAjH;AAA2B;AAAoC;AAAoC;AAlBtH,0BAAyB,CAAzB;AACA,4BAA6B,CAAC,cAAD,EAAgB,cAAhB,EAA+B,aAA/B,EAA6C,cAA7C,EAA4D,UAA5D,EAAuE,cAAvE,EAAuF,OAAvF,EAA+F,cAA/F,EAA+G,eAA/G,EAA+H,cAA/H,EAA8I,oBAA9I,EAAmK,cAAnK,EAAmL,QAAnL,EAA4L,cAA5L,EAA4M,MAA5M,EAAmN,cAAnN,EAAoO,MAApO,EAA2O,cAA3O,EAA2P,QAA3P,EAAoQ,cAApQ,EAAmR,OAAnR,CAA7B;AAEA;;AACA,gBAAO,EAAP;AAcyI;;AAPzIC,iBAAe;AACb,SAAKC,UAAL,CAAgBtK,IAAhB,GAAuBqJ,SAAvB;AAEA,SAAKiB,UAAL,CAAgBC,SAAhB,GAA4B,KAAKA,SAAjC;AACD;;AAIDC,gBAAc;AACZ,SAAKlK,WAAL,CAAiBmK,aAAjB,GAAiCtH,SAAjC,CAA4CnD,IAAD,IAAY;AAErDqJ,eAAS,GAAErJ,IAAX;AACA,WAAKsK,UAAL,GAAkB,IAAIhL,wEAAJ,CAAmC+J,SAAnC,CAAlB;AACAhG,aAAO,CAACC,GAAR,CAAY,KAAKgH,UAAjB;AACA,WAAKA,UAAL,CAAgBC,SAAhB,GAA4B,KAAKA,SAAjC;AACD,KAND;AAOD;;AACD9I,UAAQ;AAEN4B,WAAO,CAACC,GAAR,CAAYoE,cAAc,CAACC,OAAf,CAAuB,MAAvB,CAAZ;AACA,SAAK+C,IAAL,GAAUhD,cAAc,CAACC,OAAf,CAAuB,MAAvB,CAAV;AACA,SAAK6C,cAAL;AACC,SAAKF,UAAL,GAAkB,IAAIhL,wEAAJ,CAAmC+J,SAAnC,CAAlB;AACJ;;;;;;;;;AASK,SAAKb,gBAAL,GAAuB,CAAC,cAAD,EAAgB,cAAhB,EAA+B,aAA/B,EAA6C,cAA7C,EAA4D,UAA5D,EAAuE,cAAvE,EAAuF,OAAvF,EAA+F,cAA/F,EAA+G,eAA/G,EAA+H,cAA/H,EAA8I,oBAA9I,EAAmK,cAAnK,EAAmL,QAAnL,CAAvB;AACF,SAAKmC,OAAL;AACA,SAAKC,cAAL,GAAsBvB,SAAS,CAAC7F,MAAhC;AACD;;AAEDmH,SAAO;AACL,SAAKL,UAAL,GAAkB,IAAIhL,wEAAJ,CAAmC+J,SAAnC,CAAlB;AACA,SAAKiB,UAAL,CAAgBC,SAAhB,GAA4B,KAAKA,SAAjC;AACD;;AAEDM,aAAW,CAACxF,KAAD,EAAa;AACtB,UAAMZ,WAAW,GAAIY,KAAK,CAACyF,MAAN,CAAkCnI,KAAvD;AACA,SAAK2H,UAAL,CAAgBrF,MAAhB,GAAyBR,WAAW,CAACsG,IAAZ,GAAmBrG,WAAnB,EAAzB;AACD;;AAEDsG,YAAU;AACR,UAAMzK,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiB6D,iBAAjB,EAAoC;AACpDjL,UAAI,EAAE;AAAEwJ,mBAAW,EAAE,KAAKA,WAApB;AAAiCC,aAAK,EAAE,KAAKA,KAA7C;AAAoDC,oBAAY,EAAE,KAAKA,YAAvE;AAAqFC,gBAAQ,EAAE,KAAKA;AAApG,OAD8C;AAEpDuB,YAAM,EAAE,KAF4C;AAGpDC,WAAK,EAAE;AAH6C,KAApC,CAAlB;AAOA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAKb,cAAL;AAED,KAHD;AAKD;AAED;;;;;;;;;;;;;AAgBEc,gBAAc,CAACtL,IAAD,EAAU;AAElB,QAAIA,IAAI,IAAI,IAAR,IAAgBA,IAAI,IAAI0B,SAA5B,EAAuC;AAEnC,WAAK0I,MAAL,CAAYmB,QAAZ,CAAqB,CAAC,uBAAD,EAA0BvL,IAAI,CAACiD,EAA/B,CAArB,EAFmC,CAEuB;AAC7D;AACF;;AAGPuI,uBAAqB,CAACxL,IAAD,EAAU;AAC7BqD,WAAO,CAACC,GAAR,CAAYtD,IAAZ;AACA,UAAMO,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiBqE,aAAjB,EAAgC;AAChDzL,UAAI,EAAE;AAAEuJ,UAAE,EAAEvJ,IAAI,CAACiD,EAAX;AAAeuF,wBAAgB,EAAE,KAAKA;AAAtC,OAD0C;AAEhD0C,YAAM,EAAE,KAFwC;AAGhDC,WAAK,EAAE;AAHyC,KAAhC,CAAlB;AAOA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAKb,cAAL;AAED,KAHD;AAKD;;AACDkB,qBAAmB,CAAC1L,IAAD,EAAU;AAG3B,UAAMO,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiBuE,iBAAjB,EAAoC;AACpD3L,UAAI,EAAE;AAACuJ,UAAE,EAACvJ,IAAI,CAACiD,EAAT;AAAY4G,gBAAQ,EAAC7J,IAAI,CAAC4L,QAA1B;AACJpC,mBAAW,EAAExJ,IAAI,CAAC6L,WADd;AAC2BpC,aAAK,EAAEzJ,IAAI,CAAC8L,KADvC;AAC8CpC,oBAAY,EAAE1J,IAAI,CAAC+L,YADjE;AAC+EpC,gBAAQ,EAAE3J,IAAI,CAACgM,QAD9F;AACwGpC,qBAAa,EAAE5J,IAAI,CAACiM;AAD5H,OAD8C;AAIpDf,YAAM,EAAE,KAJ4C;AAKpDC,WAAK,EAAE;AAL6C,KAApC,CAAlB;AASA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAKb,cAAL;AAED,KAHD;AAID;;AACD0B,qBAAmB,CAAClM,IAAD,EAAU;AAC3B,UAAMO,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiB+E,iBAAjB,EAAoC;AACpDnM,UAAI,EAAE;AAAEuJ,UAAE,EAAEvJ,IAAI,CAACiD,EAAX;AAAeuG,mBAAW,EAAExJ,IAAI,CAAC6L,WAAjC;AAA8CpC,aAAK,EAAEzJ,IAAI,CAACoM,OAA1D;AAAmE1C,oBAAY,EAAE1J,IAAI,CAAC+L,YAAtF;AAAoGpC,gBAAQ,EAAE3J,IAAI,CAACgM,QAAnH;AAA6HpC,qBAAa,EAAE5J,IAAI,CAACiM;AAAjJ,OAD8C;AAEpDf,YAAM,EAAE,KAF4C;AAGpDC,WAAK,EAAE;AAH6C,KAApC,CAAlB;AAKA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAKb,cAAL;AACD,KAFD;AAGD;;AACD6B,UAAQ,CAACrM,IAAD,EAAU;AAChBqD,WAAO,CAACC,GAAR,CAAY,QAAZ,EAAqBtD,IAArB;;AACA,QAAIsM,OAAO,CAAC,kCAAD,CAAX,EAAiD;AAC/C,WAAKhM,WAAL,CAAiBiM,aAAjB,CAA+BvM,IAAI,CAACiD,EAApC,EAAwCE,SAAxC,CAAkD,MAAK;AACrD,aAAK7C,WAAL,CAAiByG,cAAjB,CAAgC,sBAAhC,EAAuD,MAAvD,EAA8D,MAA9D,EAAsE,cAAtE;AACA,aAAKyD,cAAL;AACD,OAHD;AAID;AACF;;AACDgC,SAAO,CAACxM,IAAD,EAAS;AACdqD,WAAO,CAACC,GAAR,CAAY,QAAZ,EAAqBtD,IAArB;;AACA,QAAIsM,OAAO,CAAC,6CAAD,CAAX,EAA4D;AAC1D,WAAKhM,WAAL,CAAiBmM,YAAjB,CAA8BzM,IAAI,CAACiD,EAAnC,EAAuCE,SAAvC,CAAiD,MAAK;AACpD,aAAK7C,WAAL,CAAiByG,cAAjB,CAAgC,6BAAhC,EAA8D,MAA9D,EAAqE,MAArE,EAA6E,cAA7E;AACA,aAAKyD,cAAL;AACD,OAHD;AAID;AACF;;AAGDkC,oBAAkB,CAACC,GAAD,EAAU1F,MAAV,EAAoB;AAEpC,QAAGA,MAAM,IAAE,QAAX,EACA;AAEI,aAAO,IAAP;AAGH,KAND,MAQC,IAAGA,MAAM,IAAE,MAAX,EACD;AACE,UAAG,CAAC,KAAKyD,IAAL,IAAW,kBAAX,IAAiC,KAAKA,IAAL,IAAW,iBAA7C,KAAmEiC,GAAG,CAACV,aAAJ,IAAqB,KAA3F,EACE,OAAO,IAAP;AACH,KAJA,MAKK,IAAGhF,MAAM,IAAE,QAAX,EACJ;AACE,UAAG,CAAC,KAAKyD,IAAL,IAAW,kBAAX,IAAiC,KAAKA,IAAL,IAAW,iBAA7C,KAAmEiC,GAAG,CAACV,aAAJ,IAAqB,KAA3F,EACE,OAAO,IAAP;AACH,KAJG,MAKE,IAAGhF,MAAM,IAAE,OAAX,EACJ;AACE,UAAG,KAAKyD,IAAL,IAAW,iBAAX,IAAgCiC,GAAG,CAACC,OAAJ,IAAe,IAAlD,EACE,OAAO,IAAP;AACH;;AACD,WAAO,KAAP;AACL;;AAnMsC;;;mBAA5B1C,8BAA4BtK,+DAAAA,CAAAA,gEAAAA,GAAAA,+DAAAA,CAAAA,oFAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,oDAAAA;AAAA;;;QAA5BsK;AAA4BzB;AAAAC;AAAA;gEAe5BE,sEAAYA,EAAA;;;;;;;;;;;;;;ACnJzBhJ,MAAAA,4DAAAA;AAEAA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAgBA,MAAAA,0DAAAA;AAC5DA,MAAAA,uDAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAEEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAOA,MAAAA,0DAAAA;AAClBA,MAAAA,4DAAAA;AAAgBA,MAAAA,wDAAAA;AAAA,eAAS+I,uBAAT;AAA4B,OAA5B;AAAhB/I,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEAA,MAAAA,uDAAAA;AACAA,MAAAA,wDAAAA;AAEFA,MAAAA,0DAAAA;AAGAA,MAAAA,4DAAAA;AAEFA,MAAAA,4DAAAA;AAEEA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAuDAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAgBAA,MAAAA,mEAAAA;AAGFA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAGAA,MAAAA,wDAAAA;AAGFA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AAEFA,MAAAA,0DAAAA;AAEAA,MAAAA,0DAAAA;;;;AAvI2BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAOVA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAiH+BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACYA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAUZA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,oBAAAA,6DAAAA,UAAoC,UAApC,EAAoC,EAApC;;;;;;ADsN1C,MAAOqL,iBAAP,CAAwB;AAe5BlL,cAAoB8M,EAApB,EAAqE7M,IAArE,EAA+FE,SAA/F,EAA+HC,WAA/H,EAAiKC,MAAjK,EAAoMG,SAApM,EACUD,WADV,EACqC;AADjB;AAAiD;AAA0B;AAAgC;AAAkC;AAAmC;AAC1L;AAPV,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AACA,uBAA2B;AACzB2C,QAAE,EAAE,CADqB;AAClB6J,kBAAY,EAAE,EADI;AACAjB,iBAAW,EAAE,EADb;AACiBkB,iBAAW,EAAE,EAD9B;AACkCX,aAAO,EAAE,CAD3C;AAC8CY,YAAM,EAAE,EADtD;AAC0DpB,cAAQ,EAAE,IADpE;AAEzBxK,eAAS,EAAE,CAFc;AAEX6L,iBAAW,EAAE,IAAIC,IAAJ,EAFF;AAEcC,eAAS,EAAE,CAFzB;AAE4BC,iBAAW,EAAE,IAAIF,IAAJ,EAFzC;AAEqDG,eAAS,EAAE,CAFhE;AAEmEC,gBAAU,EAAE;AAF/E,KAA3B;AAOA,uBAAc,6BAAd;AAEA,mCAA0B,yCAA1B;AAJ0C;;AAK1C7L,UAAQ;AAEN,SAAK8L,IAAL,GAAY,KAAKpN,WAAL,CAAiBoB,KAAjB,CAAuB;AACjCiI,iBAAW,EAAE,CAAC,IAAD,EAAO,CAAC9J,gEAAD,EAAqB8N,yBAAyB,EAA9C,CAAP,CADoB;AAEjC/D,WAAK,EAAE,CAAC,IAAD,EAAO/J,gEAAP,CAF0B;AAGjCgK,kBAAY,EAAE,CAAC,IAAD,EAAOhK,gEAAP,CAHmB;AAIjCiK,cAAQ,EAAE,CAAC,IAAD,EAAO,CAACjK,gEAAD,EAAqB8N,yBAAyB,EAA9C,CAAP,CAJuB;AAKjC5D,mBAAa,EAAE,CAAC,IAAD,EAAO,IAAP,CALkB;AAMjC0D,gBAAU,EAAE,KAAKT,EAAL,CAAQY,KAAR,CAAc,EAAd;AANqB,KAAvB,CAAZ;AASA,SAAKC,QAAL;AACArK,WAAO,CAACC,GAAR,CAAY,KAAKiK,IAAL,CAAU5K,KAAtB;AACD;;AACD2K,YAAU;AACR,WAAO,KAAKC,IAAL,CAAUzF,GAAV,CAAc,YAAd,CAAP;AACD;;AAED6F,QAAM;AACJ,WAAO,KAAKd,EAAL,CAAQtL,KAAR,CAAc;AACnBqM,aAAO,EAAE,EADU;AAEnBC,kBAAY,EAAC,KAAKhB,EAAL,CAAQY,KAAR,CAAc,EAAd;AAFM,KAAd,CAAP;AAID;;AACDK,QAAM;AACJ,SAAKR,UAAL,GAAkBzJ,IAAlB,CAAuB,KAAK8J,MAAL,EAAvB;AACD;;AACDI,WAAS,CAACC,QAAD,EAAgB;AACvB,SAAKV,UAAL,GAAkBW,QAAlB,CAA2BD,QAA3B;AACD;;AACDE,WAAS,CAACF,QAAD,EAAgB;AACvB,WAAO,KAAKV,UAAL,GAAkBa,EAAlB,CAAqBH,QAArB,EAA+BlG,GAA/B,CAAmC,cAAnC,CAAP;AACD;;AACDsG,WAAS;AACP,WAAO,KAAKvB,EAAL,CAAQtL,KAAR,CAAc;AACnB8M,gBAAU,EAAE;AADO,KAAd,CAAP;AAGD;;AACDC,cAAY,CAACN,QAAD,EAAgB;AAC1B,SAAKE,SAAL,CAAeF,QAAf,EAAyBnK,IAAzB,CAA8B,KAAKuK,SAAL,EAA9B;AACD;;AACDG,iBAAe,CAACP,QAAD,EAAmBQ,WAAnB,EAAsC;AACnD,SAAKN,SAAL,CAAeF,QAAf,EAAyBC,QAAzB,CAAkCO,WAAlC;AACD;;AAEU,MAAPC,OAAO;AACT,WAAO,KAAKlB,IAAL,CAAUzF,GAAV,CAAc,cAAd,CAAP;AACD;;AACO,MAAJ4G,IAAI;AACN,WAAO,KAAKnB,IAAL,CAAUzF,GAAV,CAAc,MAAd,CAAP;AACD;;AAED6G,cAAY;AACV,WAAO,KAAK9B,EAAL,CAAQtL,KAAR,CAAc;AACnB8M,gBAAU,EAAE,CAAC,GAAD;AADO,KAAd,CAAP;AAGD;;AACDO,WAAS;AACP,WAAO,KAAK/B,EAAL,CAAQtL,KAAR,CAAc;AACnBqM,aAAO,EAAE,CAAC,GAAD,CADU;AAEnBiB,kBAAY,EAAE,KAAK1O,WAAL,CAAiBsN,KAAjB,CAAuB,CAAC,KAAKkB,YAAL,EAAD,CAAvB;AAFK,KAAd,CAAP;AAID;;AAEDG,SAAO;AACL,SAAKJ,IAAL,CAAU7K,IAAV,CAAe,KAAK+K,SAAL,EAAf;AACD;;AACDG,WAAS;AACP,SAAKN,OAAL,CAAa5K,IAAb,CAAkB,KAAK8K,YAAL,EAAlB;AACA,SAAKD,IAAL,CAAU/L,KAAV,CAAgB,CAAhB,EAAmBkM,YAAnB,GAAiC,KAAKJ,OAAL,CAAa9L,KAA9C;AACAU,WAAO,CAACC,GAAR,CAAY,KAAKiK,IAAL,CAAU5K,KAAtB;AACD;;AAEDqM,cAAY,CAACvJ,KAAD,EAAc;AACxB,QAAI,KAAKgJ,OAAL,CAAajL,MAAb,GAAsB,CAA1B,EAA6B;AAC3B,WAAKiL,OAAL,CAAaR,QAAb,CAAsBxI,KAAtB;AACD;AACF;;AACDwJ,WAAS,CAACxJ,KAAD,EAAc;AACrB,QAAI,KAAKiJ,IAAL,CAAUlL,MAAV,GAAmB,CAAvB,EAA0B;AACxB,WAAKkL,IAAL,CAAUT,QAAV,CAAmBxI,KAAnB;AACD;AACF;;AACDgB,SAAO;AACL,SAAK8G,IAAL,CAAU2B,UAAV,CAAqB,cAArB,EAAqC,KAAKrC,EAAL,CAAQY,KAAR,CAAc,CAAC,KAAKkB,YAAL,EAAD,CAAd,CAArC;AACA,SAAKpB,IAAL,CAAU2B,UAAV,CAAqB,MAArB,EAA6B,KAAKrC,EAAL,CAAQY,KAAR,CAAc,CAAC,KAAKmB,SAAL,EAAD,CAAd,CAA7B;AACA,SAAKrB,IAAL,CAAUpJ,KAAV;AAED;;AACDuJ,UAAQ;AACN,SAAKpN,WAAL,CAAiBoN,QAAjB,GAA4BvK,SAA5B,CAAuCnD,IAAD,IAAY;AAChD,WAAKmP,QAAL,GAAgBnP,IAAhB;AACD,KAFD;AAGD;;AAEDoP,oBAAkB;AAChB;AACA,QAAI3H,MAAM,GAAGC,cAAc,CAACC,OAAf,CAAuB,QAAvB,CAAb;AACA,SAAK4F,IAAL,CAAUrH,QAAV,CAAmB,eAAnB,EAAoCpC,UAApC,CAA+C,KAA/C;;AACA,QAAI,CAAC,KAAKyJ,IAAL,CAAU5K,KAAV,CAAgB6G,WAArB,EAAkC;AAChC,WAAKlJ,WAAL,CAAiByG,cAAjB,CAAgC,2BAAhC,EAA4D,MAA5D,EAAoE,MAApE,EAA4E,cAA5E;AACA;AACD;;AAED,QAAI,KAAKwG,IAAL,CAAUzF,GAAV,CAAc,aAAd,EAA6BuH,QAA7B,CAAsC,kBAAtC,KAA4D,IAAhE,EACE;AACE,WAAK/O,WAAL,CAAiByG,cAAjB,CAAgC,2CAAhC,EAA6E,MAA7E,EAAqF,MAArF,EAA6F,cAA7F;AACA;AACD;;AAEH,QAAI,CAAC,KAAKwG,IAAL,CAAU5K,KAAV,CAAgB8G,KAArB,EAA4B;AAC1B,WAAKnJ,WAAL,CAAiByG,cAAjB,CAAgC,qBAAhC,EAAsD,MAAtD,EAA6D,MAA7D,EAAqE,cAArE;AACA;AACD;;AACD,QAAI,KAAKwG,IAAL,CAAU5K,KAAV,CAAgB+G,YAAhB,IAAgC,IAAhC,IAAwC,KAAK6D,IAAL,CAAU5K,KAAV,CAAgBoK,WAAhB,IAA+B,EAA3E,EAA+E;AAC7E,WAAKzM,WAAL,CAAiByG,cAAjB,CAAgC,iCAAhC,EAAmE,MAAnE,EAA2E,MAA3E,EAAmF,cAAnF;AACA;AACD;;AAED,QAAG,KAAKwG,IAAL,CAAU5K,KAAV,CAAgB+G,YAAhB,IAA8B,CAAjC,EAAmC;AACjC,WAAKpJ,WAAL,CAAiByG,cAAjB,CAAgC,mDAAhC,EAAoF,MAApF,EAA2F,MAA3F,EAAmG,cAAnG;AACA;AACD;;AAED,QAAI,KAAKwG,IAAL,CAAU5K,KAAV,CAAgBgH,QAAhB,IAA4B,IAA5B,IAAoC,KAAK4D,IAAL,CAAU5K,KAAV,CAAgBgH,QAAhB,IAA4B,EAApE,EAAwE;AACtE,WAAKrJ,WAAL,CAAiByG,cAAjB,CAAgC,uBAAhC,EAAyD,MAAzD,EAAiE,MAAjE,EAAyE,cAAzE;AACA;AACD;;AACH,QAAI,KAAKwG,IAAL,CAAUzF,GAAV,CAAc,UAAd,EAA0BuH,QAA1B,CAAmC,kBAAnC,KAAyD,IAA7D,EACE;AACE,WAAK/O,WAAL,CAAiByG,cAAjB,CAAgC,uCAAhC,EAAyE,MAAzE,EAAiF,MAAjF,EAAyF,cAAzF;AACA;AACD;;AAGD,QAAI,KAAKwG,IAAL,CAAU5K,KAAV,CAAgB2K,UAAhB,CAA2B9J,MAA3B,IAAqC,CAAzC,EAA4C;AAC1C,WAAKlD,WAAL,CAAiByG,cAAjB,CAAgC,mCAAhC,EAAqE,MAArE,EAA6E,MAA7E,EAAqF,cAArF;AACA;AACD;;AAED,SAAK,IAAIuI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK/B,IAAL,CAAU5K,KAAV,CAAgB2K,UAAhB,CAA2B9J,MAA/C,EAAuD8L,CAAC,EAAxD,EAA4D;AAC1D,UAAI,KAAK/B,IAAL,CAAU5K,KAAV,CAAgB2K,UAAhB,CAA2BgC,CAA3B,EAA8B1B,OAA9B,IAAyC,EAA7C,EAAiD;AAC/C,aAAKtN,WAAL,CAAiByG,cAAjB,CAAgC,gCAAhC,EAAkE,MAAlE,EAA0E,MAA1E,EAAkF,cAAlF;AACA;AACD;;AACD,UAAI,KAAKwG,IAAL,CAAU5K,KAAV,CAAgB2K,UAAhB,CAA2BgC,CAA3B,EAA8BzB,YAA9B,CAA2CrK,MAA3C,IAAqD,CAAzD,EAA4D;AAC1D,aAAKlD,WAAL,CAAiByG,cAAjB,CAAgC,6CAAhC,EAA+E,MAA/E,EAAuF,MAAvF,EAA+F,cAA/F;AACA;AACD;;AAED,UAAI,KAAKwG,IAAL,CAAU5K,KAAV,CAAgB2K,UAAhB,CAA2BgC,CAA3B,EAA8BzB,YAA9B,CAA2CrK,MAA3C,GAAoD,CAAxD,EAA2D;AACzD,aAAK,IAAI+L,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKhC,IAAL,CAAU5K,KAAV,CAAgB2K,UAAhB,CAA2BgC,CAA3B,EAA8BzB,YAA9B,CAA2CrK,MAA/D,EAAuE+L,CAAC,EAAxE,EAA4E;AAC1E,cAAI,KAAKhC,IAAL,CAAU5K,KAAV,CAAgB2K,UAAhB,CAA2BgC,CAA3B,EAA8BzB,YAA9B,CAA2C0B,CAA3C,EAA8ClB,UAA9C,IAA4D,EAAhE,EAAoE;AAClE,iBAAK/N,WAAL,CAAiByG,cAAjB,CAAgC,yCAAhC,EAA2E,MAA3E,EAAmF,MAAnF,EAA2F,cAA3F;AACA;AACD;AACF;AACF;AACF;;AACD,UAAMuG,UAAU,GAAE,KAAKC,IAAL,CAAU5K,KAAV,CAAgB2K,UAAhB,CAA2B9N,GAA3B,CAA+BuF,IAAI,IAAEA,IAAI,CAAC6I,OAA1C,CAAlB;AACA,UAAM4B,aAAa,GAAElC,UAAU,CAACrI,MAAX,CAAkB,CAACV,IAAD,EAAMkB,KAAN,KAAc6H,UAAU,CAAC1J,OAAX,CAAmBW,IAAnB,MAA2BkB,KAA3D,CAArB;;AACC,QAAG+J,aAAa,CAAChM,MAAjB,EAAwB;AACvB,WAAKlD,WAAL,CAAiByG,cAAjB,CAAgC,gCAAhC,EAAkE,MAAlE,EAA0E,MAA1E,EAAkF,cAAlF;AACM;AACN;;AACD,SAAK,IAAIuI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK/B,IAAL,CAAU5K,KAAV,CAAgB2K,UAAhB,CAA2B9J,MAA/C,EAAuD8L,CAAC,EAAxD,EAA4D;AAC3D,YAAMb,OAAO,GAAE,KAAKlB,IAAL,CAAU5K,KAAV,CAAgB2K,UAAhB,CAA2BgC,CAA3B,EAA8BzB,YAA9B,CAA2CrO,GAA3C,CAA+CuF,IAAI,IAAEA,IAAI,CAACsJ,UAA1D,CAAf;AACA,YAAMoB,eAAe,GAAEhB,OAAO,CAACxJ,MAAR,CAAe,CAACV,IAAD,EAAMkB,KAAN,KAAcgJ,OAAO,CAAC7K,OAAR,CAAgBW,IAAhB,MAAwBkB,KAArD,CAAvB;;AACA,UAAGgK,eAAe,CAACjM,MAAnB,EAA0B;AACxB,aAAKlD,WAAL,CAAiByG,cAAjB,CAAgC,yCAAhC,EAA2E,MAA3E,EAAmF,MAAnF,EAA2F,cAA3F;AACA;AACA;AACF;;AACD,QAAG,KAAKwG,IAAL,CAAU5K,KAAV,CAAgB6G,WAAnB,EAA+B;AAC9B,WAAKlJ,WAAL,CAAiBoP,yBAAjB,CAA2C,KAAKnC,IAAL,CAAU5K,KAAV,CAAgB6G,WAA3D,EAAwErG,SAAxE,CAAmFnD,IAAD,IAAY;AAC5F,YAAGA,IAAI,GAAC,CAAR,EAAU;AACRqD,iBAAO,CAACC,GAAR,CAAYtD,IAAZ;AACA,eAAKM,WAAL,CAAiByG,cAAjB,CAAgC,6BAAhC,EAA+D,MAA/D,EAAuE,MAAvE,EAA+E,cAA/E;AACA;AACD,SAJD,MAKI;AACF,eAAKzG,WAAL,CAAiBqP,wBAAjB,CAA0C,KAAKpC,IAAL,CAAU5K,KAAV,CAAgB+G,YAA1D,EAAwEvG,SAAxE,CAAmFnD,IAAD,IAAY;AAC5F,gBAAGA,IAAI,GAAC,CAAR,EAAU;AACR,mBAAKM,WAAL,CAAiByG,cAAjB,CAAgC,+BAAhC,EAAiE,MAAjE,EAAyE,MAAzE,EAAiF,cAAjF;AACA;AACD,aAHD,MAKA;AACE,kBAAI,KAAKwG,IAAL,CAAU3F,KAAV,IAAmB,KAAK2F,IAAL,CAAU5K,KAAV,CAAgB2K,UAAhB,CAA2B9J,MAA3B,GAAoC,CAA3D,EAA8D;AAC5D,qBAAKxD,IAAL,CAAU6J,QAAV,GAAqB,IAArB;AACA,qBAAK+F,WAAL,CAAiB3M,EAAjB,GAAsB,CAAtB;AACA,qBAAK2M,WAAL,CAAiB9C,YAAjB,GAAgC,KAAKS,IAAL,CAAU5K,KAAV,CAAgBgH,QAAhD;AACA,qBAAKiG,WAAL,CAAiB/D,WAAjB,GAA+B,KAAK0B,IAAL,CAAU5K,KAAV,CAAgB6G,WAA/C;AACA,qBAAKoG,WAAL,CAAiB7C,WAAjB,GAA+BhF,MAAM,CAAC,KAAKwF,IAAL,CAAU5K,KAAV,CAAgB+G,YAAjB,CAArC;AACA,qBAAKkG,WAAL,CAAiBxD,OAAjB,GAA2B,KAAKmB,IAAL,CAAU5K,KAAV,CAAgB8G,KAA3C;AACA,qBAAKmG,WAAL,CAAiB5C,MAAjB,GAA0B,KAAKO,IAAL,CAAU5K,KAAV,CAAgBiH,aAA1C;AACA,qBAAKgG,WAAL,CAAiBtC,UAAjB,GAA8B,KAAKC,IAAL,CAAU5K,KAAV,CAAgB2K,UAA9C;AACA,qBAAKsC,WAAL,CAAiBhE,QAAjB,GAA4B,IAA5B;AACA,qBAAKgE,WAAL,CAAiBxO,SAAjB,GAA6B6G,MAAM,CAACR,MAAD,CAAnC;AACA,qBAAKmI,WAAL,CAAiB3C,WAAjB,GAA+B,IAAIC,IAAJ,EAA/B;AACA,qBAAK0C,WAAL,CAAiBzC,SAAjB,GAA6BlF,MAAM,CAACR,MAAD,CAAnC;AACA,qBAAKmI,WAAL,CAAiBxC,WAAjB,GAA+B,IAAIF,IAAJ,EAA/B;AACA,qBAAK0C,WAAL,CAAiBvC,SAAjB,GAA6B,CAA7B;AACAhK,uBAAO,CAACC,GAAR,CAAY,KAAKsM,WAAjB;AACA,qBAAKtP,WAAL,CAAiBuP,WAAjB,CAA6B,KAAKD,WAAlC,EAA+CzM,SAA/C,CAAyD;AACvDgF,sBAAI,EAAGC,GAAD,IAAa;AACjB,yBAAK9H,WAAL,CAAiByG,cAAjB,CAAgC,wBAAhC,EAA0D,MAA1D,EAAkE,MAAlE,EAA0E,cAA1E;AACA,yBAAKxG,SAAL,CAAeuG,KAAf,CAAqB,IAArB;AACD,mBAJsD;AAKvDuB,uBAAK,EAAGC,GAAD,IAAa;AAClB,yBAAKhI,WAAL,CAAiByG,cAAjB,CAAgCuB,GAAG,CAACD,KAApC,EAA2C,MAA3C,EAAmD,MAAnD,EAA2D,cAA3D;AACD;AAPsD,iBAAzD;AAWD;AACF;AACF,WApCD;AAuCD;AACF,OA/CD;AAgDD;;AAEDhF,WAAO,CAACC,GAAR,CAAY,KAAKiK,IAAL,CAAUrH,QAAtB;AAED;;AACDY,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf;AACD;;AA1P2B;;;mBAAjBmE,mBAAiBrL,+DAAAA,CAAAA,wDAAAA,GAAAA,+DAAAA,CAeiBP,sEAfjB,GAegCO,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,wDAAAA,GAAAA,+DAAAA,CAAAA,oFAAAA,GAAAA,+DAAAA,CAAAA,mEAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA;AAAA;;;QAfjDqL;AAAiBxC;AAAAqH;AAAAC;AAAAC;AAAAC;AAAA;AEvW9BrQ,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAYA,MAAAA,0DAAAA;AAC1DA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAAyE/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC1FA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA8BA,MAAAA,oDAAAA;AAAmBA,MAAAA,0DAAAA;AACnDA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAYA,MAAAA,0DAAAA;AACtDA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC/CA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAiBA,MAAAA,0DAAAA;AAC3DA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAQA,MAAAA,0DAAAA;AAClDA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA8BA,MAAAA,oDAAAA;AAAeA,MAAAA,0DAAAA;AAC/CA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AA4BAA,MAAAA,4DAAAA;AAA4DA,MAAAA,wDAAAA;AAAA,eAAS+I,YAAT;AAAiB,OAAjB;AAAmB/I,MAAAA,4DAAAA;AAAUA,MAAAA,oDAAAA;AAAUA,MAAAA,0DAAAA;AAAWA,MAAAA,0DAAAA;AAChHA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA4CA,MAAAA,wDAAAA;AAAA,eAAS+I,wBAAT;AAA6B,OAA7B;AAC7B/I,MAAAA,oDAAAA;AAAIA,MAAAA,0DAAAA;AACnBA,MAAAA,4DAAAA;AAA2DA,MAAAA,wDAAAA;AAAA,eAAS+I,aAAT;AAAkB,OAAlB;AAAoB/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AACtFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;;;;AAnFMA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAiBoEA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AA4B/CA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;AFqjBrB,MAAO+L,iBAAP,CAAwB;AAM5B5L,cAA4CC,IAA5C,EAAsEG,WAAtE,EAAwGI,SAAxG,EAA2J4J,MAA3J,EAAqL7J,WAArL,EAAwN4P,WAAxN,EAA4P9F,MAA5P,EAA0Q;AAA9N;AAA0B;AAAkC;AAAmD;AAA0B;AAAmC;AAAoC;AAG5P,mBAAmB,IAAnB;AAAyB,oBAAoB,IAApB;AAA0B,oBAAoB,IAApB;AACnD,uBAAc,6BAAd;AACC,uBAAqC,EAArC;AACD,4BAA6B,CAAC,YAAD,EAAc,cAAd,EAA8B,YAA9B,EAA2C,eAA3C,EAA4D,YAA5D,EAA0E,MAA1E,EAAkF,QAAlF,EAA4F,SAA5F,EAAuG,cAAvG,EAAuH,YAAvH,EAAqI,QAArI,EAA+I,MAA/I,CAA7B;AACA,+BAAgC,CAAC,YAAD,EAAc,cAAd,EAA8B,YAA9B,EAA2C,eAA3C,EAA4D,YAA5D,EAA0E,MAA1E,EAAkF,QAAlF,EAA4F,SAA5F,EAAuG,cAAvG,EAAuH,YAAvH,EAAqI,QAArI,CAAhC;AACA,mCAAoC,CAAC,YAAD,EAAc,cAAd,EAA8B,YAA9B,EAA2C,eAA3C,EAA4D,YAA5D,EAA0E,MAA1E,EAAkF,QAAlF,EAA4F,WAA5F,EAAyG,aAAzG,EAAwH,YAAxH,EAAsI,eAAtI,CAApC;AAR+Q;;AAS/Q3I,UAAQ;AACN,SAAK0O,WAAL,CAAiBtM,IAAjB,CAAsB;AACpB0F,QAAE,EAAC,KAAKvJ,IAAL,CAAUuJ,EADO;AAElBC,iBAAW,EAAE,KAAKxJ,IAAL,CAAUwJ,WAFL;AAGlBC,WAAK,EAAC,KAAKzJ,IAAL,CAAUyJ,KAHE;AAIlBE,cAAQ,EAAC,KAAK3J,IAAL,CAAU2J,QAJD;AAKlBC,mBAAa,EAAC,KAAK5J,IAAL,CAAU4J,aALN;AAMlBF,kBAAY,EAAC,KAAK1J,IAAL,CAAU0J,YANL;AAOlBG,cAAQ,EAAC,KAAK7J,IAAL,CAAU6J;AAPD,KAAtB;AAUA,SAAKuG,aAAL,CAAmB,KAAKpQ,IAAL,CAAUuJ,EAA7B;AACD;;AACD8G,MAAI,CAACC,OAAD,EAAa;AACf,UAAM/P,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiBmJ,kBAAjB,EAAqC;AACrDvQ,UAAI,EAAE;AAAE4B,iBAAS,EAAC,KAAK5B,IAAL,CAAUuJ,EAAtB;AAAyBiH,iBAAS,EAACF,OAAO,CAACG,SAA3C;AAAsDC,kBAAU,EAAEJ,OAAO,CAACjC,UAA1E;AAAqF9E,UAAE,EAAE+G,OAAO,CAACrN,EAAjG;AAAqGuF,wBAAgB,EAAE,KAAKA;AAA5H,OAD+C;AAErD0C,YAAM,EAAE,OAF6C;AAGrDC,WAAK,EAAE;AAH8C,KAArC,CAAlB;AAKA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG,CAC1C,CADD;AAED;;AACD+E,eAAa,CAACpN,SAAD,EAAU;AACrB,QAAImD,QAAQ,GAAIuB,cAAc,CAACC,OAAf,CAAuB,MAAvB,KAAgC,QAAjC,GAA2CD,cAAc,CAACC,OAAf,CAAuB,UAAvB,CAA3C,GAA8E,CAA7F;AACA,SAAKrH,WAAL,CAAiBqQ,iBAAjB,CAAmC3N,SAAnC,EAA8CG,SAA9C,CAAyDnD,IAAD,IAAc;AACpE,WAAK8B,gBAAL,GAAwB,IAAIxC,wEAAJ,CAAyCU,IAAzC,CAAxB;AACD,KAFD;AAGA,SAAKkQ,WAAL,CAAiBU,kBAAjB,CAAoC5N,SAApC,EAA8CmD,QAA9C,EAAwDhD,SAAxD,CAAmE0N,gBAAD,IAA0B;AAC1F,WAAKC,iBAAL,GAAyB,IAAIxR,wEAAJ,CAAoCuR,gBAApC,CAAzB;AACD,KAFD;AAID;;AACDE,cAAY,CAACT,OAAD,EAAQ;AAClB,QAAIU,KAAK,GAAEV,OAAO,CAACW,aAAR,GAAsB,GAAtB,GAA0BX,OAAO,CAACY,aAA7C;AACC,SAAKhB,WAAL,CAAiBiB,oBAAjB,CAAsCH,KAAtC,EAA6C7N,SAA7C,CAAwDiO,KAAD,IAAa;AACpE,UAAIpK,OAAO,GAAEoK,KAAb;AACA,WAAKC,QAAL,CAAcrK,OAAd,EAAuBsJ,OAAO,CAACY,aAA/B;AACD,KAHC;AAIH;;AACDI,qBAAmB,CAACC,MAAD,EAAY;AAC9B,QAAIC,aAAa,GAAGC,MAAM,CAACC,IAAP,CAAYH,MAAZ,CAApB;AACA,QAAII,GAAG,GAAGH,aAAa,CAAChO,MAAxB;AACA,QAAIoO,KAAK,GAAG,IAAIC,UAAJ,CAAeF,GAAf,CAAZ;;AACA,SAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,GAApB,EAAyBG,CAAC,EAA1B,EAA8B;AAC5BF,WAAK,CAACE,CAAD,CAAL,GAAWN,aAAa,CAACO,UAAd,CAAyBD,CAAzB,CAAX;AACD;;AACD,WAAOF,KAAK,CAACI,MAAb;AACD;;AACDX,UAAQ,CAACD,KAAD,EAAapR,IAAb,EAAyB;AAC/B,QAAI4R,KAAK,GAAE,KAAKN,mBAAL,CAAyBF,KAAzB,CAAX;AACA,QAAIa,IAAI,GAAG,IAAIC,IAAJ,CAAS,CAACN,KAAD,CAAT,EAAkB;AAAEO,UAAI,EAAE;AAAR,KAAlB,CAAX;AACApJ,IAAAA,uCAAM,CAACkJ,IAAD,EAAOjS,IAAP,CAAN;AACD;;AACCoS,YAAU,CAACC,aAAD,EAAqB;AAE7B,YAAOA,aAAP;AAEE,WAAK,YAAL;AACE,aAAKC,OAAL,GAAe,KAAf;AACA;;AACF,WAAK,YAAL;AACE,aAAKC,QAAL,GAAgB,KAAhB;AACA;;AACA,WAAK,YAAL;AACE,aAAKC,QAAL,GAAgB,KAAhB;AACA;AAVN;AAaD;;AACDC,WAAS,CAACJ,aAAD,EAAqB;AAE5B,YAAOA,aAAP;AAEE,WAAK,YAAL;AACE,aAAKC,OAAL,GAAe,IAAf;AACA;;AACF,WAAK,YAAL;AACE,aAAKC,QAAL,GAAgB,IAAhB;AACA;;AACA,WAAK,YAAL;AACE,aAAKC,QAAL,GAAgB,IAAhB;AACA;AAVN;AAaD;;AACDE,SAAO;AACL,UAAM1S,IAAI,GAAG2S,QAAQ,CAACC,cAAT,CAAwB,kBAAxB,CAAb;AACA5S,QAAI,CAAC6S,MAAL,GAAY,KAAZ;AACA/J,IAAAA,kDAAW,CAAC9I,IAAD,CAAX,CAAkB8S,IAAlB,CAAuBC,MAAM,IAAG;AAE9B,YAAMC,QAAQ,GAAG,GAAjB;AACA,YAAMC,UAAU,GAAG,GAAnB;AACA,YAAMC,SAAS,GAAGH,MAAM,CAAC7H,MAAP,GAAgB8H,QAAhB,GAA2BD,MAAM,CAAC5H,KAApD;AACA,YAAMgI,UAAU,GAAGD,SAAnB;AAEA,YAAME,cAAc,GAAGL,MAAM,CAACM,SAAP,CAAiB,WAAjB,CAAvB;AACA,YAAMC,GAAG,GAAG,IAAIzK,0CAAJ,CAAU,GAAV,EAAe,IAAf,EAAqB,IAArB,CAAZ,CAR8B,CAQU;;AACxC7I,UAAI,CAAC6S,MAAL,GAAY,IAAZ;AACA,UAAIU,QAAQ,GAAG,EAAf;AAGAD,SAAG,CAACE,QAAJ,CAAaJ,cAAb,EAA6B,KAA7B,EAAoC,CAApC,EAAuCG,QAAvC,EAAiDP,QAAjD,EAA2DE,SAA3D;AACAI,SAAG,CAACG,IAAJ,CAAS,iBAAT,EAd8B,CAcD;AAC9B,KAfD;AAiBH;;AACC3M,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf;AACD;;AA3H2B;;;mBAAjB6E,mBAAiB/L,+DAAAA,CAMRP,sEANQ,GAMOO,+DAAAA,CAAAA,wDAAAA,GAAAA,+DAAAA,CAAAA,mEAAAA,GAAAA,+DAAAA,CAAAA,gEAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,oDAAAA;AAAA;;;QANxB+L;AAAiBlD;AAAAqH;AAAAC;AAAAC;AAAAC;AAAA;AG3mB9BrQ,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAaA,MAAAA,0DAAAA;AAC3DA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AAEAA,MAAAA,wDAAAA;AAKFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAqBA,MAAAA,wDAAAA;AAAA;AAAA,SAAsB,QAAtB,EAAsB;AAAA,eAAY+I,eAAW,YAAX,CAAZ;AAAoC,OAA1D,EAAsB,QAAtB,EAAsB;AAAA,eAAgDA,cAAU,YAAV,CAAhD;AAAuE,OAA7F;AACnB/I,MAAAA,4DAAAA;AACEA,MAAAA,oDAAAA;AACFA,MAAAA,0DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAEIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAOA,MAAAA,oDAAAA;AAA8CA,MAAAA,0DAAAA;AACrDA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAAOA,MAAAA,oDAAAA;AAAkCA,MAAAA,0DAAAA;AACzCA,MAAAA,0DAAAA;AACVA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AAEIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAOA,MAAAA,oDAAAA;AAAuDA,MAAAA,0DAAAA;AAC9DA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAAOA,MAAAA,oDAAAA;AAAyCA,MAAAA,0DAAAA;AAChDA,MAAAA,0DAAAA;AACVA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAEEA,MAAAA,4DAAAA;AAAOA,MAAAA,oDAAAA;AAAoDA,MAAAA,0DAAAA;AAC7DA,MAAAA,0DAAAA;AAEAA,MAAAA,uDAAAA;AAIJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AACAA,MAAAA,uDAAAA;AAEFA,MAAAA,0DAAAA;AAEJA,MAAAA,0DAAAA;AACAA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AAAqBA,MAAAA,wDAAAA;AAAA;AAAA,SAAuB,QAAvB,EAAuB;AAAA,eAAY+I,eAAW,YAAX,CAAZ;AAAoC,OAA3D,EAAuB,QAAvB,EAAuB;AAAA,eAAgDA,cAAU,YAAV,CAAhD;AAAuE,OAA9F;AACnB/I,MAAAA,4DAAAA;AACEA,MAAAA,oDAAAA;AACFA,MAAAA,0DAAAA;AAEEA,MAAAA,4DAAAA;AACEA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAEFA,MAAAA,mEAAAA;AAEAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,0DAAAA;AAGJA,MAAAA,0DAAAA;AACAA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AAAqBA,MAAAA,wDAAAA;AAAA;AAAA,SAAuB,QAAvB,EAAuB;AAAA,eAAY+I,eAAW,YAAX,CAAZ;AAAoC,OAA3D,EAAuB,QAAvB,EAAuB;AAAA,eAAgDA,cAAU,YAAV,CAAhD;AAAuE,OAA9F;AACnB/I,MAAAA,4DAAAA;AACEA,MAAAA,oDAAAA;AACFA,MAAAA,0DAAAA;AAEEA,MAAAA,4DAAAA;AAIEA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAGAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,0DAAAA;AAEFA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AACAA,MAAAA,uDAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACDA,MAAAA,4DAAAA;AACCA,MAAAA,uDAAAA;AACDA,MAAAA,4DAAAA;AACCA,MAAAA,uDAAAA;AACDA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACCA,MAAAA,oDAAAA;AACFA,MAAAA,0DAAAA;AACCA,MAAAA,0DAAAA;AACGA,MAAAA,4DAAAA;AACEA,MAAAA,oDAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAOA,MAAAA,oDAAAA;AAA8CA,MAAAA,0DAAAA;AACrDA,MAAAA,4DAAAA;AAAOA,MAAAA,oDAAAA;AAAiCA,MAAAA,0DAAAA;AAE1CA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AACFA,MAAAA,4DAAAA;AAAOA,MAAAA,oDAAAA;AAAoDA,MAAAA,0DAAAA;AAC3DA,MAAAA,4DAAAA;AAAOA,MAAAA,oDAAAA;AAAuCA,MAAAA,0DAAAA;AAE5CA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACFA,MAAAA,4DAAAA;AAAOA,MAAAA,oDAAAA;AAAkDA,MAAAA,0DAAAA;AACzDA,MAAAA,0DAAAA;AACEA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AAAwDA,MAAAA,oDAAAA;AAAoBA,MAAAA,0DAAAA;AAC5EA,MAAAA,4DAAAA;AACEA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAGAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,0DAAAA;AACAA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AAAwDA,MAAAA,oDAAAA;AAAeA,MAAAA,0DAAAA;AACvEA,MAAAA,4DAAAA;AAIEA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAGAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;;;;AA5UsBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAOCA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAQAA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AAGIA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AAOJA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AAGIA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AAMJA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AAiBAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAKAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAmD+BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACYA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAQ3CA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAKAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAsD+BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACYA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AA2BrDA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AACAA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AAKJA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AACAA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AAIAA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AAIYA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AA+C+BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACYA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAM3CA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAsD+BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACYA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;AH8Z1D,MAAOuM,iBAAP,CAAwB;AAe5BpM,cAA4CC,IAA5C,EAAsEE,SAAtE,EAAsGC,WAAtG,EAAwIC,MAAxI,EAA2KG,SAA3K,EACUD,WADV,EACqC;AADO;AAA0B;AAAgC;AAAkC;AAAmC;AACjK;AARV,oBAAoB,EAApB;AACA,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AACA,uBAA2B;AACzB2C,QAAE,EAAE,CADqB;AAClB6J,kBAAY,EAAE,EADI;AACAjB,iBAAW,EAAE,EADb;AACiBkB,iBAAW,EAAE,EAD9B;AACkCX,aAAO,EAAE,CAD3C;AAC8CY,YAAM,EAAE,EADtD;AAC0DpB,cAAQ,EAAE,IADpE;AAEzBxK,eAAS,EAAE,CAFc;AAEX6L,iBAAW,EAAE,IAAIC,IAAJ,EAFF;AAEcC,eAAS,EAAE,CAFzB;AAE4BC,iBAAW,EAAE,IAAIF,IAAJ,EAFzC;AAEqDG,eAAS,EAAE,CAFhE;AAEmEC,gBAAU,EAAE;AAF/E,KAA3B;AAOA,uBAAc,6BAAd;AAF0C;;AAM1C7L,UAAQ;AACN,SAAKiM,QAAL;AACA,SAAKgG,QAAL,GAAgB,KAAKvT,WAAL,CAAiBoB,KAAjB,CAAuB;AACrCiI,iBAAW,EAAE,CAAC,KAAKxJ,IAAL,CAAUwJ,WAAX,EAAyB,CAAC9J,gEAAD,EAAqB8N,yBAAyB,EAA9C,CAAzB,CADwB;AAErC/D,WAAK,EAAE,CAAC,KAAKzJ,IAAL,CAAUyJ,KAAX,EAAkB/J,gEAAlB,CAF8B;AAGrCgK,kBAAY,EAAE,CAAC,KAAK1J,IAAL,CAAU0J,YAAX,EAAyBhK,gEAAzB,CAHuB;AAIrCiK,cAAQ,EAAE,CAAC,KAAK3J,IAAL,CAAU2J,QAAX,EAAqB,CAACjK,gEAAD,EAAqB8N,yBAAyB,EAA9C,CAArB;AAJ2B,KAAvB,CAAhB;AAMD;;AACDE,UAAQ;AACN,SAAKpN,WAAL,CAAiBoN,QAAjB,GAA4BvK,SAA5B,CAAuCnD,IAAD,IAAc;AAClD,WAAKmP,QAAL,GAAgBnP,IAAhB;AACD,KAFD;AAGD;;AACD2T,eAAa,CAACtO,KAAD,EAAuB;AAClC,SAAKuO,YAAL,GAAoB;AAClBjR,WAAK,EAAE0C,KAAK,CAAC1C,KADK;AAElBkR,UAAI,EAAExO,KAAK,CAACE,MAAN,CAAauO;AAFD,KAApB;AAID;;AACDC,sBAAoB;AAClB,QAAItM,MAAM,GAAGC,cAAc,CAACC,OAAf,CAAuB,QAAvB,CAAb;;AACA,QAAI,CAAC,KAAK+L,QAAL,CAAc/Q,KAAd,CAAoB6G,WAAzB,EAAsC;AACpC,WAAKlJ,WAAL,CAAiByG,cAAjB,CAAgC,2BAAhC,EAA6D,MAA7D,EAAqE,MAArE,EAA6E,cAA7E;AACA;AACD;;AAED,QAAI,KAAK2M,QAAL,CAAc5L,GAAd,CAAkB,UAAlB,EAA8BuH,QAA9B,CAAuC,kBAAvC,KAA6D,IAAjE,EACE;AACE,WAAK/O,WAAL,CAAiByG,cAAjB,CAAgC,uCAAhC,EAAyE,MAAzE,EAAiF,MAAjF,EAAyF,cAAzF;AACA;AACD;;AAGH,QAAI,CAAC,KAAK2M,QAAL,CAAc/Q,KAAd,CAAoB8G,KAAzB,EAAgC;AAC9B,WAAKnJ,WAAL,CAAiByG,cAAjB,CAAgC,qBAAhC,EAAuD,MAAvD,EAA+D,MAA/D,EAAuE,cAAvE;AACA;AACD;;AACD,QAAI,KAAK2M,QAAL,CAAc/Q,KAAd,CAAoB+G,YAApB,IAAoC,IAApC,IAA4C,KAAKgK,QAAL,CAAc/Q,KAAd,CAAoBoK,WAApB,IAAmC,EAAnF,EAAuF;AACrF,WAAKzM,WAAL,CAAiByG,cAAjB,CAAgC,iCAAhC,EAAmE,MAAnE,EAA2E,MAA3E,EAAmF,cAAnF;AACA;AACD;;AAED,QAAG,KAAK2M,QAAL,CAAc/Q,KAAd,CAAoB+G,YAApB,IAAkC,CAArC,EAAuC;AACrC,WAAKpJ,WAAL,CAAiByG,cAAjB,CAAgC,mDAAhC,EAAoF,MAApF,EAA2F,MAA3F,EAAmG,cAAnG;AACA;AACD;;AACD,QAAI,KAAK2M,QAAL,CAAc/Q,KAAd,CAAoBgH,QAApB,IAAgC,IAAhC,IAAwC,KAAK+J,QAAL,CAAc/Q,KAAd,CAAoBgH,QAApB,IAAgC,EAA5E,EAAgF;AAC9E,WAAKrJ,WAAL,CAAiByG,cAAjB,CAAgC,uBAAhC,EAAyD,MAAzD,EAAiE,MAAjE,EAAyE,cAAzE;AACA;AACD;;AACD,QAAI,KAAK2M,QAAL,CAAc5L,GAAd,CAAkB,aAAlB,EAAiCuH,QAAjC,CAA0C,kBAA1C,KAAgE,IAApE,EACE;AACE,WAAK/O,WAAL,CAAiByG,cAAjB,CAAgC,2CAAhC,EAA6E,MAA7E,EAAqF,MAArF,EAA6F,cAA7F;AACA;AACD;;AACD;AAEE,SAAKzG,WAAL,CAAiBqP,wBAAjB,CAA0C,KAAK+D,QAAL,CAAc/Q,KAAd,CAAoB+G,YAA9D,EAA4EvG,SAA5E,CAAuFnD,IAAD,IAAY;AAChG,UAAGiI,MAAM,CAACjI,IAAD,CAAN,GAAa,CAAb,IAAmBiI,MAAM,CAAC,KAAKjI,IAAL,CAAU0J,YAAX,CAAN,IAAkC,KAAKgK,QAAL,CAAc/Q,KAAd,CAAoB+G,YAA5E,EAA0F;AACxF,aAAKpJ,WAAL,CAAiByG,cAAjB,CAAgC,+BAAhC,EAAiE,MAAjE,EAAyE,MAAzE,EAAiF,cAAjF;AACA;AACD,OAHD,MAII;AAEV,YAAI,KAAK2M,QAAL,CAAc9L,KAAlB,EAAyB;AACvB,cAAI,KAAK5H,IAAL,IAAa,IAAjB,EAAuB;AACrB,iBAAK4P,WAAL,CAAiB3M,EAAjB,GAAsB,KAAKjD,IAAL,CAAUuJ,EAAhC;AACA,iBAAKqG,WAAL,CAAiB9C,YAAjB,GAAgC,KAAK4G,QAAL,CAAc/Q,KAAd,CAAoBgH,QAApD;AACA,iBAAKiG,WAAL,CAAiB/D,WAAjB,GAA+B,KAAK6H,QAAL,CAAc/Q,KAAd,CAAoB6G,WAAnD;AACA,iBAAKoG,WAAL,CAAiB7C,WAAjB,GAA+BhF,MAAM,CAAC,KAAK2L,QAAL,CAAc/Q,KAAd,CAAoB+G,YAArB,CAArC;AACA,iBAAKkG,WAAL,CAAiBxD,OAAjB,GAA2B,KAAKsH,QAAL,CAAc/Q,KAAd,CAAoB8G,KAA/C;AACA,iBAAKmG,WAAL,CAAiB5C,MAAjB,GAA0B,KAAKhN,IAAL,CAAU4J,aAApC;AACA,iBAAKgG,WAAL,CAAiBtC,UAAjB,GAA8B,EAA9B;AACA,iBAAKsC,WAAL,CAAiBhE,QAAjB,GAA4B,IAA5B;AACA,iBAAKgE,WAAL,CAAiBxO,SAAjB,GAA6B6G,MAAM,CAACR,MAAD,CAAnC;AACA,iBAAKmI,WAAL,CAAiB3C,WAAjB,GAA+B,IAAIC,IAAJ,EAA/B;AACA,iBAAK0C,WAAL,CAAiBzC,SAAjB,GAA6BlF,MAAM,CAACR,MAAD,CAAnC;AACA,iBAAKmI,WAAL,CAAiBxC,WAAjB,GAA+B,IAAIF,IAAJ,EAA/B;AACA,iBAAK0C,WAAL,CAAiBvC,SAAjB,GAA6B,CAA7B;AACAhK,mBAAO,CAACC,GAAR,CAAY,KAAKsM,WAAjB;AACA,iBAAKtP,WAAL,CAAiBuP,WAAjB,CAA6B,KAAKD,WAAlC,EAA+CzM,SAA/C,CAAyD;AACvDgF,kBAAI,EAAGC,GAAD,IAAa;AACjB,qBAAK9H,WAAL,CAAiByG,cAAjB,CAAgC,sBAAhC,EAAwD,MAAxD,EAAgE,MAAhE,EAAwE,cAAxE;AACA,qBAAKxG,SAAL,CAAeuG,KAAf,CAAqB,IAArB;AACD,eAJsD;AAKvDuB,mBAAK,EAAGC,GAAD,IAAa;AAClB,qBAAKhI,WAAL,CAAiByG,cAAjB,CAAgCuB,GAAG,CAACD,KAApC,EAA2C,MAA3C,EAAmD,MAAnD,EAA2D,cAA3D;AACD;AAPsD,aAAzD;AASD;AACF;AACM;AACF,KAnCD;AAuCL;;AACDvB,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf;AACD;;AACDL,SAAO;AACL,UAAMoF,WAAW,GAAG,KAAK6H,QAAL,CAAc5L,GAAd,CAAkB,aAAlB,EAAiCnF,KAArD,CADK,CAGL;;AACA,SAAK+Q,QAAL,CAAcvP,KAAd,GAJK,CAML;;AACA,SAAKuP,QAAL,CAAc5P,UAAd,CAAyB;AAAE0F,iBAAW,EAAEqC;AAAf,KAAzB;AACD;;AAnI2B;;;mBAAjBM,mBAAiBvM,+DAAAA,CAeRP,sEAfQ,GAeOO,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,wDAAAA,GAAAA,+DAAAA,CAAAA,oFAAAA,GAAAA,+DAAAA,CAAAA,mEAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA;AAAA;;;QAfxBuM;AAAiB1D;AAAAqH;AAAAC;AAAAC;AAAAC;AAAA;AIjvB9BrQ,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAaA,MAAAA,0DAAAA;AAC3DA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA2CA,MAAAA,oDAAAA;AAAYA,MAAAA,0DAAAA;AACvDA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA2CA,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAChDA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA2CA,MAAAA,oDAAAA;AAAiBA,MAAAA,0DAAAA;AAC5DA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA2CA,MAAAA,oDAAAA;AAAQA,MAAAA,0DAAAA;AACnDA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,uDAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA4CA,MAAAA,wDAAAA;AAAA,eAAS+I,0BAAT;AAA+B,OAA/B;AAC7B/I,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AACrBA,MAAAA,4DAAAA;AAA2DA,MAAAA,wDAAAA;AAAA,eAAS+I,aAAT;AAAkB,OAAlB;AAAoB/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AACtFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;;;;AA9CMA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAcoEA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;AJi2B1E;;AACA;;AAQM,MAAOoU,oBAAP,CAA2B;AAU/BjU,cAA4CC,IAA5C,EAA4EG,WAA5E,EAA8GC,MAA9G,EAAiJG,SAAjJ,EAA+M4J,MAA/M,EAA0O7J,WAA1O,EAAqQ;AAAzN;AAAgC;AAAkC;AAAmC;AAA8D;AAA2B;AAJ1O,iBAAgB,CAAhB;AACA,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AAIA,4BAA6B,CAAC,WAAD,EAAa,YAAb,EAA2B,YAA3B,EAAyC,YAAzC,EAAsD,WAAtD,EAAmE,aAAnE,EAAkF,MAAlF,EAA0F,QAA1F,EAAoG,OAApG,EAA6G,SAA7G,EAAwH,cAAxH,EAAwI,YAAxI,EAAqJ,QAArJ,EAA+J,MAA/J,EAAuK,QAAvK,CAA7B;AAEA,2BAAiC;AAACI,mBAAa,EAAC,CAAf;AAAiBC,cAAQ,EAAC,CAA1B;AAA6BC,qBAAe,EAAE,EAA9C;AAAkDC,uBAAiB,EAAC,EAApE;AAAuEC,sBAAgB,EAAC,CAAxF;AAA0FC,aAAO,EAAE,CAAnG;AAAqGC,kBAAY,EAAC,CAAlH;AAAoHC,gBAAU,EAAE,CAAhI;AAAkIC,eAAS,EAAC,EAA5I;AAA+IC,iBAAW,EAAC,EAA3J;AAA8JC,eAAS,EAAC;AAAxK,KAAjC;AAJ0Q;;AAM1QK,UAAQ;AACN;AACA,QAAI,KAAKzB,IAAL,IAAa,IAAb,IAAqB,KAAKA,IAAL,IAAa0B,SAAtC,EAAiD;AAC/C,YAAMuS,GAAG,GAAG,KAAKjU,IAAL,CAAUuI,qBAAtB;AACAlF,aAAO,CAACC,GAAR,CAAY2Q,GAAG,CAAC,IAAD,CAAf;AACA,WAAKpS,aAAL,CAAmBoS,GAAG,CAAC,IAAD,CAAtB;AACD;;AACD,SAAKC,oBAAL,GAA4B,KAAK/T,WAAL,CAAiBoB,KAAjB,CAAuB;AAEjDmP,gBAAU,EAAE,CAAC,IAAD,EAAO,IAAP,CAFqC;AAGjDyD,gBAAU,EAAE,CAAC,IAAD,EAAOzU,gEAAP,CAHqC;AAIjD0U,gBAAU,EAAE,CAAC,IAAD,EAAO1U,gEAAP,CAJqC;AAKjDwC,UAAI,EAAE,CAAC,IAAD,EAAO,CAACxC,gEAAD,CAAP,CAL2C;AAMjDyC,YAAM,EAAE,CAAC,IAAD,EAAO,CAACzC,gEAAD,CAAP,CANyC;AAOjDwB,eAAS,EAAE,CAAC,IAAD,EAAOxB,gEAAP,CAPsC;AAQjD0C,WAAK,EAAE,CAAC,IAAD,EAAO1C,gEAAP,CAR0C;AASjDqB,aAAO,EAAE,CAAC,IAAD,EAAO,CAACrB,gEAAD,CAAP,CATwC;AAUjD4C,kBAAY,EAAE,CAAC,IAAD,EAAO5C,gEAAP,CAVmC;AAWjD2C,gBAAU,EAAE,CAAC,IAAD,EAAO3C,gEAAP;AAXqC,KAAvB,CAA5B;AAaD;;AACD2U,eAAa;AACX,UAAMJ,GAAG,GAAG,KAAKjU,IAAL,CAAUuI,qBAAtB;AACA,UAAMhI,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiBtH,yEAAjB,EAAwC;AACxDE,UAAI,EAAE;AAAE4B,iBAAS,EAAEqS,GAAG,CAAC,IAAD;AAAhB,OADkD;AAExD/I,YAAM,EAAE,KAFgD;AAGxDC,WAAK,EAAE;AAHiD,KAAxC,CAAlB;AAMA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;;;AACzC,UAAI,aAAM,SAAN,UAAM,WAAN,GAAM,MAAN,SAAM,CAAErL,IAAR,MAAY,IAAZ,IAAYsU,aAAZ,GAAY,MAAZ,GAAYA,GAAE9Q,MAAd,IAAuB,CAA3B,EAA8B;AAC5B;AACA,YAAI,KAAKxD,IAAL,IAAa,IAAb,IAAqB,KAAKA,IAAL,IAAa0B,SAAtC,EAAiD;AAC/C,gBAAMuS,GAAG,GAAG,KAAKjU,IAAL,CAAUuI,qBAAtB;AACAlF,iBAAO,CAACC,GAAR,CAAY2Q,GAAG,CAAC,IAAD,CAAf;AACA,eAAKpS,aAAL,CAAmBoS,GAAG,CAAC,IAAD,CAAtB;AACD;AACF;AACF,KATD;AAWD;;AAGDpS,eAAa,CAACmB,SAAD,EAAU;AACrB,SAAK1C,WAAL,CAAiBqQ,iBAAjB,CAAmC3N,SAAnC,EAA8CG,SAA9C,CAAyDnD,IAAD,IAAc;AACpEqD,aAAO,CAACC,GAAR,CAAYtD,IAAZ;AACA;;AACAqD,aAAO,CAACC,GAAR,CAAYtD,IAAZ;AACA,WAAK8B,gBAAL,GAAwB,IAAIxC,wEAAJ,CAAyCU,IAAzC,CAAxB;AACD,KALD;AAMD;;AAEDuU,cAAY,CAACC,SAAD,EAAU;AAEpB,SAAK3M,eAAL,CAAqBnH,aAArB,GAAoC8T,SAAS,CAACvR,EAA9C,CAFoB,CAGtB;;AAEA,SAAK3C,WAAL,CAAiBmU,iBAAjB,CAAmC,KAAK5M,eAAxC,EAAyD1E,SAAzD,CAAmE;AACjEgF,UAAI,EAAGC,GAAD,IAAa;AACjB,YAAG,KAAKpI,IAAL,IAAY,IAAZ,IAAoB,KAAKA,IAAL,IAAY0B,SAAnC,EACE;AACE,gBAAMuS,GAAG,GAAG,KAAKjU,IAAL,CAAUuI,qBAAtB;AACAlF,iBAAO,CAACC,GAAR,CAAY2Q,GAAG,CAAC,IAAD,CAAf;AACA,eAAKpS,aAAL,CAAmBoS,GAAG,CAAC,IAAD,CAAtB;AAGD;;AACD,aAAK3T,WAAL,CAAiByG,cAAjB,CAAgC,uBAAhC,EAAyD,MAAzD,EAAiE,MAAjE,EAAyE,cAAzE;AAED,OAZ8D;AAa/DsB,WAAK,EAAGC,GAAD,IAAa;AAClB,aAAKhI,WAAL,CAAiByG,cAAjB,CAAgCuB,GAAG,CAACD,KAApC,EAA2C,MAA3C,EAAmD,MAAnD,EAA2D,cAA3D;AACD;AAf8D,KAAnE;AAmBE;;;;;;;;;;AAYD;;AACD+H,eAAa;AACX,SAAKtO,gBAAL,GAAwB,IAAIxC,wEAAJ,CAAyCO,gBAAzC,CAAxB;AACD;;AACD6U,cAAY,CAACrP,KAAD,EAAW;AACrB,UAAM4M,IAAI,GAAG5M,KAAK,CAACyF,MAAN,CAAa6J,KAAb,CAAmB,CAAnB,CAAb;;AACA,QAAI1C,IAAJ,EAAU;AACR,WAAK7B,aAAL;AACD;AACF;;AACDwE,oBAAkB,CAAC5U,IAAD,EAAU;AAC1B;AACJqD,WAAO,CAACC,GAAR,CAAYtD,IAAZ;AACI,UAAMO,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiByN,sBAAjB,EAAyC;AACzD7U,UAAI,EAAE;AAAEuJ,UAAE,EAAEvJ,IAAI,CAACiD,EAAX;AAAcuN,iBAAS,EAACxQ,IAAI,CAACyQ,SAA7B;AAAwCC,kBAAU,EAAE1Q,IAAI,CAACqO,UAAzD;AAAqE8F,kBAAU,EAAEnU,IAAI,CAAC8U,UAAtF;AAAkGV,kBAAU,EAAEpU,IAAI,CAAC+U,UAAnH;AAA+H7T,iBAAS,EAAElB,IAAI,CAACgV,SAA/I;AAA0J9S,YAAI,EAAElC,IAAI,CAACiV,IAArK;AAA2K9S,cAAM,EAAEnC,IAAI,CAACmC,MAAxL;AAAgMC,aAAK,EAAEpC,IAAI,CAACkV,KAA5M;AAAmNnU,eAAO,EAAEf,IAAI,CAACmV,OAAjO;AAA0O7S,oBAAY,EAAEtC,IAAI,CAACoV,YAA7P;AAA2Q/S,kBAAU,EAAErC,IAAI,CAACqV;AAA5R,OADmD;AAEzDnK,YAAM,EAAE,KAFiD;AAGzDC,WAAK,EAAE;AAHkD,KAAzC,CAAlB;AAMA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAK+E,aAAL;AAED,KAHD;AAID;;AACDkF,gBAAc,CAACtV,IAAD,EAAU;AAEtB,QAAIsM,OAAO,CAAC,sDAAD,CAAX,EAAqE;AACnE,WAAK8D,aAAL;AACD;AACF;;AACDtJ,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf,CAAqB;AAAEzB,WAAK,EAAE,IAAT;AAAerF,UAAI,EAAE,KAAK8B;AAA1B,KAArB;AACD;;AACD2E,SAAO;AACL,SAAKyN,oBAAL,CAA0B/P,KAA1B;AACD;;AA3I8B;;;mBAApB6P,sBAAoBpU,+DAAAA,CAUXP,sEAVW,GAUIO,+DAAAA,CAAAA,wDAAAA,GAAAA,+DAAAA,CAAAA,oFAAAA,GAAAA,+DAAAA,CAAAA,mEAAAA,GAAAA,+DAAAA,CAAAA,gEAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA;AAAA;;;QAVxBoU;AAAoBvL;AAAAqH;AAAAC;AAAAC;AAAAC;AAAA;AKh4BjCrQ,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAqBA,MAAAA,0DAAAA;AACnEA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,uDAAAA;AAEIA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAmDA,MAAAA,wDAAAA;AAAA,eAAS+I,mBAAT;AAAwB,OAAxB;AAA4B/I,MAAAA,oDAAAA;AAAwBA,MAAAA,0DAAAA;AAC3GA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAGAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAKFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AASFA,MAAAA,mEAAAA;AAIAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AACAA,MAAAA,uDAAAA;AAEFA,MAAAA,0DAAAA;;;;AA9FiBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAoF+BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACYA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;;ALi7B1D,MAAOiV,sBAAP,CAA6B;AAqBjC9U,cAA4CC,IAA5C,EAA4EE,SAA5E,EAA4GC,WAA5G,EAA8IC,MAA9I,EAAiLC,UAAjL,EAAwNE,SAAxN,EAA6Q;AAAjO;AAAgC;AAAgC;AAAkC;AAAmC;AAAuC;AApBxN;;;;AAIA,sBAAwB,EAAxB;AAEA,2BAA0B,EAA1B;AAEA,mCAA0B,IAAIZ,wDAAJ,CAAgB,EAAhB,CAA1B;AACA,sCAA6B,IAAIA,wDAAJ,EAA7B;AACA,gCAAuB,EAAvB;AACA,iCAAgDJ,yCAAE,CAAC,KAAK8B,UAAN,CAAlD;AACA,4BAAkB,IAAI1B,wDAAJ,CAAgB,EAAhB,CAAlB;AACA,+BAAqB,IAAIA,wDAAJ,CAAgB,EAAhB,CAArB;AAKA,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AAGA,uBAAc,6BAAd;AAFkR;;AAGlR8B,UAAQ;AAEN,SAAKI,aAAL,CAAmB,CAAnB;AACA,UAAM0T,YAAY,GAAG,IAAIrI,IAAJ,CAAS,KAAKlN,IAAL,CAAUmC,MAAnB,CAArB;AACA,SAAKqT,cAAL,GAAsB,KAAKrV,WAAL,CAAiBoB,KAAjB,CAAuB;AAC3CmP,gBAAU,EAAE,CAAC,KAAK1Q,IAAL,CAAU0Q,UAAX,EAAuBhR,gEAAvB,CAD+B;;AAE3C;;AAEEuC,6BAAuB,EAAE,CAAC,IAAD,EAAMvC,gEAAN,CAJgB;AAK3C8Q,eAAS,EAAE,CAAC,KAAKxQ,IAAL,CAAUwQ,SAAX,EAAsB9Q,gEAAtB,CALgC;AAM3CwB,eAAS,EAAE,CAAC,KAAKlB,IAAL,CAAUkB,SAAX,EAAsBxB,gEAAtB,CANgC;AAO3CwC,UAAI,EAAE,CAAC,KAAKlC,IAAL,CAAUkC,IAAX,EAAiBxC,gEAAjB,CAPqC;AAQ3CyC,YAAM,EAAE,CAACoT,YAAD,EAAe7V,gEAAf,CARmC;AAS3C0C,WAAK,EAAE,CAAC,KAAKpC,IAAL,CAAUoC,KAAX,EAAkB1C,gEAAlB,CAToC;AAU3CqB,aAAO,EAAE,CAAC,KAAKf,IAAL,CAAUe,OAAX,EAAoBrB,gEAApB,CAVkC;AAW3C+V,eAAS,EAAE,CAAC,KAAKzV,IAAL,CAAUsC,YAAX,EAAyB5C,gEAAzB,CAXgC;AAY3C2C,gBAAU,EAAE,CAAC,KAAKrC,IAAL,CAAUqC,UAAX,EAAuB3C,gEAAvB;AAZ+B,KAAvB,CAAtB;AAeD;AAGH;;;AACAmC,eAAa,CAACoB,EAAD,EAAG;AACd,SAAK5C,UAAL,CAAgB+D,aAAhB,CAA8BnB,EAA9B,EAAkCE,SAAlC,CAA6CnD,IAAD,IAAY;AACtDqD,aAAO,CAACC,GAAR,CAAYtD,IAAZ;AACA,WAAKqB,UAAL,GAAkBrB,IAAlB,EACC,KAAKqE,qBAAL,GAA6B,KAAKC,0BAAL,CAAgC7B,YAAhC,CACjCC,IADiC,CAEhCjD,0DAAS,CAAS,EAAT,CAFuB,EAGhCD,oDAAG,CAAC+E,IAAI,IAAI,KAAKC,YAAL,CAAkBD,IAAlB,CAAT,CAH6B,CAD9B;;AAMD,YAAMlB,OAAO,CAACC,GAAR,CAAY,kBAAZ,CAAN;AACF,KATC;AAaD;;AAGOkB,cAAY,CAACD,IAAD,EAAa;AAC/B,UAAME,WAAW,GAAGF,IAAI,CAACG,WAAL,EAApB,CAD+B,CAE/B;;AACA,SAAKC,uBAAL;AACA,SAAKC,gBAAL,GAAuB,IAAIjF,wDAAJ,CAAgB,EAAhB,CAAvB;AACA,SAAKkF,mBAAL,GAA0B,IAAIlF,wDAAJ,CAAgB,EAAhB,CAA1B;AACA,SAAKsC,uBAAL,CAA6B6B,UAA7B,CAAwC,KAAKgB,oBAA7C;AACA,SAAK7C,uBAAL,CAA6BU,KAA7B,CAAmCc,OAAnC,CAA2CsB,IAAI,IAAE;AAC/C,WAAKH,gBAAL,CAAsBjC,KAAtB,CAA4BkB,IAA5B,CAAiCkB,IAAI,CAAC9B,EAAtC;AACA,WAAK4B,mBAAL,CAAyBlC,KAAzB,CAA+BkB,IAA/B,CAAoCkB,IAAI,CAACR,IAAzC;AACD,KAHD;AAIA,QAAIS,YAAY,GAAG,KAAK3D,UAAL,CAAgB4D,MAAhB,CAAuBC,MAAM,IAAIA,MAAM,CAACX,IAAP,CAAYG,WAAZ,GAA0BS,QAA1B,CAAmCV,WAAW,CAACC,WAAZ,EAAnC,CAAjC,CAAnB;AACA,WAAOM,YAAP;AACD;;AAEDI,uBAAqB,CAACC,KAAD,EAAM;AACzB,QAAIA,KAAK,CAACC,WAAN,IAAqBD,KAAK,CAACE,MAAN,CAAaC,QAAb,IAAyB,KAAlD,EAAyD;AACvD,UAAIC,KAAK,GAAG,KAAKX,oBAAL,CAA0BlB,OAA1B,CAAkCyB,KAAK,CAACE,MAAN,CAAa5C,KAA/C,CAAZ;AACA,WAAKmC,oBAAL,CAA0BY,MAA1B,CAAiCD,KAAjC,EAAwC,CAAxC;AACD;AACF;;AACDE,oBAAkB,CAACjC,CAAD,EAAE;AAClB;AACA,SAAKY,0BAAL,CAAgCR,UAAhC,CAA2C,EAA3C,EAFkB,CAGlB;;AACA,QAAIJ,CAAC,IAAI,IAAT,EAAe;AACb,WAAKkC,mBAAL,CAAyBC,aAAzB,CAAuCC,KAAvC;AACD;AACF;;AAEDC,mBAAiB,CAACV,KAAD,EAAM;AACrBA,SAAK,CAACW,eAAN;AACA,SAAK1B,0BAAL,CAAgCR,UAAhC,CAA2C,EAA3C;AACD;;AAEDa,yBAAuB;AACrBtB,WAAO,CAACC,GAAR,CAAY,yBAAZ,EAAuC,KAAKrB,uBAAL,CAA6BU,KAApE;;AACA,QAAI,KAAKV,uBAAL,CAA6BU,KAA7B,IAAsC,KAAKV,uBAAL,CAA6BU,KAA7B,CAAmCa,MAAnC,GAA4C,CAAtF,EAAyF;AACvF,WAAKvB,uBAAL,CAA6BU,KAA7B,CAAmCc,OAAnC,CAA4CC,CAAD,IAAM;AAC/C,YAAI,KAAKoB,oBAAL,CAA0BlB,OAA1B,CAAkCF,CAAlC,KAAwC,CAAC,CAA7C,EAAgD;AAC9C,eAAKoB,oBAAL,CAA0BjB,IAA1B,CAA+BH,CAA/B;AACD;AACF,OAJD;AAKD;AACF;;AACDuC,iBAAe;AAGb,SAAKrB,gBAAL,GAAuB,IAAIjF,wDAAJ,CAAgB,EAAhB,CAAvB;AACA,SAAKkF,mBAAL,GAA0B,IAAIlF,wDAAJ,CAAgB,EAAhB,CAA1B;;AAGD,QAAG,KAAKmF,oBAAL,CAA0BtB,MAA1B,IAAmC,CAAtC,EAAwC;AACvC,WAAKsB,oBAAL,CAA0BrB,OAA1B,CAAkCsB,IAAI,IAAE;AACtC,aAAKH,gBAAL,CAAsBjC,KAAtB,CAA4BkB,IAA5B,CAAiCkB,IAAI,CAAC9B,EAAtC;AACA,aAAK4B,mBAAL,CAAyBlC,KAAzB,CAA+BkB,IAA/B,CAAoCkB,IAAI,CAACR,IAAzC;AACD,OAHD;AAIA;AACD;;;;AAGA,SAAKK,gBAAL,CAAsBjC,KAAtB,CAA4BkB,IAA5B,CAAiC,KAAK2R,cAAL,CAAoBtP,QAApB,CAA6BjE,uBAA7B,CAAqDU,KAArD,CAA2DwD,QAA5F;AACA,SAAKtB,mBAAL,CAAyBlC,KAAzB,CAA+BkB,IAA/B,CAAoC,KAAK2R,cAAL,CAAoBtP,QAApB,CAA6BjE,uBAA7B,CAAqDU,KAArD,CAA2D4B,IAA/F;AAGC,SAAKiR,cAAL,CAAoB7S,KAApB,CAA0ByD,aAA1B,GAA0C,KAAKxB,gBAAL,CAAsBjC,KAAhE;AACAU,WAAO,CAACC,GAAR,CAAY,KAAKkS,cAAL,CAAoB7S,KAApB,CAA0ByD,aAAtC;AAED;;AAEDC,wBAAsB,CAACpD,EAAD,EAAW;AAC/B,WAAO,KAAK2B,gBAAL,CAAsBjC,KAAtB,CAA4B2D,IAA5B,CAAiCvB,IAAI,IAAEA,IAAI,KAAK9B,EAAhD,CAAP;AACD;;AACDsD,2BAAyB,CAAC5D,KAAD,EAAc;AACrC,WAAO,KAAKkC,mBAAL,CAAyBlC,KAAzB,CAA+B2D,IAA/B,CAAoCvB,IAAI,IAAEA,IAAI,KAAKpC,KAAnD,CAAP;AACD;AACD;;;AACA6D,aAAW,CAACnB,KAAD,EAAqB;AAC9BA,SAAK,CAACW,eAAN;AACD;;AAQCS,SAAO;AACL,SAAK+O,cAAL,CAAoBrR,KAApB;AACD;;AAED2C,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf;AACD;;AAIDU,UAAQ;AAEN,QAAI,KAAKgO,cAAL,CAAoB5N,KAAxB,EAA+B;AAC7B,UAAI,KAAK5H,IAAL,IAAa,IAAjB,EAAuB;AAErB,aAAKE,SAAL,CAAekH,IAAf,CAAoB,qCAApB,EAA2D,OAA3D,EAAoE;AAClEE,4BAAkB,EAAE,KAAKA,kBADyC;AAElED,0BAAgB,EAAE,KAAKA,gBAF2C;AAGlEH,kBAAQ,EAAE,IAAI;AAHoD,SAApE;;AAKA,aAAK3G,SAAL,CAAeuG,KAAf;AACD;AACF;AACF;;AA9KgC;;;mBAAtB+N,wBAAsBjV,+DAAAA,CAqBbP,sEArBa,GAqBEO,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,wDAAAA,GAAAA,+DAAAA,CAAAA,oFAAAA,GAAAA,+DAAAA,CAAAA,4EAAAA,GAAAA,+DAAAA,CAAAA,mEAAAA;AAAA;;;QArBxBiV;AAAsBpM;AAAAC;AAAA;;;;;;;;;;;;;;;;;AMzhCnC9I,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAkCA,MAAAA,0DAAAA;AAChFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAOIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAASA,MAAAA,0DAAAA;AACpBA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAgBA,MAAAA,0DAAAA;AAC3BA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AAEGA,MAAAA,4DAAAA;AACCA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAaA,MAAAA,0DAAAA;AACvDA,MAAAA,4DAAAA;AAA6DA,MAAAA,wDAAAA;AAAA,eAAsB+I,8BAAtB;AAAgD,OAAhD;AACvD/I,MAAAA,4DAAAA;AACEA,MAAAA,oDAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAwCA,MAAAA,wDAAAA;AAAA,eAAW+I,uBAAX;AAA8B,OAA9B;AAAxC/I,MAAAA,0DAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,wDAAAA;;AAGAA,MAAAA,wDAAAA;;AAGJA,MAAAA,0DAAAA;AACNA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AAMJA,MAAAA,0DAAAA;AAQNA,MAAAA,0DAAAA;AACEA,MAAAA,4DAAAA;AAEIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAiBA,MAAAA,0DAAAA;AAC5BA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AASAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAWA,MAAAA,0DAAAA;AACtBA,MAAAA,uDAAAA;AAEFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AACAA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AAGAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AACjBA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AAEEA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAASA,MAAAA,0DAAAA;AACpBA,MAAAA,uDAAAA;AAEJA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AAEJA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAYA,MAAAA,0DAAAA;AACvBA,MAAAA,uDAAAA;AAEJA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAcA,MAAAA,0DAAAA;AACzBA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AAEAA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAUA,MAAAA,0DAAAA;AACrBA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AAOJA,MAAAA,0DAAAA;AAGFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAAmDA,MAAAA,wDAAAA;AAAA,eAAS+I,aAAT;AAAkB,OAAlB;AAAqB/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC/EA,MAAAA,0DAAAA;AACFA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAoDA,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;;;;;;;;AAvJMA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AA4BYA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AAK2IA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACrGA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAKrBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,SAAAA,yDAAAA;AAGoGA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,YAAAA,yDAAAA;AAyC9EA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAIVA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;;AN6nCzC,MAAO6L,aAAP,CAAoB;AAmBxB1L,cAA4CC,IAA5C,EAAsEE,SAAtE,EAAsGC,WAAtG,EAAuII,SAAvI,EAAqM4J,MAArM,EAAgO7J,WAAhO,EAAqQoV,WAArQ,EAAgS;AAApP;AAA0B;AAAgC;AAAiC;AAA8D;AAA2B;AAAqC;AAbrQ,qBAAsB,EAAtB;AACA,+BAAsB,EAAtB;AACA,2BAAoC,EAApC;AACA,kCAAyB,IAAI/V,wDAAJ,EAAzB;AACA,mCAA0B,IAAIA,wDAAJ,EAA1B;AAEA,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AAEA,uBAA2B;AACzBsD,QAAE,EAAE,CADqB;AAClB0S,mBAAa,EAAE,CADG;AACAC,aAAO,EAAE,EADT;AACaC,uBAAiB,EAAE,EADhC;AACoC7I,YAAM,EAAE,EAD5C;AACgDpB,cAAQ,EAAE,IAD1D;AAEzBxK,eAAS,EAAE,CAFc;AAEX6L,iBAAW,EAAE,IAAIC,IAAJ,EAFF;AAEcC,eAAS,EAAE,CAFzB;AAE4BC,iBAAW,EAAE,IAAIF,IAAJ;AAFzC,KAA3B;AAWA,4BAA6B,CAAC,YAAD,EAAe,MAAf,CAA7B;AANE,SAAKK,IAAL,GAAY,KAAKpN,WAAL,CAAiBoB,KAAjB,CAAuB;AACjCuU,aAAO,EAAE,CAAC,iBAAD,CADwB,CACH;AAC9B;;AAFiC,KAAvB,CAAZ;AAID;;AAKDrU,UAAQ;AACN,SAAKE,YAAL,CAAkB,KAAK3B,IAAL,CAAUuJ,EAA5B,EAAgC,CAAhC;AAEA,SAAKgE,IAAL,GAAY,KAAKpN,WAAL,CAAiBoB,KAAjB,CAAuB;AACjCgI,QAAE,EAAE,CAD6B;AAEjCxH,6BAAuB,EAAE,CAAC,IAAD,EAAOrC,gEAAP,CAFQ;AAGjCsC,4BAAsB,EAAE,CAAC,IAAD,EAAOtC,gEAAP,CAHS;AAIjCoW,aAAO,EAAE,CAAC,IAAD,EAAO,IAAP,CAJwB;AAKjCC,uBAAiB,EAAE,CAAC,IAAD,EAAO,IAAP,CALc;AAMjCC,oBAAc,EAAE,CAAC,UAAD,EAAa,IAAb;AANiB,KAAvB,CAAZ;AASA,SAAKC,UAAL,GAAkB,KAAK9V,WAAL,CAAiBoB,KAAjB,CAAuB;AACvCgI,QAAE,EAAE,CADmC;AAEvCxH,6BAAuB,EAAE,CAAC,IAAD,EAAOrC,gEAAP,CAFc;AAGvCsC,4BAAsB,EAAE,CAAC,IAAD,EAAOtC,gEAAP,CAHe;AAIvCoW,aAAO,EAAE,CAAC,IAAD,EAAO,IAAP,CAJ8B;AAKvCC,uBAAiB,EAAE,CAAC,IAAD,EAAO,IAAP,CALoB;AAMvCC,oBAAc,EAAE,CAAC,UAAD,EAAa,IAAb;AANuB,KAAvB,CAAlB;AASD;;AACDrU,cAAY,CAACqB,SAAD,EAAYC,EAAZ,EAAc;AAExB,SAAK3C,WAAL,CAAiB4C,gBAAjB,CAAkCF,SAAlC,EAA6CC,EAA7C,EAAiDE,SAAjD,CAA4DnD,IAAD,IAAc;AACvE,WAAKkW,SAAL,GAAiBlW,IAAjB;AACD,KAFD;AAGD;;AAEDiE,iBAAe,CAACC,KAAD,EAAc;AAC3B,SAAKiS,aAAL,GAAqBjS,KAArB;AACA,SAAKqJ,IAAL,CAAUrH,QAAV,CAAmB,yBAAnB,EAA8CpC,UAA9C,CAAyDI,KAAzD;AACA,SAAKF,eAAL,GAAuB,EAAvB;AAEA,SAAKhC,sBAAL,CAA4BmC,KAA5B;AAEA,SAAK7D,WAAL,CAAiByD,iBAAjB,CAAmCG,KAAnC,EAA0C,CAA1C,EAA6Cf,SAA7C,CAAwDnD,IAAD,IAAc;AACnE,WAAKgE,eAAL,GAAuBhE,IAAvB;AACD,KAFD;AAGD;;AACDoW,wBAAsB,CAACT,aAAD,EAAsB;AAC1C,SAAKD,WAAL,CAAiBW,UAAjB,CAA4BV,aAA5B,EAA2C,CAA3C,EAA8CxS,SAA9C,CAAyDnD,IAAD,IAAc;;;AACpE,UAAIA,IAAI,CAACwD,MAAL,GAAc,CAAlB,EAAqB;AACnB,aAAK+J,IAAL,GAAY,KAAKpN,WAAL,CAAiBoB,KAAjB,CAAuB;AACjCgI,YAAE,EAAE,CAAC,UAAI,CAAC,CAAD,CAAJ,MAAO,IAAP,IAAO+K,aAAP,GAAO,MAAP,GAAOA,GAAErR,EAAV,CAD6B;AAEjClB,iCAAuB,EAAE,CAAC,KAAKoU,aAAN,EAAqBzW,gEAArB,CAFQ;AAGjCsC,gCAAsB,EAAE,CAAChC,IAAI,CAAC,CAAD,CAAJ,CAAQ2V,aAAT,EAAwBjW,gEAAxB,CAHS;AAIjCoW,iBAAO,EAAE,CAAC9V,IAAI,CAAC,CAAD,CAAJ,CAAQ4V,OAAT,EAAkB,IAAlB,CAJwB;AAKjCG,2BAAiB,EAAE,CAAC/V,IAAI,CAAC,CAAD,CAAJ,CAAQ6V,iBAAT,EAA4B,IAA5B,CALc;AAMjCG,wBAAc,EAAE,CAAC,UAAD,EAAa,IAAb;AANiB,SAAvB,CAAZ;AAQD,OATD,MAUK;AACH,aAAKzI,IAAL,CAAUrH,QAAV,CAAmB,SAAnB,EAA8B/B,KAA9B;AACD;AACF,KAdD;AAeD;;AACDmS,8BAA4B,CAACX,aAAD,EAAsB;AAChD,SAAKD,WAAL,CAAiBW,UAAjB,CAA4BV,aAA5B,EAA2C,CAA3C,EAA8CxS,SAA9C,CAAyDnD,IAAD,IAAc;;;AACpE,UAAIA,IAAI,CAACwD,MAAL,GAAc,CAAlB,EAAqB;AACnB,aAAKyS,UAAL,GAAkB,KAAK9V,WAAL,CAAiBoB,KAAjB,CAAuB;AACvCgI,YAAE,EAAE,CAAC,UAAI,CAAC,CAAD,CAAJ,MAAO,IAAP,IAAO+K,aAAP,GAAO,MAAP,GAAOA,GAAErR,EAAV,CADmC;AAEvClB,iCAAuB,EAAE,CAAC,KAAKoU,aAAN,EAAqBzW,gEAArB,CAFc;AAGvCsC,gCAAsB,EAAE,CAAChC,IAAI,CAAC,CAAD,CAAJ,CAAQ2V,aAAT,EAAwBjW,gEAAxB,CAHe;AAIvCoW,iBAAO,EAAE,CAAC9V,IAAI,CAAC,CAAD,CAAJ,CAAQ4V,OAAT,EAAkB,IAAlB,CAJ8B;AAKvCG,2BAAiB,EAAE,CAAC/V,IAAI,CAAC,CAAD,CAAJ,CAAQ6V,iBAAT,EAA4B,IAA5B,CALoB;AAMvCG,wBAAc,EAAE,CAAChW,IAAI,CAAC,CAAD,CAAJ,CAAQuW,aAAR,CAAsB7R,WAAtB,EAAD,EAAsC,IAAtC;AANuB,SAAvB,CAAlB;AAQD,OATD,MAUK;AACH,aAAKuR,UAAL,CAAgB/P,QAAhB,CAAyB,SAAzB,EAAoC/B,KAApC;AACD;AACF,KAdD;AAeD;;AACDsC,SAAO;AACL,SAAK8G,IAAL,CAAUpJ,KAAV;AACA,SAAK8R,UAAL,CAAgB/P,QAAhB,CAAyB,SAAzB,EAAoCpC,UAApC,CAA+C,IAA/C;AACD;;AACDgD,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf;AACD;;AACD0P,aAAW;AACT,QAAI/O,MAAM,GAAGC,cAAc,CAACC,OAAf,CAAuB,QAAvB,CAAb;AACA,SAAK4F,IAAL,CAAUrH,QAAV,CAAmB,wBAAnB,EAA6CpC,UAA7C,CAAwD,KAAK9B,sBAAL,CAA4BW,KAApF;;AACA,QAAI,KAAKsT,UAAL,CAAgB/P,QAAhB,CAAyB,IAAzB,EAA+BvD,KAA/B,IAAwC,CAA5C,EAA+C;AAC7C,UAAI,CAAC,KAAKsT,UAAL,CAAgBtT,KAAhB,CAAsBqT,cAA3B,EAA2C;AACzC,aAAK1V,WAAL,CAAiByG,cAAjB,CAAgC,0BAAhC,EAA4D,MAA5D,EAAoE,MAApE,EAA4E,cAA5E;AACA;AACD;;AACD,UAAI,CAAC,KAAKkP,UAAL,CAAgBtT,KAAhB,CAAsBmT,OAA3B,EAAoC;AAClC,aAAKxV,WAAL,CAAiByG,cAAjB,CAAgC,sBAAhC,EAAwD,MAAxD,EAAgE,MAAhE,EAAwE,cAAxE;AACA;AACD;;AACD,UAAI,CAAC,KAAKkP,UAAL,CAAgBtT,KAAhB,CAAsBX,sBAA3B,EAAmD;AACjD,aAAK1B,WAAL,CAAiByG,cAAjB,CAAgC,4BAAhC,EAA8D,MAA9D,EAAsE,MAAtE,EAA8E,cAA9E;AACA;AACD;;AACD,UAAI,KAAKkP,UAAL,CAAgBrO,KAApB,EAA2B;AACzB,aAAK6O,WAAL,CAAiBxT,EAAjB,GAAsB,KAAKgT,UAAL,CAAgB/P,QAAhB,CAAyB,IAAzB,EAA+BvD,KAArD,EACE,KAAK8T,WAAL,CAAiBd,aAAjB,GAAiC,KAAKM,UAAL,CAAgB/P,QAAhB,CAAyB,wBAAzB,EAAmDvD,KADtF;AAEA,aAAK8T,WAAL,CAAiBb,OAAjB,GAA2B,KAAKK,UAAL,CAAgB/P,QAAhB,CAAyB,SAAzB,EAAoCvD,KAA/D;AACA,aAAK8T,WAAL,CAAiBZ,iBAAjB,GAAqC,KAAKI,UAAL,CAAgB/P,QAAhB,CAAyB,mBAAzB,EAA8CvD,KAAnF;AACA,aAAK8T,WAAL,CAAiBzJ,MAAjB,GAA0B,KAAKiJ,UAAL,CAAgB/P,QAAhB,CAAyB,gBAAzB,EAA2CvD,KAArE;AACA,aAAK8T,WAAL,CAAiBtJ,SAAjB,GAA6BlF,MAAM,CAACR,MAAD,CAAnC;AACA,aAAKiO,WAAL,CAAiBgB,WAAjB,CAA6B,KAAKD,WAAlC,EAA+CtT,SAA/C,CAAyD;AACvDgF,cAAI,EAAGC,GAAD,IAAa;AACjB,iBAAK9H,WAAL,CAAiByG,cAAjB,CAAgC,aAAa,KAAK0P,WAAL,CAAiBzJ,MAA9B,GAAuC,eAAvE,EAAwF,MAAxF,EAAgG,MAAhG,EAAwG,cAAxG;AACA,iBAAKzM,SAAL,CAAeuG,KAAf,CAAqB,IAArB;AACD,WAJsD;AAKvDuB,eAAK,EAAGC,GAAD,IAAa;AAClB,iBAAKhI,WAAL,CAAiByG,cAAjB,CAAgCuB,GAAG,CAACD,KAApC,EAA2C,MAA3C,EAAmD,MAAnD,EAA2D,cAA3D;AACD;AAPsD,SAAzD;AASA,aAAK9H,SAAL,CAAeuG,KAAf;AACD;AACF,KA/BD,MAgCK;AACH,UAAI,CAAC,KAAKyG,IAAL,CAAU5K,KAAV,CAAgBZ,uBAArB,EAA8C;AAC5C,aAAKzB,WAAL,CAAiByG,cAAjB,CAAgC,sBAAhC,EAAwD,MAAxD,EAAgE,MAAhE,EAAwE,cAAxE;AACA;AACD;;AACD,UAAI,CAAC,KAAKwG,IAAL,CAAU5K,KAAV,CAAgBX,sBAArB,EAA6C;AAC3C,aAAK1B,WAAL,CAAiByG,cAAjB,CAAgC,4BAAhC,EAA8D,MAA9D,EAAsE,MAAtE,EAA8E,cAA9E;AACA;AACD;;AACD,UAAI,CAAC,KAAKwG,IAAL,CAAU5K,KAAV,CAAgBqT,cAArB,EAAqC;AACnC,aAAK1V,WAAL,CAAiByG,cAAjB,CAAgC,0BAAhC,EAA4D,MAA5D,EAAoE,MAApE,EAA4E,cAA5E;AACA;AACD;;AACD,UAAI,CAAC,KAAKwG,IAAL,CAAU5K,KAAV,CAAgBmT,OAArB,EAA8B;AAC5B,aAAKxV,WAAL,CAAiByG,cAAjB,CAAgC,sBAAhC,EAAwD,MAAxD,EAAgE,MAAhE,EAAwE,cAAxE;AACA;AACD;;AAED,UAAI,KAAKwG,IAAL,CAAU3F,KAAd,EAAqB;AACnB,aAAK6O,WAAL,CAAiBxT,EAAjB,GAAsB,KAAKsK,IAAL,CAAUrH,QAAV,CAAmB,IAAnB,EAAyBvD,KAA/C,EACE,KAAK8T,WAAL,CAAiBd,aAAjB,GAAiC,KAAKpI,IAAL,CAAUrH,QAAV,CAAmB,wBAAnB,EAA6CvD,KADhF;AAEA,aAAK8T,WAAL,CAAiBb,OAAjB,GAA2B,KAAKrI,IAAL,CAAUrH,QAAV,CAAmB,SAAnB,EAA8BvD,KAAzD;AACA,aAAK8T,WAAL,CAAiBZ,iBAAjB,GAAqC,KAAKtI,IAAL,CAAUrH,QAAV,CAAmB,mBAAnB,EAAwCvD,KAA7E;AACA,aAAK8T,WAAL,CAAiBzJ,MAAjB,GAA0B,KAAKO,IAAL,CAAUrH,QAAV,CAAmB,gBAAnB,EAAqCvD,KAA/D;AACA,aAAK8T,WAAL,CAAiBrV,SAAjB,GAA6B6G,MAAM,CAACR,MAAD,CAAnC;AACA,aAAKiO,WAAL,CAAiBgB,WAAjB,CAA6B,KAAKD,WAAlC,EAA+CtT,SAA/C,CAAyD;AACvDgF,cAAI,EAAGC,GAAD,IAAa;AACjB,iBAAK9H,WAAL,CAAiByG,cAAjB,CAAgC,aAAa,KAAK0P,WAAL,CAAiBzJ,MAA9B,GAAuC,eAAvE,EAAwF,MAAxF,EAAgG,MAAhG,EAAwG,cAAxG;AACA,iBAAKzM,SAAL,CAAeuG,KAAf,CAAqB,IAArB;AACD,WAJsD;AAKvDuB,eAAK,EAAGC,GAAD,IAAa;AAClB,iBAAKhI,WAAL,CAAiByG,cAAjB,CAAgCuB,GAAG,CAACD,KAApC,EAA2C,MAA3C,EAAmD,MAAnD,EAA2D,cAA3D;AACD;AAPsD,SAAzD;AASA,aAAK9H,SAAL,CAAeuG,KAAf;AACD;AACF;AAGF;;AAxLuB;;;mBAAb2E,eAAa7L,+DAAAA,CAmBJP,sEAnBI,GAmBWO,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,wDAAAA,GAAAA,+DAAAA,CAAAA,mEAAAA,GAAAA,+DAAAA,CAAAA,gEAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA;AAAA;;;QAnBxB6L;AAAahD;AAAAqH;AAAAC;AAAAC;AAAAC;AAAA;AO7tC1BrQ,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAeA,MAAAA,0DAAAA;AAC7DA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AAOAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAEEA,MAAAA,wDAAAA;AAEAA,MAAAA,4DAAAA;AAAyBA,MAAAA,wDAAAA;AAAA,eAAU+I,iBAAV;AAAuB,OAAvB;AAEvB/I,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AACjBA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAYA,MAAAA,0DAAAA;AACvBA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAcA,MAAAA,0DAAAA;AACzBA,MAAAA,uDAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAmDA,MAAAA,wDAAAA;AAAA,eAAS+I,aAAT;AAAkB,OAAlB;AAAoB/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC9EA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAmDA,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AAC3DA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAIFA,MAAAA,0DAAAA;AAGFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,4DAAAA;AAA+BA,MAAAA,wDAAAA;AAAA,eAAU+I,iBAAV;AAAuB,OAAvB;AAE7B/I,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AACjBA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAYA,MAAAA,0DAAAA;AACvBA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAGAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAcA,MAAAA,0DAAAA;AACzBA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA6DA,MAAAA,oDAAAA;AAAQA,MAAAA,0DAAAA;AACrEA,MAAAA,4DAAAA;AAA2DA,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AACnEA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AAEEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAcA,MAAAA,0DAAAA;AACzBA,MAAAA,uDAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AAEEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAgBA,MAAAA,0DAAAA;AAC3BA,MAAAA,uDAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAmDA,MAAAA,wDAAAA;AAAA,eAAS+I,aAAT;AAAkB,OAAlB;AAAoB/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC9EA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAmDA,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AAC3DA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAIFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;;;;AAzHYA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAMwDA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACUA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAQEA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACIA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAiCxEA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAMwDA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACUA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAQEA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACIA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;AP00C9E,SAAU+W,qBAAV,GAA+B;AACnC,SAAQC,OAAD,IAAsD;AAC3D,UAAMjU,KAAK,GAAGiU,OAAO,CAACjU,KAAtB,CAD2D,CAE3D;;AACA,UAAMkU,KAAK,GAAG,yCAAd;;AAEA,QAAIlU,KAAK,IAAI,CAACkU,KAAK,CAACC,IAAN,CAAWnU,KAAX,CAAd,EAAiC;AAC/B,aAAO;AAAEoU,oBAAY,EAAE;AAAhB,OAAP;AACD;;AACD,WAAO,IAAP,CAR2D,CAQ9C;AACd,GATD;AAUD;AAKK,SAAUC,oCAAV,GAA8C;AAClD,SAAQJ,OAAD,IAAsD;AAC3D,UAAMjU,KAAK,GAAGiU,OAAO,CAACjU,KAAtB,CAD2D,CAG3D;;AACA,UAAMsU,sBAAsB,GAAGtU,KAAK,IAAIA,KAAK,CAACoI,IAAN,GAAavH,MAAb,GAAsB,CAA9D,CAJ2D,CAM3D;;AACA,WAAOyT,sBAAsB,GAAG,IAAH,GAAU;AAAEC,uBAAiB,EAAE;AAArB,KAAvC;AACD,GARD;AASD;AAKK,SAAU1J,yBAAV,GAAmC;AACvC,SAAQoJ,OAAD,IAAsD;AAC3D,UAAMjU,KAAK,GAAGiU,OAAO,CAACjU,KAAtB,CAD2D,CAG3D;;AACA,UAAMwU,WAAW,GAAG,WAAWL,IAAX,CAAgBnU,KAAhB,CAApB,CAJ2D,CAM3D;;AACA,WAAOwU,WAAW,GAAG,IAAH,GAAU;AAAEC,sBAAgB,EAAE;AAApB,KAA5B;AACD,GARD;AASD;AA2BK,MAAO7G,kBAAP,CAAyB;AAe7BxQ,cAA4CC,IAA5C,EAA4EE,SAA5E,EAA4GE,MAA5G,EAA+IG,SAA/I,EACM8W,QADN,EACgC;AADY;AAAgC;AAAgC;AAAmC;AACzI;AAXN,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AAIA,uBAAmB,EAAnB;AACA,wBAAqB,KAArB;AAGA,4BAA6B,CAAC,QAAD,EAAW,cAAX,EAA0B,cAA1B,EAA0C,YAA1C,EAAuD,cAAvD,EAAwE,KAAxE,EAA+E,cAA/E,EAA+F,SAA/F,EAA0G,WAA1G,EAAuH,YAAvH,CAA7B;AAOA,uBAAc,6BAAd;AALqC;;AAMrC5V,UAAQ;AACP,SAAK6V,oCAAL;AACA;;AACDA,sCAAoC;AAClC,SAAKD,QAAL,CAAcC,oCAAd,CAAmD,KAAKtX,IAAL,CAAUuJ,EAA7D,EAAgE,CAAhE,EAAmEpG,SAAnE,CAA8EnD,IAAD,IAAY;;;AACvF;AACA,WAAKuX,QAAL,GAAgBvX,IAAhB;AACA,WAAKwX,YAAL,GAAoB,WAAI,CAACvS,MAAL,CAAYwS,CAAC,IAAIA,CAAC,CAACC,UAAF,IAAgB,IAAjC,OAAsC,IAAtC,IAAsCpD,aAAtC,GAAsC,MAAtC,GAAsCA,GAAE9Q,MAAxC,IAAgD,CAAhD,GAAmD,IAAnD,GAAwD,KAA5E;AACA,UAAI,KAAKgU,YAAT,EAAuB,KAAKhP,gBAAL,GAAuB,CAAC,QAAD,EAAU,cAAV,EAAyB,cAAzB,EAAyC,cAAzC,EAAyD,YAAzD,EAAsE,cAAtE,EAAuF,KAAvF,EAA8F,cAA9F,EAA8G,SAA9G,EAAyH,WAAzH,EAAsI,YAAtI,EAAmJ,aAAnJ,EAAiK,eAAjK,CAAvB;AACvB,WAAKmP,sBAAL,GAA8B,IAAIrY,wEAAJ,CAAoDU,IAApD,CAA9B;AACA,WAAK4X,uBAAL,GAA+B,IAAItY,wEAAJ,CAAoDU,IAApD,CAA/B;AACA,WAAK2X,sBAAL,CAA4BpN,SAA5B,GAAuC,KAAKA,SAA5C;AAED,KATD;AAUD;;AACDsN,eAAa;;;AAEX,QAAIC,EAAE,GAAiB9O,uDAAA,CAA0B,KAAKiP,KAAL,CAAWpS,aAArC,CAAvB;AACA,QAAI,KAAK2R,YAAT,EACAM,EAAE,CAAC,OAAD,CAAF,GAAY,CAAC;AAAC3M,WAAK,EAAC;AAAP,KAAD,EAAY;AAACA,WAAK,EAAC;AAAP,KAAZ,EAAuB;AAACA,WAAK,EAAC;AAAP,KAAvB,EAAiC;AAACA,WAAK,EAAC;AAAP,KAAjC,EAA4C;AAACA,WAAK,EAAC;AAAP,KAA5C,EAAuD;AAACA,WAAK,EAAC;AAAP,KAAvD,EAAiE;AAACA,WAAK,EAAC;AAAP,KAAjE,EAA4E;AAACA,WAAK,EAAC;AAAP,KAA5E,EAAsF;AAACA,WAAK,EAAC;AAAP,KAAtF,EAAiG;AAACA,WAAK,EAAC;AAAP,KAAjG,EAA4G;AAACA,WAAK,EAAC;AAAP,KAA5G,EAAuH;AAACA,WAAK,EAAC;AAAP,KAAvH,EAAkI;AAACA,WAAK,EAAC;AAAP,KAAlI,EAA6I;AAACA,WAAK,EAAC;AAAP,KAA7I,CAAZ,CADA,KAGA2M,EAAE,CAAC,OAAD,CAAF,GAAY,CAAC;AAAC3M,WAAK,EAAC;AAAP,KAAD,EAAY;AAACA,WAAK,EAAC;AAAP,KAAZ,EAAuB;AAACA,WAAK,EAAC;AAAP,KAAvB,EAAkC;AAACA,WAAK,EAAC;AAAP,KAAlC,EAA6C;AAACA,WAAK,EAAC;AAAP,KAA7C,EAAuD;AAACA,WAAK,EAAC;AAAP,KAAvD,EAAkE;AAACA,WAAK,EAAC;AAAP,KAAlE,EAA4E;AAACA,WAAK,EAAC;AAAP,KAA5E,EAAuF;AAACA,WAAK,EAAC;AAAP,KAAvF,EAAkG;AAACA,WAAK,EAAC;AAAP,KAAlG,EAA6G;AAACA,WAAK,EAAC;AAAP,KAA7G,EAAwH;AAACA,WAAK,EAAC;AAAP,KAAxH,EAAmI;AAACA,WAAK,EAAC;AAAP,KAAnI,EAA8I;AAACA,WAAK,EAAC;AAAP,KAA9I,CAAZ;AACA,UAAM+M,EAAE,GAAkBlP,iDAAA,EAA1B;AAEAA,IAAAA,0DAAA,CAA6BkP,EAA7B,EAAiCJ,EAAjC,EAAqC,QAArC;AAEA;;AACA;AACA,QAAI,YAAK9X,IAAL,CAAUwQ,SAAV,MAAmB,IAAnB,IAAmB8D,aAAnB,GAAmB,MAAnB,GAAmBA,GAAE9Q,MAArB,KAA8B,WAAKxD,IAAL,CAAU0Q,UAAV,MAAoB,IAApB,IAAoB2H,aAApB,GAAoB,MAApB,GAAoBA,GAAE7U,MAApD,CAAD,GAA6D,GAAhE,EACAwF,4CAAA,CAAekP,EAAf,EAAmB,WAAW,KAAKlY,IAAL,CAAUwQ,SAAV,CAAoB+H,KAApB,CAA0B,CAA1B,EAA4B,EAA5B,CAAX,GAA8C,mBAA9C,GAAoE,KAAKvY,IAAL,CAAU0Q,UAAV,CAAqB6H,KAArB,CAA2B,CAA3B,EAA6B,EAA7B,CAApE,GAAuG,OAA1H,EADA,KAGAvP,4CAAA,CAAekP,EAAf,EAAkB,WAAS,KAAKlY,IAAL,CAAUwQ,SAAnB,GAA6B,mBAA7B,GAAkD,KAAKxQ,IAAL,CAAU0Q,UAA5D,GAAuE,OAAzF;AAED;;AAEDjK,SAAO;AACL,SAAK+R,wBAAL,CAA8BrU,KAA9B;AACD;;AACD2C,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf;AACD;;AACD2R,UAAQ,IAEP;;AACDC,aAAW;AAEX,SAAKb,aAAL;AACC;;AACDhN,aAAW,CAACxF,KAAD,EAAa;AACtB,UAAMZ,WAAW,GAAIY,KAAK,CAACyF,MAAN,CAAkCnI,KAAvD;AACA,SAAKgW,WAAL,GAAmBlU,WAAnB;AACApB,WAAO,CAACC,GAAR,CAAY,WAAS,KAAKqV,WAA1B;AACA,SAAKhB,sBAAL,CAA4B1S,MAA5B,GAAqCR,WAAW,CAACsG,IAAZ,GAAmBrG,WAAnB,EAArC;AACA,SAAKkT,uBAAL,CAA6B3S,MAA7B,GAAsCR,WAAW,CAACsG,IAAZ,GAAmBrG,WAAnB,EAAtC;AACD;;AACD8C,UAAQ;AACN,QAAI,KAAKgR,wBAAL,CAA8B5Q,KAAlC,EAAyC;AACvC,UAAI,KAAK5H,IAAL,IAAa,IAAjB,EAAuB;AACrB,aAAKE,SAAL,CAAekH,IAAf,CAAoB,qCAApB,EAA2D,OAA3D,EAAoE;AAClEE,4BAAkB,EAAE,KAAKA,kBADyC;AAElED,0BAAgB,EAAE,KAAKA,gBAF2C;AAGlEH,kBAAQ,EAAE,IAAI;AAHoD,SAApE;;AAKA,aAAK3G,SAAL,CAAeuG,KAAf;AACD;AACF;AACF;;AAxF4B;;;mBAAlByJ,oBAAkB3Q,+DAAAA,CAeTP,sEAfS,GAeMO,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,oFAAAA,GAAAA,+DAAAA,CAAAA,mEAAAA,GAAAA,+DAAAA,CAAAA,4EAAAA;AAAA;;;QAfxB2Q;AAAkB9H;AAAAC;AAAA;gEAOlBE,sEAAYA,EAAA;;;;;;;;;;;;;;;;AQz+CzBhJ,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAsBA,MAAAA,0DAAAA;AACpEA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAEEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAOA,MAAAA,0DAAAA;AAClBA,MAAAA,4DAAAA;AAAgBA,MAAAA,wDAAAA;AAAA,eAAS+I,uBAAT;AAA4B,OAA5B;AAAhB/I,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA8BA,MAAAA,wDAAAA;AAAA,eAAS+I,iBAAT;AAAsB,OAAtB;AAC5B/I,MAAAA,4DAAAA;AAA6BA,MAAAA,oDAAAA;AAAaA,MAAAA,0DAAAA;AAC5CA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAEEA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAEFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAIAA,MAAAA,wDAAAA;AAKFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAEEA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAEFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAKFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;;;;AA9HqBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAkD+BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACWA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAYbA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,oBAAAA,6DAAAA,UAAoC,UAApC,EAAoC,CAApC;AAG7BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAmD+BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACWA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5IU;AAIO;AAOnC;;;;;;;;;;;;;;;;;;;ICMjC,iFAA0I;IAAxC,kZAAuC;IAAC,uDAAe;IAAA,4DAAa;;;IAA3F,kFAAsB;IAAyC,0DAAe;IAAf,+EAAe;;;;IAWlK,iFAAyL;IAA5D,2aAA2D;IAAC,uDAAoB;IAAA,4DAAa;;;IAAlI,+FAAmC;IAA8D,0DAAoB;IAApB,oFAAoB;;;IAmE5M,0EAAsE;IACpE,6EAAoD;IAAA,iEAAM;IAAA,4DAAS;IACrE,4DAAM;;AD5DH,MAAM,gBAAgB;IAuB3B,YAA4C,IAAgB,EAAU,WAAwB,EAAU,UAA0B,EAAS,SAAyC,EAAS,WAA0B,EACjN,aAA+B,EAAU,QAAkB;QADrB,SAAI,GAAJ,IAAI,CAAY;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,eAAU,GAAV,UAAU,CAAgB;QAAS,cAAS,GAAT,SAAS,CAAgC;QAAS,gBAAW,GAAX,WAAW,CAAe;QACjN,kBAAa,GAAb,aAAa,CAAkB;QAAU,aAAQ,GAAR,QAAQ,CAAU;QAnBjE,UAAK,GAAW,CAAC,CAAC;QAClB,YAAO,GAAW,EAAE,CAAC;QAErB,4BAAuB,GAAG,IAAI,uDAAW,EAAE,CAAC;QAC5C,wBAAmB,GAAG,EAAE,CAAC;QACzB,qBAAgB,GAAa,EAAE,CAAC;QAChC,oBAAe,GAAkB,EAAE,CAAC;QACpC,2BAAsB,GAAG,IAAI,uDAAW,EAAE,CAAC;QAC3C,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QAKtD,0BAAqB,GAAU,IAAI,CAAC;QACpC,gBAAW,GAAoB,EAAC,EAAE,EAAC,CAAC,EAAC,aAAa,EAAC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,iBAAiB,EAAC,EAAE,EAAC,SAAS,EAAC,EAAE,EAAC,WAAW,EAAC,EAAE,EAAC,aAAa,EAAC,EAAE,EAAC,YAAY,EAAC,EAAE,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC,CAAC,EAAC,WAAW,EAAC,IAAI,IAAI,EAAE,EAAC,SAAS,EAAC,CAAC,EAAC,WAAW,EAAC,IAAI,IAAI,EAAE,EAAC;QAClP,kBAAa,GAAiB,EAAC,EAAE,EAAC,CAAC,EAAC,0BAA0B,EAAC,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,aAAa,EAAC,EAAE,EAAC,YAAY,EAAC,IAAI,IAAI,EAAE;YACnH,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,CAAC,EAAC,QAAQ,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,EAAC,EAAE,EAAC,6BAA6B,EAAE,IAAI,EAAC,8BAA8B,EAAC,IAAI,EAAC,qBAAqB,EAAC,IAAI,EAAC;QAM7K,mBAAc,GAAwB,EAAE,CAAC;QAEzC,gBAAW,GAAG,6BAA6B,CAAC;IANyB,CAAC;IAQtE,QAAQ;QACJ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAC3C,uBAAuB,EAAE,CAAC,IAAI,EAAC,+DAAmB,CAAC;YACnD,sBAAsB,EAAE,CAAC,IAAI,EAAC,+DAAmB,CAAC;YAClD,IAAI,EAAE,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,SAAS,EAAG,CAAC,IAAI,EAAE,CAAC,+DAAmB,CAAC,CAAC;YACzC,WAAW,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACxC,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,+DAAmB,EAAE,8DAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAClF,aAAa,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YAC1C,SAAS,EAAC,CAAC,IAAI,CAAC;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC;IAGtC,CAAC;IACD,YAAY,CAAC,SAAS,EAAC,EAAE;QACvB,IAAI,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,kCAAkC,CAAC,SAAS,EAAC,QAAQ,EAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YAC9F,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC1E,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAE1B,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,KAAK,EAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YAClF,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,gBAAgB,CAAC,KAAS;QAExB,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC;IAC7C,CAAC;IACD,YAAY,CAAC,KAAW;QACtB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC1B;IACH,CAAC;IACD,sBAAsB,CAAC,aAAqB;QAC1C,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,GAAO,EAAC,EAAE;YACnF,IAAG,GAAG,IAAI,IAAI,EACd;gBACE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACnE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBACvE,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;aACnD;QAEH,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,QAAQ;QACN,QAAQ,CAAC;QACT,IAAI,WAAW,GAAG,2DAAU,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,EAAC,YAAY,EAAC,OAAO,CAAC,CAAC;QACzF,IAAI,YAAY,GAAG,2DAAU,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAC5F,IAAI,CAAC,GAAG,2DAAU,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC;QAC3E,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,uBAAuB,EAAE;YACtD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YACvF,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,sBAAsB,EAAE;YACrD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,4BAA4B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YAC7F,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE;YACxC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,0BAA0B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YAC3F,OAAO;SACR;QACF;;;aAGK;QACJ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE;YAC1C,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,2BAA2B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YAC5F,OAAO;SACR;QACD,IAAK,YAAY,IAAI,2DAAU,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAC,YAAY,EAAC,OAAO,CAAC,EACtF;YACE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,uDAAuD,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YACxH,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE;YAC5C,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,6BAA6B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YAC9F,OAAO;SACR;QAGJ;;;;eAIO;QACJ,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,EAAE;YAChD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,4CAA4C,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YAC7G,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE;YAC5C,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,4BAA4B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YAC7F,OAAO;SACR;QACD,IAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,IAAE,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,IAAG,KAAK,EAAC;YAC/K,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,oCAAoC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YACtG,OAAO;SACR;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAC7B,IAAI,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,EAAE,GAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,WAAW,CAAC,aAAa,GAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,KAAK,CAAC;YACxF,IAAI,CAAC,WAAW,CAAC,SAAS,GAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;YACvE,IAAI,CAAC,WAAW,CAAC,WAAW,GAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,EAAC,YAAY,CAAC;gBAEjH,IAAI,CAAC,WAAW,CAAC,aAAa,GAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;YAC/E,IAAI,CAAC,WAAW,CAAC,YAAY,GAAE,IAAI,CAAC,YAAY;gBAChD,IAAI,CAAC,WAAW,CAAC,SAAS,GAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;YACvE,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YAG7C,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;YAChD,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;YAC5G,IAAI,CAAC,aAAa,CAAC,IAAI,GAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAC,IAAI,CAAC;YACjC,IAAI,CAAC,aAAa,CAAC,KAAK,GAAE,KAAK,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,0BAA0B,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,KAAK,CAAC;YACxG,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;YAC7C,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,UAAU,GAAC,CAAC,CAAC;YAChC,IAAI,CAAC,aAAa,CAAC,qBAAqB,GAAC,EAAE,CAAC;YAEzC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC;gBAC7D,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;oBACjB,IAAI,CAAC,aAAa,CAAC,6BAA6B,GAAG,GAAG,CAAC;oBACvD,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;wBAC3E,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAC,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;wBACtH,CAAC,CAAC,CAAC;wBACL,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,wBAAwB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;wBAC5F,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;wBAE3B,6BAA6B;oBAC9B,CAAC,CAAC,CAAC;gBAEN,CAAC;gBACD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;oBAClB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;gBAC1E,CAAC;aACF,CAAC,CAAC;SACJ;IAGH,CAAC;;gFAnMU,gBAAgB,kEAuBP,qEAAe;8GAvBxB,gBAAgB;QCtC7B,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,sEAAW;QAAA,4DAAK;QAC9D,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,0IAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACR,4DAAM;QACN,0EAAyD;QAAtB,wIAAU,cAAU,IAAC;QAEtD,yEAAiB;QACf,yEAAwC;QAGpC,qFAAgE;QAC9D,gFAA0C;QAAA,6EAAiB;QAAA,4DAAY;QACvE,iFAA+F;QAC7F,6HAAsK;QACxK,4DAAa;QACf,4DAAiB;QAIvB,4DAAM;QACJ,0EAAwC;QACtC,qFAAgE;QAC9D,gFAA0C;QAAA,+EAAmB;QAAA,4DAAY;QAC7E,kFAA+F;QAChG,6HAA0N;QAC3N,4DAAa;QACT,4DAAiB;QACnB,4DAAM;QACN,0EAAwC;QACtC,qFAAgE;QAC9D,6EAAW;QAAA,6EAAiB;QAAA,4DAAY;QACxC,wEAAgF;QAClF,4DAAiB;QACnB,4DAAM;QAER,4DAAM;QAGN,0EAAiB;QACf,0EAAwC;QACtC,qFAAiE;QAC3D,6EAAW;QAAA,+EAAmB;QAAA,4DAAY;QAC1C,wEAAqF;QAC3F,4DAAiB;QACnB,4DAAM;QAEN,0EAAwC;QACtC,qFAAgE;QAC9D,6EAAW;QAAA,sEAAU;QAAA,4DAAY;QACjC,wEAAqE;QACvE,4DAAiB;QACnB,4DAAM;QACN,0EAAwC;QACpC,sFAAgG;QAC9F,gFAA2C;QAAA,wEAAY;QAAA,4DAAY;QACnE,wEAAmG;QACnG,wFAA0E;QAC1E,uFAA0C;QAC5C,4DAAiB;QACrB,4DAAM;QACN,0EAAwC;QACtC,qFAAgE;QAC9D,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC,wEAA6E;QAC/E,4DAAiB;QACnB,4DAAM;QACR,4DAAM;QACN,0EAAiB;QAEf,2EAAyC;QACvC,6EAAgJ;QAA7H,gJAAU,wBAAoB,IAAC;QAAlD,4DAAgJ;QAChJ,iEAAI;QACJ,4EAA+B;QAAA,kFAAsB;QAAA,4DAAO;QAC5D,iEAAI;QAAA,iEAAI;QACV,4DAAM;QACR,4DAAM;QACN,iEAAI;QACJ,0EAAiB;QACf,2EAAyC;QACvC,oFAA+F;QAApC,uJAAU,4BAAwB,IAAC;QAAC,mJAAuF;QAAA,iEAAI;QAAC,iJAAoF;QAAA,iEAAI;QAAA,wKAA4G;QAAA,4DAAe;QAChZ,4DAAM;QACR,4DAAM;QAIN,iEAAI;QACJ,0EAAiB;QACf,sEAA+C;QAC/C,2EAAwC;QACtC,8EAAuE;QAApB,yIAAS,aAAS,IAAC;QAAC,iEAAK;QAAA,4DAAS;QACvF,4DAAM;QACN,+GAEM;QACR,4DAAM;QACR,4DAAO;;;QA3FD,0DAA4B;QAA5B,yFAA4B;QASyC,0DAAU;QAAV,gFAAU;QAWd,0DAAkB;QAAlB,wFAAkB;QA+BpC,2DAAyB;QAAzB,8EAAyB;QACnC,0DAAe;QAAf,oEAAe;QAmCb,2DAA2B;QAA3B,2FAA2B;;AD8IjE,SAAS,qBAAqB;IACnC,OAAO,CAAC,OAAwB,EAA2B,EAAE;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,0EAA0E;QAC1E,MAAM,KAAK,GAAG,yCAAyC,CAAC;QAExD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC/B,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC,CAAC,mCAAmC;IAClD,CAAC,CAAC;AACJ,CAAC;AAIM,SAAS,kCAAkC;IAChD,OAAO,CAAC,OAAwB,EAA2B,EAAE;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE5B,0DAA0D;QAC1D,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,mCAAmC;QAChF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAW,iCAAiC;QAE/E,uDAAuD;QACvD,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;SACnC;QAED,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;SACjC;QAED,OAAO,IAAI,CAAC,CAAE,mCAAmC;IACnD,CAAC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AE/QmF;AACvB;AACF;AAGS;AACd;AAIjB;;;;;;;;;;;;;ICCjC,6EAA2G;IAA1B,kUAAyB;IAAC,sEAAW;IAAA,4DAAS;;;IAU7H,yEAAgE;IAAA,qEAAU;IAAA,4DAAK;;;IAC/E,yEAAgH;IAAC,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAGtI,oEAAqE;;;IACrE,oEAA0F;;;IAG1F,yEAAgE;IAAA,4EAAiB;IAAA,4DAAK;;;IACtF,yEAA+G;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAItI,oEAAqE;;;IACrE,oEAA0F;;;IAG1F,yEAAgE;IAAC,8EAAkB;IAAA,4DAAK;;;IACxF,yEAA+D;IAAC,uDAAiB;IAAA,4DAAK;;;IAAtB,0DAAiB;IAAjB,4FAAiB;;;IAGjF,yEAAgE;IAAC,gFAAoB;IAAA,4DAAK;;;IAC1F,yEAA+D;IAAC,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,8FAAmB;;;IAGnF,yEAAgE;IAAA,qEAAU;IAAA,4DAAK;;;IAC/E,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAGtF,yEAAgE;IAAA,uEAAY;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAIxF,yEAAgE;IAAA,yEAAc;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,qGAA0B;;;IAG1F,yEAAgE;IAAC,iFAAqB;IAAA,4DAAK;;;;IAC3F,yEAA+D;IAAA,wEAA+D;IAAjC,kYAA+B;IAAG,uDAAyB;IAAA,4DAAI;IAAC,4DAAK;;;IAAnC,0DAAyB;IAAzB,oGAAyB;;;IAG1J,oEAAsF;;;IACtF,oEAA0F;;AD5BvF,IAAI,gBAAgB,GAAwB;IACjD,EAAE,EAAE,EAAE,CAAC,EAAC,YAAY,EAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE;IAC1O,EAAE,EAAE,EAAE,CAAC,EAAC,YAAY,EAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE;CACxO;AAOM,MAAM,mBAAmB;IAqC9B,YAA4C,IAAgB,EAAU,WAAwB,EAAS,MAAiB,EAAU,MAA0B,EAAS,SAA4C,EAAS,WAA0B;QAAxM,SAAI,GAAJ,IAAI,CAAY;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,WAAM,GAAN,MAAM,CAAoB;QAAS,cAAS,GAAT,SAAS,CAAmC;QAAS,gBAAW,GAAX,WAAW,CAAe;QA5BpP,mBAAc,GAAW,CAAC,CAAC;QAC3B,qBAAgB,GAAa,CAAC,WAAW,EAAC,cAAc,EAAC,YAAY,EAAE,eAAe,EAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;QAEpK,SAAI,GAAG,EAAE,CAAC;QAMV,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;IAkBkM,CAAC;IANzP,eAAe;QACb,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC/C,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACpD,CAAC;IAKD,QAAQ;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACxC,UAAU,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACvC,UAAU,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACvC,UAAU,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACvC,IAAI,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACjC,MAAM,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACnC,SAAS,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACtC,WAAW,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACxC,UAAU,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACvC,aAAa,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;SAC3C,CAAC;QAEF,IAAI,CAAC,iBAAiB,GAAG,IAAI,uEAAkB,CAAoB,gBAAgB,CAAC,CAAC;QAErF,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC;QAE9C,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO;QAEL,IAAI,QAAQ,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAE,QAAQ,CAAC,EAAC,eAAc,CAAC,OAAO,CAAC,UAAU,CAAC,EAAC,EAAC,CAAC;QAE3F,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,gBAAqB,EAAE,EAAE;YAChG,IAAI,CAAC,iBAAiB,GAAG,IAAI,uEAAkB,CAAoB,gBAAgB,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnE,CAAC;IACD,OAAO;QACL,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,aAAa;QACX,QAAQ,CAAC;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+DAAgB,EAAE;YACnD,IAAI,EAAE,EAAC,EAAE,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAC;YACvB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,YAAY;IAEZ,CAAC;IACD,YAAY,CAAC,OAAO;QAClB,IAAI,KAAK,GAAE,OAAO,CAAC,YAAY,GAAC,GAAG,GAAC,OAAO,CAAC,aAAa,CAAC;QACzD,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAS,EAAC,EAAE;YACpE,IAAI,OAAO,GAAE,KAAK,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB,CAAC,MAAW;QAC9B,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;QAC/B,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACxC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,QAAQ,CAAC,KAAU,EAAE,IAAY;QAC/B,IAAI,KAAK,GAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,uCAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;IACC,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;;sFAnHU,mBAAmB,kEAqCV,qEAAe;iHArCxB,mBAAmB;kEAenB,qEAAY;;;;;QC9DzB,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,mEAAQ;QAAA,4DAAK;QAC3D,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD1B,6IAAS,aAAS,IAAC;QACO,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACR,4DAAM;QACN,yEAAiB;QACf,oEAAiD;QACjD,yEAAwC;QACtC,uHAA+H;QACjI,4DAAM;QACR,4DAAM;QAIN,0EAA6B;QAC3B,4EAC6C;QAC3C,6EAAiF;QAC/E,gHAA+E;QAC/E,gHAA2I;QAC7I,qEAAe;QACf,6EAA0C;QACxC,gHAAqE;QACrE,gHAA0F;QAC5F,qEAAe;QACf,6EAAkF;QAChF,gHAAsF;QACtF,gHAA2I;QAC7I,qEAAe;QAEf,6EAA2C;QACzC,gHAAqE;QACrE,gHAA0F;QAC5F,qEAAe;QACf,6EAAkC;QAChC,gHAAwF;QACxF,gHAAsF;QACxF,qEAAe;QACf,6EAAoC;QAClC,gHAA0F;QAC1F,gHAAwF;QAC1F,qEAAe;QACf,6EAAuC;QACrC,gHAA+E;QAC/E,gHAA2F;QAC7F,qEAAe;QACf,6EAAyC;QACvC,gHAAiF;QACjF,gHAA6F;QAC/F,qEAAe;QAEf,6EAAwC;QACtC,gHAAmF;QACnF,gHAA+F;QACjG,qEAAe;QACf,6EAA2C;QACzC,gHAA2F;QAC3F,gHAAkK;QACpK,qEAAe;QAEf,gHAAsF;QACtF,gHAA0F;QAC5F,4DAAQ;QACV,4DAAM;QACN,2EAA0C;QACxC,sEAA+C;QAC/C,sEACM;QACR,4DAAM;;QA5DmD,2DAA0B;QAA1B,uFAA0B;QAOhE,0DAAgC;QAAhC,6FAAgC;QA6CD,2DAAiC;QAAjC,iGAAiC;QACtB,0DAA0B;QAA1B,kGAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChEH;AACvB;AACF;AAS9B;;;;;;;;;;;;;;;;ICCrB,yEAAgE;IAAA,qEAAU;IAAA,4DAAK;;;IAC/E,yEAA6H;IAAC,uDAAqE;;IAAA,4DAAK;;;IAA7G,6FAAgC;IAAG,0DAAqE;IAArE,6MAAqE;;;IAGnM,yEAAgE;IAAA,4EAAiB;IAAA,4DAAK;;;IACtF,yEAA8H;IAAC,uDAAuE;;IAAA,4DAAK;;;IAAhH,8FAAiC;IAAG,0DAAuE;IAAvE,+MAAuE;;;IAWtM,yEAAgE;IAAA,4EAAiB;IAAA,4DAAK;;;IACtF,yEAA+D;IAAC,uDAAiB;IAAA,4DAAK;;;IAAtB,0DAAiB;IAAjB,4FAAiB;;;IAGjF,yEAAgE;IAAA,+EAAoB;IAAA,4DAAK;;;IACzF,yEAA+D;IAAC,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,8FAAmB;;;IAGnF,yEAAgE;IAAA,uEAAY;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,6FAAkB;;;IAGlF,yEAAgE;IAAA,oEAAS;IAAA,4DAAK;;;IAC9E,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAGtF,yEAAgE;IAAA,oEAAS;IAAA,4DAAK;;;IAC9E,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAGpF,yEAAgE;IAAA,yEAAc;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGzF,yEAAgE;IAAA,uEAAY;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGvF,yEAAgE;IAAA,8EAAmB;IAAA,4DAAK;;;IACxF,yEAA+D;IAAC,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,6FAAkB;;;IAGlF,yEAAgE;IAAC,iEAAK;IAAA,4DAAK;;;;IAC3E,yEAA+D;IAC7D,wEAAuD;IAA1B,2XAAuB;IAAG,+DAAI;IAAA,4DAAI;IAAA,4DAAK;;;IAGtE,yEAAgE;IAAC,0EAAc;IAAA,4DAAK;;;;IAElF,4EAA0G;IAA3C,+bAAyC;IAAxG,4DAA0G;;;IAC1G,uEAAkC;IAAA,uDAAoB;IAAA,4DAAO;;;IAA3B,0DAAoB;IAApB,qFAAoB;;;;IACtD,8EAAiK;IAA3H,ubAAmC;IAAwF,gEAAK;IAAA,4DAAW;;;IAHnL,yEAA+D;IAC7D,2HAA0G;IAC1G,yHAA6D;IAC7D,iIAAiL;IAEnL,4DAAK;;;IAJiB,0DAA0B;IAA1B,0FAA0B;IACvC,0DAAyB;IAAzB,yFAAyB;IACrB,0DAAyB;IAAzB,yFAAyB;;;IAIxC,oEAAsF;;;IACtF,oEAA2F;;;;;ICjDzF,yEAAgE;IAAA,6EAAkB;IAAA,4DAAK;;;IACvF,yEAAiH;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGzI,oEAAqE;;;IACrE,oEAA0F;;;IAG1F,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIzF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGvF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGzF,yEAAgE;IAAC,gEAAI;IAAA,4DAAK;;;IAC1E,yEAA+D;IAAC,uDAAgB;IAAA,4DAAK;;;IAArB,0DAAgB;IAAhB,2FAAgB;;;IAGhF,yEAAgE;IAAC,qEAAS;IAAA,4DAAK;;;IAC/E,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAIpF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAItF,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAIzF,oEAAsF;;;IACtF,oEAA0F;;;IAExF,yEAA2D;IAAA,2EAAgB;IAAA,4DAAK;;;IAChF,yEAA2D;IAAA,sFAA2B;IAAA,4DAAK;;;IAF7F,yEAAkC;IAChC,yHAAgF;IAChF,yHAA2F;IAC7F,4DAAK;;;IAFgC,0DAAsB;IAAtB,2FAAsB;IACtB,0DAAsB;IAAtB,2FAAsB;;;IAYzD,yEAA0F;IAAA,6EAAkB;IAAA,4DAAK;;;IACjH,yEAAiH;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGzI,oEAAqE;;;IACrE,oEAA0F;;;IAG1F,yEAA0F;IAAC,yEAAa;IAAA,4DAAK;;;IAC7G,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIzF,yEAA0F;IAAC,uEAAW;IAAA,4DAAK;;;IAC3G,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGvF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGzF,yEAA0F;IAAC,gEAAI;IAAA,4DAAK;;;IACpG,yEAA+D;IAAC,uDAAgB;IAAA,4DAAK;;;IAArB,0DAAgB;IAAhB,2FAAgB;;;IAGhF,yEAA0F;IAAC,qEAAS;IAAA,4DAAK;;;IACzG,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAIpF,yEAA0F;IAAC,uEAAW;IAAA,4DAAK;;;IAC3G,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAItF,yEAA0F;IAAC,wEAAY;IAAA,4DAAK;;;IAC5G,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAIzF,oEAAsF;;;IACtF,oEAA0F;;;IAExF,yEAA2D;IAAA,2EAAgB;IAAA,4DAAK;;;IAChF,yEAA2D;IAAA,sFAA2B;IAAA,4DAAK;;;IAF7F,yEAAkC;IAChC,yHAAgF;IAChF,yHAA2F;IAC7F,4DAAK;;;IAFgC,0DAAsB;IAAtB,2FAAsB;IACtB,0DAAsB;IAAtB,2FAAsB;;;AFtE1D,MAAM,oBAAoB;IA+B/B,YAAoB,WAAwB,EAAS,MAAiB,EAAU,MAA0B,EAAS,SAAiD,EAClI,IAAgB,EACxC,QAA2B;QAFjB,gBAAW,GAAX,WAAW,CAAa;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,WAAM,GAAN,MAAM,CAAoB;QAAS,cAAS,GAAT,SAAS,CAAwC;QAClI,SAAI,GAAJ,IAAI,CAAY;QACxC,aAAQ,GAAR,QAAQ,CAAmB;QAxBrC,mBAAc,GAAW,CAAC,CAAC;QAC3B,qBAAgB,GAAa,CAAC,KAAK,EAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAC,cAAc,CAAC,CAAC;QAEpK,SAAI,GAAG,EAAE,CAAC;QAMV,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QAWtD,qBAAgB,GAAkB,EAAE,CAAC;IAIjC,CAAC;IAEL,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACvC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YACxB,OAAO,EAAE,CAAC,IAAI,CAAC;YACf,cAAc,EAAE,CAAC,IAAI,CAAC;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,gDAAgD;IAClD,CAAC;IACD,qBAAqB;QACnB,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YACjH,IAAI,CAAC,wBAAwB,GAAG,IAAI,uEAAkB,CAAuB,IAAI,CAAC,CAAC;YACnF,IAAI,CAAC,wBAAwB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACxE,IAAI,CAAC,wBAAwB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAC3D,CAAC;IACD,cAAc,CAAC,KAAY,EAAE,OAAO;QAClC,MAAM,KAAK,GAAE,KAAK,CAAC,MAA0B,CAAC;QAC9C,IAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAC,CAAC,EAAC;YACrC,MAAM,IAAI,GAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,IAAE,MAAM,EAAC;gBAC7D,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,8BAA8B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBAC7F,KAAK,CAAC,KAAK,GAAC,EAAE,CAAC;gBACf,OAAO;aACR;iBAAI;gBACH,OAAO,CAAC,QAAQ,GAAE,IAAI,CAAC,IAAI,CAAC;gBAC5B,OAAO,CAAC,aAAa,GAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;aAEnF;SAEF;IACH,CAAC;IACD,gBAAgB,CAAC,OAAO;QACvB,OAAO,CAAC,QAAQ,GAAC,EAAE;YACnB,OAAO,CAAC,aAAa,GAAC,EAAE,CAAC;QACzB,OAAO,CAAC,WAAW,GAAC,KAAK,CAAC;IAC3B,CAAC;IACD,QAAQ;QACN,4BAA4B;QAC5B,wEAAwE;QACxE,mCAAmC;QACnC,uEAAuE;QACvE,2FAA2F;QAC3F,yIAAyI;QACzI,4JAA4J;QAC5J,iCAAiC;QACjC,iBAAiB;QACjB,uBAAuB;QACvB,qBAAqB;QACrB,WAAW;QACX,IAAI;QACJ,uCAAuC;QACvC,qFAAqF;QACrF,4FAA4F;QAC5F,kCAAkC;QAClC,4BAA4B;QAC5B,OAAO;IACT,CAAC;IACD,OAAO;QACL,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,OAAY;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAC3D,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE;YAC9B,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAG/B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,aAAa;IAEb,CAAC;IACD,OAAO;QACL,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;wFA5HU,oBAAoB,0lBAgCrB,qEAAe;kHAhCd,oBAAoB;kEAepB,qEAAY;;;;;QCvEzB,yEAAiB;QACb,yEAAoB;QAClB,wEAA4C;QAAA,0EAAe;QAAA,4DAAK;QAClE,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,8IAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACR,4DAAM;QAEN,yEAA6B;QAC3B,2EAAmJ;QACjJ,2EAAiC;QAC/B,gHAA+E;QAC/E,gHAAwM;QAC1M,qEAAe;QACf,6EAAwC;QACtC,gHAAsF;QACtF,gHAA2M;QAC7M,qEAAe;QASf,6EAAkC;QAChC,gHAAsF;QACtF,iHAAsF;QACxF,qEAAe;QACf,6EAAoC;QAClC,gHAAyF;QACzF,iHAAwF;QAC1F,qEAAe;QACf,6EAAmC;QACjC,gHAAiF;QACjF,iHAAuF;QACzF,qEAAe;QACf,6EAAuC;QACrC,gHAA8E;QAC9E,iHAA2F;QAC7F,qEAAe;QACf,6EAAqC;QACnC,gHAA8E;QAC9E,iHAAyF;QAC3F,qEAAe;QACf,6EAA0C;QACxC,gHAAmF;QACnF,iHAA8F;QAChG,qEAAe;QACf,6EAAwC;QACtC,gHAAiF;QACjF,iHAA4F;QAC9F,qEAAe;QACf,6EAAoC;QAClC,gHAAwF;QACxF,iHAAuF;QACzF,qEAAe;QACf,6EAAkC;QAChC,gHAA2E;QAC3E,iHACsE;QACxE,qEAAe;QACf,6EAA0C;QACxC,gHAAoF;QACpF,iHAKK;QACP,qEAAe;QACf,iHAAsF;QACtF,iHAA2F;QAG7F,4DAAQ;QACV,4DAAM;QACN,uEAAK;QACH,gFAAgK;QAClK,4DAAM;QACN,4EAA0D;QAA3B,6IAAU,mBAAe,IAAC;QACvD,iEAAI;QAsBJ,0EAAiB;QACf,sFAAgE;QAC9D,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B,2EAAkI;QACtI,4DAAiB;QACjB,4DAAM;QACN,2EAAwB;QACtB,2EAAuD;QACrD,8EACoC;QAArB,6IAAS,cAAU,IAAC;QAAC,kEAAM;QAAA,4DAAS;QACrD,4DAAM;QACR,4DAAM;QACR,4DAAO;;QA3GY,0DAAuC;QAAvC,oGAAuC;QA+DR,2DAAiC;QAAjC,iGAAiC;QACrB,0DAA0B;QAA1B,kGAA0B;QAMxC,0DAAoC;QAApC,kJAAoC;QAE9E,0DAAwB;QAAxB,qFAAwB;;ADyGzB,MAAM,wBAAwB;IAanC,YAA4C,IAAsB,EAAU,SAAsB,EAAU,MAA0B,EAAS,SAAiD,EAC1L,QAA0B;QADY,SAAI,GAAJ,IAAI,CAAkB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,WAAM,GAAN,MAAM,CAAoB;QAAS,cAAS,GAAT,SAAS,CAAwC;QAC1L,aAAQ,GAAR,QAAQ,CAAkB;QAThC,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QAKtD,gBAAW,GAAQ,EAAE,CAAC;QACtB,qBAAgB,GAAa,CAAC,QAAQ,EAAC,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAC,SAAS,EAAE,cAAc,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAOhK,gBAAW,GAAG,6BAA6B,CAAC;IALR,CAAC;IAMrC,QAAQ;QACP,IAAI,CAAC,oCAAoC,EAAE,CAAC;IAC7C,CAAC;IACD,oCAAoC;QAClC,IAAI,CAAC,QAAQ,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YAChI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,sBAAsB,GAAG,IAAI,uEAAkB,CAA2B,IAAI,CAAC,CAAC;YACrF,IAAI,CAAC,uBAAuB,GAAG,IAAI,uEAAkB,CAA2B,IAAI,CAAC,CAAC;YACtF,IAAI,CAAC,sBAAsB,CAAC,SAAS,GAAE,IAAI,CAAC,SAAS,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,aAAa;QAEX,QAAQ,CAAC;QACT,MAAM,EAAE,GAAiB,uDAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7E,EAAE,CAAC,OAAO,CAAC,GAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,CAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,CAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,CAAC,CAAC;QAGrI,MAAM,EAAE,GAAkB,iDAAmB,EAAE,CAAC;QAChD,0DAA4B,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE/C,kBAAkB;QAClB,4CAAc,CAAC,EAAE,EAAC,QAAQ,GAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAC,mBAAmB,GAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAC,OAAO,CAAC,CAAC;IAEpG,CAAC;IAED,OAAO;QACL,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,QAAQ;IAER,CAAC;IACD,WAAW;QAET,QAAQ,CAAC;QACX,IAAI,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACtE,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzE,CAAC;IACD,QAAQ;QACN,IAAI,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE;YACvC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,OAAO,EAAE;oBAClE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;oBACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;iBACnB,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aACxB;SACF;IACH,CAAC;;gGA7EU,wBAAwB,kEAaf,qEAAe;sHAbxB,wBAAwB;kEAOxB,qEAAY;;;;;;;QEnMzB,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,iFAAsB;QAAA,4DAAK;QACzE,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,kJAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACN,yEAAiB;QACf,yEAAoB;QAClB,oFAAsC;QAEpC,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B,+EAAoE;QAApD,sJAAS,uBAAmB,IAAC;QAA7C,4DAAoE;QACtE,4DAAiB;QACnB,4DAAM;QACN,0EAAmB;QACjB,yEAA6G;QAA/E,4IAAS,iBAAa,IAAC;QACnD,4EAA6B;QAAA,yEAAa;QAAA,4DAAO;QACnD,4DAAI;QACN,4DAAM;QACR,4DAAM;QACN,2EAA8B;QAC5B,6EAC8C;QAC5C,6EAA8E;QAC5E,qHAAuF;QACvF,qHAA8I;QAChJ,qEAAe;QACf,6EAA0C;QACxC,qHAAqE;QACrE,qHAA0F;QAC5F,qEAAe;QACf,6EAA0C;QACxC,qHAAmF;QACnF,qHAA8F;QAEhG,qEAAe;QACf,6EAAwC;QACtC,qHAAiF;QACjF,qHAA4F;QAC9F,qEAAe;QACf,6EAA0C;QACxC,qHAAmF;QACnF,qHAA8F;QAChG,qEAAe;QACf,6EAAiC;QAC/B,qHAA0E;QAC1E,qHAAqF;QACvF,qEAAe;QACf,6EAAqC;QACnC,qHAA+E;QAC/E,qHAAyF;QAC3F,qEAAe;QAEf,6EAAuC;QACrC,qHAAiF;QACjF,qHAA2F;QAC7F,qEAAe;QAEf,6EAAwC;QACtC,qHAAkF;QAClF,qHAA4F;QAC9F,qEAAe;QAGf,qHAAsF;QACtF,qHAA0F;QAC1F,qHAGK;QAEP,4DAAQ;QACV,4DAAM;QACN,uEAAK;QACH,gFAAgK;QAClK,4DAAM;QACN,+EAA2C;QACzC,iFACoD;QAClD,6EAA8E;QAC5E,qHAAiH;QACjH,qHAA8I;QAChJ,qEAAe;QACf,6EAA0C;QACxC,qHAAqE;QACrE,qHAA0F;QAC5F,qEAAe;QACf,6EAA0C;QACxC,qHAA6G;QAC7G,qHAA8F;QAEhG,qEAAe;QACf,6EAAwC;QACtC,qHAA2G;QAC3G,qHAA4F;QAC9F,qEAAe;QACf,6EAA0C;QACxC,qHAAmF;QACnF,qHAA8F;QAChG,qEAAe;QACf,6EAAiC;QAC/B,qHAAoG;QACpG,qHAAqF;QACvF,qEAAe;QACf,6EAAqC;QACnC,qHAAyG;QACzG,qHAAyF;QAC3F,qEAAe;QAEf,6EAAuC;QACrC,qHAA2G;QAC3G,qHAA2F;QAC7F,qEAAe;QAEf,6EAAwC;QACtC,qHAA4G;QAC5G,qHAA4F;QAC9F,qEAAe;QAGf,qHAAsF;QACtF,qHAA0F;QAC1F,qHAGK;QAEP,4DAAQ;QACV,4DAAM;QACR,4DAAM;;QA5Ge,2DAAqC;QAArC,kGAAqC;QA2CN,2DAAiC;QAAjC,iGAAiC;QACtB,0DAA0B;QAA1B,kGAA0B;QASvC,0DAAoC;QAApC,kJAAoC;QAGjE,0DAAsC;QAAtC,mGAAsC;QA2CP,2DAAiC;QAAjC,iGAAiC;QACtB,0DAA0B;QAA1B,kGAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1HL;AACvB;AACF;AAGsB;AACiB;AAChB;AACwH;AAKpK;AACU;AACnB;AACH;AACY;;;;;;;;;;;;;;;;;;;;;;;;;ICOlC,yEAAgE;IAAC,yEAAc;IAAA,4DAAK;;;IACpF,yEAA+G;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAKvI,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;IAC5E,yEAAgE;IAAC,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,6FAAkB;;;IAKnF,yEAAiE;IAAC,oEAAQ;IAAA,4DAAK;;;IAC/E,yEAAkH;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAIvI,yEAAiE;IAAC,2EAAe;IAAA,4DAAK;;;IACtF,yEAAgE;IAC9D,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,qGACF;;;IAKA,yEAAiE;IAAC,8EAAkB;IAAA,4DAAK;;;IACzF,yEAAgE;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAG1F,yEAAiE;IAAC,iFAAqB;IAAA,4DAAK;;;IAC5F,yEAAgE;IAAC,uDAA+B;IAAA,4DAAK;;;IAApC,0DAA+B;IAA/B,0GAA+B;;;IAGhG,yEAAiE;IAAC,wEAAY;IAAA,4DAAK;;;IACnF,yEAAgE;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGxF,oEAAqE;;;IACrE,oEAA0F;;;IAqC1F,yEAAiH;IAAA,kEAAO;IAAA,4DAAK;;;;IAC7H,yEAAgE;IAC9D,wEAAO;IAAA,qEAAI;IAAA,qEAAI;IACb,6EAAwM;IAAzG,8YAA2B;IACxH,2EAAU;IAAA,oFAAyB;IAAA,4DAAW;IAChD,4DAAS;IAEX,4DAAK;IACL,qEAAI;IACF,6EAAsL;IAAtH,oZAAiC;IAC/F,2EAAU;IAAA,yEAAa;IAAA,4DAAW;IACpC,4DAAS;IAEX,4DAAK;IACL,sEAAI;IACF,8EAA8K;IAApH,0ZAAsC;IAC9F,4EAAU;IAAA,sEAAU;IAAA,4DAAW;IACjC,4DAAS;IAEX,4DAAK;IACL,sEAAI;IACF,8EAA2M;IAAvJ,8YAA0B;IAC5E,4EAAU;IAAA,mEAAO;IAAA,4DAAW;IAC9B,4DAAS;IACX,4DAAK;IACP,4DAAK;IACL,4DAAQ;IAER,4DAAK;;;IAzBqD,0DAAwC;IAAxC,qGAAwC;IAkBd,2DAAyC;IAAzC,sGAAyC;;;IAU/H,oEAAsF;;;IACtF,oEAA2F;;;IAG3F,yEAAkC;IAChC,yEAAiC;IAAA,uDAA6C;IAAA,4DAAK;IACrF,4DAAK;;;;IAD8B,0DAA6C;IAA7C,mHAA6C;;;;;IC5HhF,0EAAwD;IACtD,wEAAyG;IAA3E,wTAAmB;IAC/C,2EAA6B;IAAA,wEAAa;IAAA,4DAAO;IACnD,4DAAI;IACN,4DAAM;;;IAwDA,yEAAgE;IAAA,4EAAiB;IAAA,4DAAK;;;IACtF,yEAAgH;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGxI,oEAAqE;;;IACrE,oEAA0F;;;IAG1F,yEAAgE;IAAA,4EAAiB;IAAA,4DAAK;;;IACtF,yEAA+D;IAAC,uDAAiB;IAAA,4DAAK;;;IAAtB,0DAAiB;IAAjB,4FAAiB;;;IAGjF,yEAAgE;IAAA,+EAAoB;IAAA,4DAAK;;;IACzF,yEAA+D;IAAC,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,8FAAmB;;;IAGnF,yEAAgE;IAAA,oEAAS;IAAA,4DAAK;;;IAC9E,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAGpF,yEAAgE;IAAA,yEAAc;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGzF,yEAAgE;IAAA,uEAAY;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGvF,yEAAgE;IAAA,uEAAY;IAAA,4DAAK;;;IACjF,yEAA+D;IAAA,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,mFAAkB;;;IAGjF,yEAAgE;IAAA,+DAAI;IAAA,4DAAK;;;;IACzE,yEAA+D;IAC7D,wEAC0B;IAAxB,+XAAuB;IAAC,oEAAS;IAAA,4DAAI;IACzC,4DAAK;;;IAGP,oEAAsF;;;IACtF,oEAA0F;;;IA2CxF,yEAAgE;IAAA,4EAAiB;IAAA,4DAAK;;;IACtF,yEAA+G;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGvI,oEAAqE;;;IACrE,oEAA0F;;;IAG1F,yEAAgE;IAAA,4EAAiB;IAAA,4DAAK;;;IACtF,yEAA+D;IAAC,uDAAiB;IAAA,4DAAK;;;IAAtB,0DAAiB;IAAjB,4FAAiB;;;IAGjF,yEAAgE;IAAA,+EAAoB;IAAA,4DAAK;;;IACzF,yEAA+D;IAAC,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,8FAAmB;;;IAGnF,yEAAgE;IAAA,oEAAS;IAAA,4DAAK;;;IAC9E,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAGpF,yEAAgE;IAAA,yEAAc;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGzF,yEAAgE;IAAA,uEAAY;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGvF,yEAAgE;IAAA,uEAAY;IAAA,4DAAK;;;IACjF,yEAA+D;IAAA,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,mFAAkB;;;IAGjF,yEAAgE;IAAA,+DAAI;IAAA,4DAAK;;;;IACzE,yEAA+D;IAC7D,wEAC2B;IAAxB,gYAAuB;IAAC,oEAAS;IAAA,4DAAI;IAC1C,4DAAK;;;IAGP,oEAAyF;;;IACzF,oEAA6F;;;;IClLnE,2EAAgB;;;;IAQhC,iFAAyK;IAAvC,oZAAsC;IAAC,uDAAc;IAAA,4DAAa;;;IAAzF,iFAAqB;IAAyC,0DAAc;IAAd,8EAAc;;;;IAUvL,iFAAyL;IAA5D,+aAA2D;IAAC,uDAAoB;IAAA,4DAAa;;;IAAlI,+FAAmC;IAA8D,0DAAoB;IAApB,oFAAoB;;;;;ICrB3N,sEAAwB;IACtB,gEAAI;IAEJ,yEAAwB;IACrB,yEAA2C;IAE1C,0EAA2D;IAAA,wKAA2G;IAAA,4DAAO;IAC7K,gEAAK;IACL,gEAAK;IACL,4EAAgL;IAA1B,sTAAyB;IAC7K,8EAAkB;IAAA,4EAAW;IAAA,mEAAO;IAAA,4DAAW;IACjD,4DAAS;IACT,iEAAK;IACL,iEAAK;IACL,iEAAK;IACP,4DAAM;IACN,iEAAI;IAAA,iEAAI;IACV,4DAAM;IACN,0EAAwB;IACtB,2EAAwC;IACtC,6EAAuJ;IAArH,wUAAoC;IAAtE,4DAAuJ;IAE3J,4EAAkD;IAAA,wEAAY;IAAA,4DAAO;IACrE,iEAAI;IAAA,iEAAI;IACN,4DAAM;IACV,4DAAM;IACJ,0EAAwB;IACvB,2EAAuD;IACrD,8EAAmI;IAA1B,uTAAyB;IAAC,kEAAM;IAAA,4DAAS;IAClJ,8EAAiF;IAAvB,oTAAsB;IAAC,kEAAM;IAAA,4DAAS;IAClG,4DAAM;IACP,4DAAM;IACR,4DAAM;;;;IAQM,iFAA6H;IAAjC,kZAAgC;IAAC,uDAAiB;IAAA,4DAAa;;;IAAnF,gFAAmB;IAAkC,0DAAiB;IAAjB,kFAAiB;;;IAQ9I,iFAAuG;IAAA,uDAAoB;IAAA,4DAAa;;;IAA1D,qFAAwB;IAAC,0DAAoB;IAApB,qFAAoB;;;IAiC3H,iFAAoH;IAAA,uDAA6B;IAAA,4DAAa;;;IAApE,sFAAyB;IAAC,0DAA6B;IAA7B,8FAA6B;;;IA8BnJ,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAGxF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,qGAA0B;;;IAI1F,yEAAgE;IAAC,gEAAI;IAAA,4DAAK;;;IAC1E,yEAA+D;IAAC,uDAAgB;IAAA,4DAAK;;;IAArB,0DAAgB;IAAhB,2FAAgB;;;IAGhF,yEAAgE;IAAC,qEAAS;IAAA,4DAAK;;;;IAC/E,yEAA+D;IAC7D,4EAAmL;IAAvJ,0UAA8B;IAA1D,4DAAmL;IAAC,4DAAK;;;IAA7J,0DAA8B;IAA9B,wFAA8B;;;IAI5D,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAItF,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAAsD;IAAA,4DAAK;;;IAA3D,0DAAsD;IAAtD,uIAAsD;;;IAaxH,oEAAsF;;;IACtF,oEAA0F;;;IAG1F,yEAAkC;IAChC,yEAAiC;IAAA,sFAA2B;IAAA,4DAAK;IACnE,4DAAK;;;;IASb,yEAAqD;IACnD,0EAAuD;IACrD,6EACgC;IAAjB,yTAAgB;IAAC,+DAAI;IAAA,4DAAS;IAC/C,4DAAM;IACR,4DAAM;;;;IAxIN,sEAAyB;IACvB,2EAAiC;IAC/B,yEAAiB;IACf,0EAAwC;IACtC,qFAAgE;IAC9D,gFAA2C;IAAA,qEAAU;IAAA,4DAAY;IACjE,iFAAmI;IACjI,gIAA2J;IAC7J,4DAAa;IACf,4DAAiB;IACnB,4DAAM;IACN,0EAAwC;IACtC,sFAAgE;IAC9D,iFAA2C;IAAA,wEAAY;IAAA,4DAAY;IACnE,kFAAyH;IACvH,kIAAwI;IAC1I,4DAAa;IACf,4DAAiB;IACnB,4DAAM;IA0BN,2EAAwC;IACtC,sFAAgE;IAC9D,iFAA2C;IAAA,yEAAa;IAAA,4DAAY;IACpE,kFAAkI;IAChI,kIAA8J;IAChK,4DAAa;IACf,4DAAiB;IACnB,4DAAM;IACN,0EAAwB;IACtB,2EAAuD;IACrD,8EACoC;IAArB,sTAAoB;IAAC,kEAAM;IAAA,4DAAS;IACnD,8EAA+E;IAApB,qTAAmB;IAAC,iEAAK;IAAA,4DAAS;IAC/F,4DAAM;IACR,4DAAM;IACN,iEAAI;IAEN,4DAAM;IAER,4DAAO;IACT,iEAAI;IACJ,iEAAI;IACJ,2EAAsB;IACpB,sFAAsC;IAEpC,iFAA0C;IAAA,mEAAO;IAAA,4DAAY;IAC7D,iFAA0G;IAA3D,2UAAoC;IAAnF,4DAA0G;IAC5G,4DAAiB;IACnB,4DAAM;IACF,2EAA8B;IAE5B,6EAA4H;IAE1H,6EAA0C;IACxC,kHAAmF;IACnF,kHAA6F;IAC/F,qEAAe;IACf,6EAAwC;IACtC,kHAAiF;IACjF,kHAA+F;IACjG,qEAAe;IAEf,6EAAiC;IAC/B,kHAA0E;IAC1E,kHAAqF;IACvF,qEAAe;IACf,6EAAqC;IACnC,kHAA+E;IAC/E,kHAC2L;IAC7L,qEAAe;IAEf,6EAAuC;IACrC,kHAAiF;IACjF,kHAA2F;IAC7F,qEAAe;IAEf,6EAAwC;IACtC,kHAAkF;IAClF,kHAA2H;IAC7H,qEAAe;IAYf,kHAAsF;IACtF,kHAA0F;IAG1F,kHAEK;IACP,4DAAQ;IACR,4DAAM;IAEL,uEAAK;IACJ,gFAAuJ;IAEzJ,4DAAM;IAEZ,oHAKM;IACN,4DAAM;;;IAxIE,0DAA0B;IAA1B,0FAA0B;IAMsC,0DAAU;IAAV,mFAAU;IAQP,0DAAa;IAAb,sFAAa;IAiCP,0DAAmB;IAAnB,4FAAmB;IA2B7E,2DAAiC;IAAjC,iGAAiC;IAyCF,2DAAiC;IAAjC,oGAAiC;IACtB,0DAA0B;IAA1B,qGAA0B;IAUrC,0DAAoC;IAApC,mJAAoC;IAIjE,0DAA0B;IAA1B,0FAA0B;;AJ3H9C,MAAM,8BAA8B;IAsCzC,YAAmB,MAAiB,EAAU,MAA0B,EAAS,QAA0B,EAAS,MAAc;QAA/G,WAAM,GAAN,MAAM,CAAW;QAAU,WAAM,GAAN,MAAM,CAAoB;QAAS,aAAQ,GAAR,QAAQ,CAAkB;QAAS,WAAM,GAAN,MAAM,CAAQ;QA7BlI,mBAAc,GAAW,CAAC,CAAC;QAC3B,sJAAsJ;QACtJ,qBAAgB,GAAa,CAAC,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,cAAc,EAAC,UAAU,EAAC,cAAc,EAAE,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,cAAc,EAAC,oBAAoB,EAAC,cAAc,EAAC,YAAY,EAAC,cAAc,EAAE,SAAS,CAAC;QAGtP,SAAI,GAAG,EAAE,CAAC;QAKV,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;IAkBgF,CAAC;IANvI,eAAe;QACb,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,uFAAS,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAC7C,CAAC;IAKD,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,wEAAkB,CAAa,uFAAS,CAAC,CAAC;QAEhE,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAG,8FAAgB,CAAC;IACzC,CAAC;IACD,cAAc;QAEZ,IAAI,UAAU,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAE,QAAQ,CAAC,EAAC,eAAc,CAAC,OAAO,CAAC,UAAU,CAAC,EAAC,EAAC,CAAC;QAEjG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YAC3E,IAAI,CAAC,UAAU,GAAG,IAAI,wEAAkB,CAAa,IAAI,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5D,CAAC;IAED,qBAAqB,CAAC,IAAS;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;YACvD,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAC9D,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAC1C,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,mBAAmB,CAAC,IAAS;QAG3B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;YAC3D,IAAI,EAAE,EAAC,EAAE,EAAC,IAAI,CAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ;gBACtC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa;aAC9I;YACD,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,cAAc,EAAE,CAAC;QAExB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;YACjD,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;YACtB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAE1C,IAAI,CAAC,cAAc,EAAE,CAAC;QAEvB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,cAAc,CAAC,IAAS;QACtB,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,SAAS,EAAE;YAErC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,+BAA+B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,0BAA0B;SAC/F;IACD,CAAC;IACF;;;;;;;;;;;;SAYK;IACJ,OAAO,CAAC,IAAS;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sEAAmB,EAAE;YACtD,IAAI,EAAE,EAAE,EAAE,EAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAC7D,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,kBAAkB,CAAC,GAAQ,EAAC,MAAU;QAEpC,IAAG,MAAM,IAAE,UAAU,EACrB;YACE,IAAG,GAAG,CAAC,WAAW,IAAE,IAAI;gBACzB,OAAO,UAAU,CAAC;SAClB;aAEA,IAAG,MAAM,IAAE,SAAS,EACrB;YACE,IAAI,GAAG,CAAC,WAAW,IAAE,IAAI;gBACvB,OAAO,UAAU,CAAC;;gBAEnB,OAAO,UAAU;SACnB;QAEG,OAAO,UAAU,CAAC;IACxB,CAAC;;4GAhKU,8BAA8B;4HAA9B,8BAA8B;kEAgB9B,sEAAY;;;;;QCvEzB,8EAA8B;QAE9B,wEAAkE;QAAA,2EAAgB;QAAA,4DAAK;QACvF,gEAAI;QACF,yEAAiB;QACf,yEAAsB;QACpB,oFAAsC;QAEpC,+EAA0C;QAAA,kEAAO;QAAA,4DAAY;QAC7D,8EAAmG;QAApD,2JAAS,uBAAmB,IAAC;QAA5E,4DAAmG;QACrG,4DAAiB;QACnB,4DAAM;QACN,qEAA4B;QAC5B,qEAA4B;QAC5B,qEAA8B;QAEhC,4DAAM;QAGN,0EAA8B;QAEhC,4EAAoH;QAGlH,6EAAkE;QAChE,2HAAoF;QACpF,2HAA4I;QAC9I,qEAAe;QAGf,6EAAmC;QACjC,2HAA4E;QAC5E,2HAAwF;QAC1F,qEAAe;QAGf,6EAA+D;QAC7D,2HAA+E;QAC/E,2HAA4I;QAC9I,qEAAe;QAEf,6EAA2C;QACzC,2HAAsF;QACtF,2HAEK;QACP,qEAAe;QAGf,6EAA0C;QACxC,2HAAyF;QACzF,2HAA+F;QACjG,qEAAe;QACf,6EAAgD;QAC9C,2HAA4F;QAC5F,2HAAqG;QACvG,qEAAe;QACf,6EAAwC;QACtC,2HAAmF;QACnF,2HAA6F;QAC/F,qEAAe;QACf,6EAA0C;QACxC,2HAAqE;QACrE,2HAA0F;QAC5F,qEAAe;QAmCd,6EAAqC;QACpC,2HAA6H;QAC7H,4HA2BK;QACP,qEAAe;QAAC,iEAEhB;QAAA,2HAAsF;QACtF,2HAA2F;QAG3F,2HAEK;QACP,4DAAQ;QACR,4DAAM;QAEN,uEAAK;QACH,gFAAgK;QAClK,4DAAM;QAEN,4DAAW;;QA5HM,2DAAyB;QAAzB,sFAAyB;QA8GM,2DAAiC;QAAjC,iGAAiC;QACrB,0DAA0B;QAA1B,kGAA0B;QAUtC,0DAAoC;QAApC,kJAAoC;;ADuF7E,MAAM,wBAAwB;IAYnC,YAA4C,IAAgB,EAAkC,KAAuB,EAAU,SAAsB,EAAU,WAAwB,EAAU,WAA0B,EAAS,UAA4B,EAAS,SAAiD,EAAS,MAAiB;QAAxS,SAAI,GAAJ,IAAI,CAAY;QAAkC,UAAK,GAAL,KAAK,CAAkB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,gBAAW,GAAX,WAAW,CAAe;QAAS,eAAU,GAAV,UAAU,CAAkB;QAAS,cAAS,GAAT,SAAS,CAAwC;QAAS,WAAM,GAAN,MAAM,CAAW;QAXpV;;WAEG;QACH,YAAO,GAAY,IAAI,CAAC;QACxB,aAAQ,GAAY,IAAI,CAAC;QAGzB,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QAKtD,gBAAW,GAAU,EAAE,CAAC;QAExB,gBAAW,GAAG,6BAA6B,CAAC;QAC5C,gBAAW,GAA0B,EAAE,CAAC;QACxC,qBAAgB,GAAa,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAC,MAAM,CAAC,CAAC;QACxI,wBAAmB,GAAa,CAAC,YAAY,EAAG,cAAc,EAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QACpI,4BAAuB,GAAa,CAAC,YAAY,EAAG,cAAc,EAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IARwM,CAAC;IASzV,QAAQ;QAEN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,EAAE,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACb,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;YAClC,KAAK,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YACrB,QAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC3B,aAAa,EAAC,IAAI,CAAC,IAAI,CAAC,aAAa;YACrC,YAAY,EAAC,IAAI,CAAC,IAAI,CAAC,YAAY;YACnC,QAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEnC,CAAC;IACD,UAAU,CAAC,aAAoB;QAE7B,QAAO,aAAa,EACpB;YACE,KAAK,YAAY;gBACf,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,MAAM;SAET;IAEH,CAAC;IACD,SAAS,CAAC,aAAoB;QAE5B,QAAO,aAAa,EACpB;YACE,KAAK,YAAY;gBACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,MAAM;SAET;IAEH,CAAC;IACD,IAAI,CAAC,OAAY;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qEAAwB,EAAE;YAC3D,IAAI,EAAE,EAAE,SAAS,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAC,SAAS,EAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE;YACnJ,MAAM,EAAE,OAAO;YAChB,KAAK,EAAE,OAAO;SAEf,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,aAAa,CAAC,SAAgB;QAC5B,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,SAAS,EAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YACtH,IAAI,CAAC,gBAAgB,GAAG,IAAI,wEAAkB,CAAmB,IAAI,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,OAAO;QACL,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,GAAC,KAAK,CAAC;QAClB,kDAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC;YACrB,MAAM,UAAU,GAAG,GAAG,CAAC;YACvB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;YAC1D,MAAM,UAAU,GAAG,SAAS,CAAC;YAE7B,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,IAAI,0CAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,sBAAsB;YAE9D,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,GAAC,IAAI,CAAC;YACjB,GAAG,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACtE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,iBAAgB;QAC9C,CAAC,CAAC,CAAC;IAEP,CAAC;;gGAtGY,wBAAwB,kEAYf,sEAAe,mEAAmC,sEAAe;sHAZ1E,wBAAwB;QErOrC,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,wEAAa;QAAA,4DAAK;QAChE,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,kJAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACR,4DAAM;QACN,yEAAiB;QACf,oEACM;QACN,oHAIM;QACR,4DAAM;QACN,gFAAc;QACZ,0FAAoH;QAA/F,8MAAsB,wGAAY,eAAW,YAAY,CAAC,IAApC,wGAAgD,cAAU,YAAY,CAAC,IAAvE;QAEzC,iGAA2D;QACzD,6EACF;QAAA,4DAA6B;QAC7B,+EAA+B;QAC7B,2EAAgD;QAE9C,2EAAoE;QAClE,yEAAO;QAAA,wDAA8C;QAAA,4DAAQ;QAC/D,4DAAM;QACN,2EAAoE;QAClE,yEAAO;QAAA,wDAAiC;QAAA,4DAAQ;QAClD,4DAAM;QACR,4DAAM;QAEN,2EAAgD;QAE9C,2EAAoE;QAClE,yEAAO;QAAA,wDAAoD;QAAA,4DAAQ;QACrE,4DAAM;QACN,2EAAoE;QAClE,yEAAO;QAAA,wDAAuC;QAAA,4DAAQ;QACxD,4DAAM;QACR,4DAAM;QACN,0EAAiB;QACf,2EAAoE;QAElE,yEAAO;QAAA,wDAAkD;QAAA,4DAAQ;QACnE,4DAAM;QAEN,sEAEM;QAER,4DAAM;QACR,4DAAW;QACX,2EAA0C;QACxC,sEAA+C;QAC/C,sEACM;QACR,4DAAM;QAER,4DAAsB;QACtB,iEAAI;QACJ,0FAAqH;QAAhG,+MAAuB,wGAAY,eAAW,YAAY,CAAC,IAApC,wGAAgD,cAAU,YAAY,CAAC,IAAvE;QAC1C,iGAA2D;QACzD,kFACF;QAAA,4DAA6B;QAE7B,iFAC6C;QAC3C,6EAAkF;QAChF,qHAAsF;QACtF,qHAA6I;QAC/I,qEAAe;QACf,6EAA0C;QACxC,qHAAqE;QACrE,qHAA0F;QAC5F,qEAAe;QACf,6EAAkC;QAChC,qHAAsF;QACtF,qHAAsF;QACxF,qEAAe;QACf,6EAAoC;QAClC,qHAAyF;QACzF,qHAAwF;QAC1F,qEAAe;QACf,6EAAqC;QACnC,qHAA8E;QAC9E,qHAAyF;QAC3F,qEAAe;QACf,6EAA0C;QACxC,qHAAmF;QACnF,qHAA8F;QAChG,qEAAe;QACf,6EAAwC;QACtC,qHAAiF;QACjF,qHAA4F;QAC9F,qEAAe;QACf,6EAAoC;QAClC,qHAAiF;QACjF,qHAAsF;QACxF,qEAAe;QACf,6EAAkC;QAChC,qHAAyE;QACzE,qHAGK;QACP,qEAAe;QAEf,qHAAsF;QACtF,qHAA0F;QAG5F,4DAAQ;QAGV,4DAAsB;QACxB,iEAAI;QACJ,4DAAe;QAEf,uEAAK;QACH,2EAA2G;QACzG,2EAA0C;QACxC,sEAAiD;QACjD,2EAAwC;QACtC,sEAAsD;QACxD,4DAAM;QACN,6EAAoE;QAClE,4GACF;QAAA,4DAAQ;QACV,4DAAM;QACN,6EAAuE;QACrE,6EACF;QAAA,4DAAQ;QACR,2EAAgD;QAC9C,yEAAO;QAAA,wDAA8C;QAAA,4DAAQ;QAC7D,yEAAO;QAAA,wDAAiC;QAAA,4DAAQ;QAElD,4DAAM;QAEN,2EAAgD;QAC9C,yEAAO;QAAA,wDAAoD;QAAA,4DAAQ;QACnE,yEAAO;QAAA,wDAAuC;QAAA,4DAAQ;QAExD,4DAAM;QACN,2EAAgD;QAC9C,yEAAO;QAAA,wDAAkD;QAAA,4DAAQ;QACnE,4DAAM;QACN,iEAAI;QACJ,6EAAwD;QAAA,gFAAoB;QAAA,4DAAQ;QACpF,6EACkD;QAChD,8EAAkF;QAChF,uHAAsF;QACtF,uHAA4I;QAC9I,qEAAe;QACf,8EAA0C;QACxC,uHAAqE;QACrE,uHAA0F;QAC5F,qEAAe;QACf,8EAAkC;QAChC,uHAAsF;QACtF,uHAAsF;QACxF,qEAAe;QACf,8EAAoC;QAClC,uHAAyF;QACzF,uHAAwF;QAC1F,qEAAe;QACf,8EAAqC;QACnC,uHAA8E;QAC9E,uHAAyF;QAC3F,qEAAe;QACf,8EAA0C;QACxC,uHAAmF;QACnF,uHAA8F;QAChG,qEAAe;QACf,8EAAwC;QACtC,uHAAiF;QACjF,uHAA4F;QAC9F,qEAAe;QACf,8EAAoC;QAClC,uHAAiF;QACjF,uHAAsF;QACxF,qEAAe;QACf,8EAAyC;QACvC,uHAAyE;QACzE,uHAGK;QACP,qEAAe;QAEf,uHAAyF;QACzF,uHAA6F;QAG/F,4DAAQ;QAEV,4DAAM;QACR,4DAAM;;QA7LgB,0DAAkC;QAAlC,qGAAkC;QAOjC,0DAAsB;QAAtB,iFAAsB;QAS5B,0DAA8C;QAA9C,wHAA8C;QAG9C,0DAAiC;QAAjC,2GAAiC;QAOjC,0DAAoD;QAApD,8HAAoD;QAGpD,0DAAuC;QAAvC,iHAAuC;QAMvC,0DAAkD;QAAlD,4HAAkD;QAiB5C,0DAAuB;QAAvB,kFAAuB;QAKzB,0DAA+B;QAA/B,4FAA+B;QA0CA,2DAAiC;QAAjC,iGAAiC;QACtB,0DAA0B;QAA1B,kGAA0B;QAyB5E,2DAA8C;QAA9C,wHAA8C;QAC9C,0DAAiC;QAAjC,2GAAiC;QAKjC,0DAAoD;QAApD,8HAAoD;QACpD,0DAAuC;QAAvC,iHAAuC;QAIvC,0DAAkD;QAAlD,4HAAkD;QAI1C,0DAA+B;QAA/B,4FAA+B;QA0CA,2DAAoC;QAApC,oGAAoC;QACzB,0DAA6B;QAA7B,qGAA6B;;AFkJrF,MAAM,oBAAoB;IAiB/B,YAA4C,IAAsB,EAAU,SAAsB,EAAU,WAAwB,EAAS,SAAuD,EAAS,MAAiB,EAAU,WAA2B,EAAU,WAA2B;QAA5P,SAAI,GAAJ,IAAI,CAAkB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAS,cAAS,GAAT,SAAS,CAA8C;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,gBAAW,GAAX,WAAW,CAAgB;QAAU,gBAAW,GAAX,WAAW,CAAgB;QAZxS,cAAS,GAAa,EAAE,CAAC;QACzB,wBAAmB,GAAG,EAAE,CAAC;QACzB,oBAAe,GAAqB,EAAE,CAAC;QACvC,2BAAsB,GAAG,IAAI,wDAAW,EAAE,CAAC;QAC3C,4BAAuB,GAAG,IAAI,wDAAW,EAAE,CAAC;QAE5C,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QACtD,gBAAW,GAAgB;YACzB,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI;YACvF,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE;SAC7E;QAQD,qBAAgB,GAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QANlD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,yBAAyB;YACvD,yBAAyB;SAC1B,CAAC,CAAC;IACL,CAAC;IAKD,QAAQ;QACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACjC,uBAAuB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YACrC,sBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YACpC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YACrB,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YAC/B,cAAc,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC;SACnC,CAAC,CAAC;IAEL,CAAC;IACD,YAAY,CAAC,SAAS,EAAE,EAAE;QAExB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YACvE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAE1B,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;QAEpC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YACnE,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,sBAAsB,CAAC,aAAqB;QAC1C,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YACpE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;oBACjC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChB,uBAAuB,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,gEAAmB,CAAC;oBAClE,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,gEAAmB,CAAC;oBACpE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC;oBAChC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,CAAC;oBACpD,cAAc,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC;iBACnC,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;aACjD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC3F,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE;YAC5C,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YACvF,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE;YAC3C,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,4BAA4B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YAC7F,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;YACnC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,0BAA0B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YAC3F,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;YACtC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,iCAAiC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YAClG,OAAO;SACR;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK;gBAClD,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,KAAK,CAAC;YACtF,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;YAC/D,IAAI,CAAC,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC;YACnF,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC;YACrE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC;gBACvD,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;oBACjB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,+BAA+B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;oBAChG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBACD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;oBAClB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;gBAC5E,CAAC;aACF,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;SACxB;IACH,CAAC;;wFAlHU,oBAAoB,kEAiBX,sEAAe;kHAjBxB,oBAAoB;QGrVjC,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,wEAAa;QAAA,4DAAK;QAChE,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,8IAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QAON,uFAAsB;QACpB,2EAAU;QAER,kIAAwD;QACxD,2EAAkD;QAAzB,6IAAU,iBAAa,IAAC;QAE/C,0EAAiB;QACf,0EAAwC;QACtC,qFAAgE;QAC9D,6EAAW;QAAA,kEAAM;QAAA,4DAAY;QAC7B,kFAA8F;QAC5F,iIAAoM;QAEtM,4DAAa;QACf,4DAAiB;QACnB,4DAAM;QAEN,0EAAwC;QACtC,qFAAgE;QAC9D,6EAAW;QAAA,wEAAY;QAAA,4DAAY;QACnC,kFAAyG;QACvG,iIAA0N;QAE5N,4DAAa;QACf,4DAAiB;QACnB,4DAAM;QAGN,0EAAwC;QACtC,qFAAgE;QAC9D,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC,kFAAuG;QACrG,kFAA6D;QAAA,oEAAQ;QAAA,4DAAa;QAEpF,4DAAa;QAEf,4DAAiB;QACnB,4DAAM;QAER,4DAAM;QAEN,0EAAiB;QACf,2EAA2C;QACzC,qFAAgE;QAC9D,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC,gFAC4D;QACxD;QAAA,4DAAW;QACjB,4DAAiB;QACnB,4DAAM;QAGR,4DAAM;QACN,0EAAiB;QAEf,2EAA2C;QACzC,qFAAgE;QAC9D,6EAAW;QAAA,4EAAgB;QAAA,4DAAY;QACvC,2EAC8D;QAChE,4DAAiB;QACnB,4DAAM;QACR,4DAAM;QACN,0EAAiB;QACf,sEAA8C;QAC9C,2EAAwC;QACtC,8EAAuE;QAApB,6IAAS,aAAS,IAAC;QAAC,iEAAK;QAAA,4DAAS;QACvF,4DAAM;QACN,2EAAwC;QACtC,8EAAmD;QAAA,kEAAM;QAAA,4DAAS;QACpE,4DAAM;QACR,4DAAM;QAIR,4DAAO;QAET,4DAAW;QACb,4DAAc;QAEhB,4DAAM;;QA5EM,2DAAkB;QAAlB,+EAAkB;QAMsC,0DAAuC;QAAvC,oGAAuC;QAC7B,0DAAY;QAAZ,kFAAY;QASV,0DAAsC;QAAtC,mGAAsC;QAClC,0DAAkB;QAAlB,wFAAkB;;AH+f/F,MAAM,cAAc;IAgDzB,YAAoB,QAA2B,EAAiC,IAAgB,EAAU,WAAyB,EAAS,SAAwD,EAAS,MAAkB;QAA3M,aAAQ,GAAR,QAAQ,CAAmB;QAAiC,SAAI,GAAJ,IAAI,CAAY;QAAU,gBAAW,GAAX,WAAW,CAAc;QAAS,cAAS,GAAT,SAAS,CAA+C;QAAS,WAAM,GAAN,MAAM,CAAY;QA1C/N,sBAAiB,GAAG,IAAI,wDAAW,EAAE,CAAC;QACtC,YAAO,GAAa;YAClB,gBAAgB;YAChB,iBAAiB;YACjB,iBAAiB;YACjB,iBAAiB;YACjB,iBAAiB;YACjB,iBAAiB;YACjB,iBAAiB;YACjB,iBAAiB;SAClB,CAAC;QAGF,oBAAe,GAAa,EAAE,CAAC;QAE/B,UAAK,GAAW,CAAC,CAAC;QAKlB,iBAAY,GAAqB,EAAE,CAAC;QACpC,YAAO,GAAW,EAAE,CAAC;QACrB,eAAU,GAAc,EAAE,CAAC;QAC3B,iBAAY,GAAgB,EAAE,CAAC;QAE/B,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QACtD,iBAAY,GAAW,EAAE,CAAC;QAC1B,YAAO,GAAW,CAAC,CAAC;QACpB,aAAQ,GAAmB,EAAE,CAAC;QAC9B,uBAAkB,GAAkB,EAAE,CAAC;QAEvC,8BAAyB,GAAG,IAAI,wDAAW,CAAC,EAAE,CAAC,CAAC;QAChD,iCAA4B,GAAG,IAAI,wDAAW,EAAE,CAAC;QACjD,2BAAsB,GAAG,EAAE,CAAC;QAC5B,4BAAuB,GAA8B,yCAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3E,uBAAkB,GAAE,IAAI,wDAAW,CAAC,EAAE,CAAC,CAAC;QACxC,0BAAqB,GAAE,IAAI,wDAAW,CAAC,EAAE,CAAC,CAAC;QAC3C,qBAAgB,GAAQ,EAAE,CAAC;QAC3B,eAAU,GAAS,KAAK,CAAC;QACzB,2BAAsB,GAAsB,EAAE,CAAC;QAC/C,4BAAuB,GAAqB,EAAuB,CAAC;QAQpE,gBAAW,GAAG,6BAA6B,CAAC;QAC5C,gBAAW,GAAc,EAAE,EAAE,EAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAC,CAAC,EAAE,WAAW,EAAC,IAAI,IAAI,EAAE,EAAC;QAEjF,qBAAgB,GAAa,CAAC,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,oBAAmB;IAT1H,CAAC;IAUH,QAAQ;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACzC,SAAS,EAAC,CAAC,IAAI,EAAE,gEAAmB,CAAC;YACrC,MAAM,EAAE,CAAC,IAAI,EAAE,gEAAmB,CAAC;YACnC,UAAU,EAAE,CAAC,IAAI,EAAE,gEAAmB,CAAC;YACvC,YAAY,EAAE,CAAC,IAAI,CAAC;YACpB,4CAA4C;SAC7C,CAAC,CAAC;QACH,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACrC,4BAA4B;QAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,8BAA8B;QACnE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACpD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,wBAAwB;QAEtB,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAa,EAAC,EAAE;YAC3H,IAAI,CAAC,qBAAqB,GAAC,IAAI,wEAAkB,CAAoB,SAAS,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB;QACjB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,CAAC,WAAgB,EAAE,EAAE;YACjE,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB;QAChB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,CAAC,OAAW,EAAC,EAAE;YAC3D,IAAI,CAAC,YAAY,GAAE,OAAO;gBAC1B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,4BAA4B,CAAC,YAAY;qBAC5E,IAAI,CACH,0DAAS,CAAS,EAAE,CAAC,EACrB,oDAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CACvC,CAAC;YACC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,6BAA6B;QAC3B,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAY,EAAC,EAAE;YAC9H,IAAI,CAAC,YAAY,GAAC,QAAQ,CAAC;YAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU;QACR,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,GAAE,EAAC;YACzC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS;SAC7C,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,CACnD,KAAK,KAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,KAAK,KAAG,KAAK,CAAC,KAAK,CAAC,CACnD,CAAC;IAEJ,CAAC;IACD,WAAW,CAAC,KAAK;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,GAAE,EAAC;YAC5C,KAAK,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAC,IAAI,CAAC,OAAO,EAAC,SAAS,EAAC,IAAI,CAAC,SAAS;SAChE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAE,EAAC,CAAC,KAAK,IAAE,KAAK,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IACD,QAAQ;QACN,QAAQ,CAAC;QACT,IAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,0BAA0B,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;YACtF,OAAO;SACR;QACD,IAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,4BAA4B,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;YACxF,OAAO;SACR;QACD,IAAI,QAAQ,GAAC,CAAC;QACf,qBAAqB;QACrB,IAAI,UAAU,GAAC,GAAG;QACjB,IAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,IAAE,IAAI;YAC3C,UAAU,GAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE;QAC5D,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM;YACvD,SAAS,EAAE,UAAU,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAY,EAAC,EAAE;YACpE,IAAI,CAAC,kBAAkB,GAAC,IAAI,wEAAkB,CAAe,QAAQ,CAAC,CAAC;YACvE,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;IACD,kBAAkB,CAAC,KAAY;QAC7B,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpE,CAAC;IACD,eAAe,CAAC,OAAO;QACrB,OAAO,CAAC,UAAU,GAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;QACxD,OAAO,CAAC,UAAU,GAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI;QACN,IAAI,iBAAiB,GAAC,IAAI,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,kBAAkB,GAAC,EAAE,CAAC;QAC3B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,MAAM,EAAC,CAAC,EAAE,EAC7D;YACE,IAAI,CAAC,WAAW,CAAC,EAAE,GAAE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACzE,IAAI,CAAC,WAAW,CAAC,OAAO,GAAE,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,IAAG,IAAI,EAAC,KAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,EAAC,EAAC,CAAC;YACnI,iJAAiJ;YACjJ,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC3B,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;gBACvB,OAAO,EAAC,IAAI,CAAC,WAAW,CAAC,OAAO;gBACjC,0CAA0C;gBACzC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnD,WAAW,EAAC,IAAI,IAAI,EAAE;aACvB,CAAC,CAAC;YAEJ,IAAG,IAAI,CAAC,WAAW,CAAC,OAAO,GAAE,CAAC,EAC7B;gBACE,iBAAiB,GAAC,KAAK,CAAC;aACzB;SACF;QACH,IAAG,iBAAiB,IAAE,KAAK,EAC3B;YACE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kFAAkF,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC/I,OAAO;SACR;aAAI;YACH,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;gBACvE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;gBACnF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;SACJ;IAEH,CAAC;IACS,cAAc,CAAC,IAAY;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC,kBAAkB,GAAE,IAAI,wDAAW,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,qBAAqB,GAAE,IAAI,wDAAW,CAAC,EAAE,CAAC,CAAC;QAChD,IAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,IAAG,IAAI,EAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,GAAE;gBACjD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC1I,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,uBAAuB,CAAC,KAAK;QAC3B,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,EAAE;YACvD,IAAI,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpE,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SAC7C;IACH,CAAC;IACD,oBAAoB,CAAC,CAAC;QACpB,6DAA6D;QAC7D,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACjD,sDAAsD;QACtD,IAAI,CAAC,IAAI,IAAI,EAAE;YACb,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAClD;IACH,CAAC;IACC,WAAW,CAAC,KAAoB;QAC9B,KAAK,CAAC,eAAe,EAAE,CAAC;IAC5B,CAAC;IACD,mBAAmB,CAAC,KAAK;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,kBAAkB,GAAE,IAAI,wDAAW,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,qBAAqB,GAAE,IAAI,wDAAW,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,GAAE;YACjD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,wBAAwB,CAAC,EAAU;QACjC,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAE,KAAI,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,2BAA2B,CAAC,KAAa;QACvC,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAE,KAAI,KAAK,KAAK,CAAC,CAAC;IACrE,CAAC;IACD,aAAa,CAAC,QAAgB,EAAE;QAC9B,MAAM,WAAW,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QACjG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO;QACL,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,kBAAkB,GAAC,IAAI,CAAC;IAC/B,CAAC;IACD,sBAAsB;IACtB,uFAAuF;IACvF,wDAAwD;IACxD,8BAA8B;IAC9B,IAAI;IACJ,oBAAoB,CAAC,IAAS;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YAC5D,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;YAClH,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,yBAAyB;QAC3B,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,gBAAgB,CAAC,IAAS;QACxB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAC,IAAI,CAAC;QAC1B,IAAI,OAAO,CAAC,kCAAkC,CAAC,EAAE;YACjD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;gBAC/D,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;gBAClF,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;SACH;IACF,CAAC;IACD,gBAAgB,CAAC,KAAK;QAEpB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,GAAC,IAAI,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAC,IAAI,CAAC;QACpC,IAAI,CAAC,kBAAkB,GAAC,IAAI,CAAC;QAC7B,IAAG,KAAK,CAAC,OAAO,IAAE,IAAI,EAAC;YACrB,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC;YACrB,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC;aACG;YACF,IAAI,CAAC,UAAU,GAAC,KAAK,CAAC;SACvB;IACH,CAAC;IACD,aAAa;QACX,IAAI,CAAC,sBAAsB,GAAC,EAAE,CAAC;QAC/B,IAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAG,CAAC,EAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,oBAAoB,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;SAClF;aACI,IAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAG,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,cAAc,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,YAAY,IAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,aAAa;eAClL,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,UAAU,IAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,YAAY,IAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,aAAa,EAC1K;YACC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,0EAA0E,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;SACvI;aACI,IAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAG,CAAC,EAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,oCAAoC,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;SAClG;aACG;YAEF,IAAI,iBAAiB,GAAC,IAAI,CAAC;YAE3B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBAC/C,IAAI,CAAC,uBAAuB,CAAC,SAAS,GAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpE,IAAI,CAAC,uBAAuB,CAAC,WAAW,GAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,uBAAuB,CAAC,aAAa,GAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,IAAI,CAAC,uBAAuB,CAAC,WAAW,GAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,uBAAuB,CAAC,OAAO,GAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;oBAC/B,SAAS,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACtB,GAAG,EAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS;oBAC1C,MAAM,EAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW;oBAC/C,SAAS,EAAC,IAAI,CAAC,uBAAuB,CAAC,aAAa;oBACpD,WAAW,EAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW;oBACpD,OAAO,EAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO;oBAC5C,SAAS,EAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAClD,WAAW,EAAC,IAAI,IAAI,EAAE;oBACtB,QAAQ,EAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;iBACpD,CAAC,CAAC;gBAEH,IAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,GAAE,CAAC,EACxC;oBACE,iBAAiB,GAAC,KAAK,CAAC;iBACzB;aACJ;YAIC,IAAG,iBAAiB,IAAE,KAAK,EAC3B;gBACE,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAqB,CAAC;gBACjF,IAAI,SAAS,EAAE;oBACb,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC,CAAE,uBAAuB;iBAC/C;gBACK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,yGAAyG,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;gBAEtK,OAAO;aACR;iBAED;gBACE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACzC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;oBACvF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAClB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;gBACnE,CAAC,CAAC;aACH;SAEJ;IACH,CAAC;IACD,UAAU;QACR,MAAM,aAAa,GAAE,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QACnE,aAAa,CAAC,OAAO,CAAC,CAAC,OAAW,EAAC,EAAE;YACrC,OAAO,CAAC,KAAK,GAAC,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,iBAAiB,CAAC,KAAU;QAC1B,IAAI,CAAC,gBAAgB,GAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAA+B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAQ,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAExC,IAAG,IAAI,EAAC;YACN,MAAM,eAAe,GAAE,IAAI,CAAC,IAAI,CAAC;YACjC,MAAM,YAAY,GAAE,eAAe,GAAC,IAAI,CAAC;YACzC,MAAM,YAAY,GAAE,YAAY,GAAC,IAAI,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1B,IAAG,YAAY,GAAG,CAAC,EAAC;gBAClB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,6BAA6B,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;gBAC1F,MAAM,aAAa,GAAE,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;gBACvE,aAAa,CAAC,OAAO,CAAC,CAAC,OAAW,EAAC,EAAE;oBACrC,OAAO,CAAC,KAAK,GAAC,EAAE,CAAC;gBACnB,CAAC,CAAC;aACC;SACF;QAED,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAE5E,MAAM,MAAM,GAAe,IAAI,UAAU,EAAE,CAAC;QAE5C,MAAM,CAAC,MAAM,GAAG,CAAC,CAAM,EAAE,EAAE;YACzB,MAAM,SAAS,GAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1C,MAAM,QAAQ,GAAkB,uCAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEzE,MAAM,cAAc,GAAW,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,SAAS,GAAmB,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAClE,IAAI,CAAC,gBAAgB,GAAG,sDAAwB,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrC,CAAC,CAAC;QAEF,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,aAAa;QAEX,MAAM,YAAY,GAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,GAAE,IAAG,CAAC,WAAW,CAAC,CAAC;QAErF,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAGpC,MAAM,WAAW,GAAE,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,GAAE,EAAC,GAAG,CAAC,SAAS,EAAC,GAAG,CAAC,WAAW,EAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,EAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3L,MAAM,WAAW,GAAC;YAChB,CAAC,QAAQ,EAAC,cAAc,EAAC,YAAY,EAAC,aAAa,EAAC,KAAK,EAAC,UAAU,EAAC,YAAY,EAAC,aAAa,CAAC;YAChG,GAAG,WAAW;SACf,CAAC;QACF,MAAM,iBAAiB,GAAmB,qDAAuB,CAAC,WAAW,CAAC,CAAC;QAC/E,iBAAiB,CAAC,OAAO,CAAC,GAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,CAAC,CAAC;QACrH,KAAK,IAAI,CAAC,IAAI,iBAAiB,EAAE;YAC/B,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC;gBACxB,MAAM,EAAC,EAAE;gBACT,IAAI,EAAC;oBACH,IAAI,EAAE,IAAI;oBACV,KAAK,EAAC,EAAC,GAAG,EAAC,QAAQ,EAAC;oBACpB,IAAI,EAAE,UAAU;iBACjB;aACF;gBACD,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC;oBACxB,MAAM,EAAC,EAAE;oBACT,IAAI,EAAC;wBACH,IAAI,EAAE,IAAI;wBACV,KAAK,EAAC,EAAC,GAAG,EAAC,QAAQ,EAAC;wBACpB,IAAI,EAAE,UAAU;qBACjB;iBACF;gBACD,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC;oBACxB,MAAM,EAAC,EAAE;oBACT,IAAI,EAAC;wBACH,IAAI,EAAE,IAAI;wBACV,KAAK,EAAC,EAAC,GAAG,EAAC,QAAQ,EAAC;wBACpB,IAAI,EAAE,UAAU;qBACjB;iBACF;gBACD,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC;oBACxB,MAAM,EAAC,EAAE;oBACT,IAAI,EAAC;wBACH,IAAI,EAAE,IAAI;wBACV,KAAK,EAAC,EAAC,GAAG,EAAC,QAAQ,EAAC;wBACpB,IAAI,EAAE,UAAU;qBACjB;iBACF;gBACD,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC;oBACxB,MAAM,EAAC,EAAE;oBACT,IAAI,EAAC;wBACH,IAAI,EAAE,IAAI;wBACV,KAAK,EAAC,EAAC,GAAG,EAAC,QAAQ,EAAC;wBACpB,IAAI,EAAE,UAAU;qBACjB;iBACF;gBACD,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC;oBACxB,MAAM,EAAC,EAAE;oBACT,IAAI,EAAC;wBACH,IAAI,EAAE,IAAI;wBACV,KAAK,EAAC,EAAC,GAAG,EAAC,QAAQ,EAAC;wBACpB,IAAI,EAAE,UAAU;qBACjB;iBACF;gBACD,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC;oBACxB,MAAM,EAAC,EAAE;oBACT,IAAI,EAAC;wBACH,IAAI,EAAE,IAAI;wBACV,KAAK,EAAC,EAAC,GAAG,EAAC,QAAQ,EAAC;wBACpB,IAAI,EAAE,UAAU;qBACjB;iBACF;gBACD,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC;oBACxB,MAAM,EAAC,EAAE;oBACT,IAAI,EAAC;wBACH,IAAI,EAAE,IAAI;wBACV,KAAK,EAAC,EAAC,GAAG,EAAC,QAAQ,EAAC;wBACpB,IAAI,EAAE,UAAU;qBACjB;iBACF;SACF;QACD,6BAA6B;QAC7B,2CAA2C;QAC3C,8CAA8C;QAC9C,8BAA8B;QAC9B,mCAAmC;QACnC,sCAAsC;QACtC,uCAAuC;QACvC,mDAAmD;QACnD,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,oFAAoF;QACpF,KAAI,IAAI,GAAG,GAAC,CAAC,EAAE,GAAG,IAAG,WAAW,CAAC,MAAM,GAAC,CAAC,EAAC,GAAG,EAAE,EAAC;YAC9C,MAAM,YAAY,GAAC,IAAI,GAAG,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAC,IAAI,GAAG,EAAE,CAAC;YAC9B,MAAM,cAAc,GAAC,IAAI,GAAG,EAAE,CAAC;YAC/B,iBAAiB,CAAC,cAAc,CAAC,GAAC;gBAChC,CAAC,EAAC,GAAG,YAAY,IAAI,aAAa,EAAE;aACrC;SACF;QACD,MAAM,WAAW,GAAE,iDAAmB,EAAE,CAAC;QACzC,0DAA4B,CAAC,WAAW,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;QACxE,4CAAc,CAAC,WAAW,EAAC,6BAA6B,GAAC,WAAW,GAAC,OAAO,CAAC,CAAC;IAChF,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,YAAY;QACZ,oCAAoC;QACpC,8BAA8B;QAC9B,yCAAyC;QACzC,MAAM;QAEN,4BAA4B;IAC3B,CAAC;;4EA/fS,cAAc,iNAgD+B,sEAAe;4GAhD5D,cAAc;;kEAoDd,sEAAY;;;;;;QIrlBvB,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAC,sEAAU;QAAA,4DAAK;QAC9D,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,wIAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACR,4DAAM;QAIN,gEAAI;QAAA,gEAAI;QACR,2GAgCM;QACN,8GAyIM;;QA1KA,0DAAgB;QAAhB,gFAAgB;QAiChB,0DAAiB;QAAjB,iFAAiB;;AJ0/BlB,MAAM,yBAAyB;IAOpC,YAA4C,IAAkB,EAAU,SAAsB,EAAU,WAAwB,EAAS,SAAkD,EAAS,MAAiB;QAAzK,SAAI,GAAJ,IAAI,CAAc;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAS,cAAS,GAAT,SAAS,CAAyC;QAAS,WAAM,GAAN,MAAM,CAAW;QAFrN,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;IACmK,CAAC;IAG1N,QAAQ;QACN,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAC7C,kDAAkD;YAClD,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gEAAmB,CAAC;YAC1D,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,gEAAmB,CAAC;YAC1D,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gEAAmB,CAAC;SAClD,CAAC,CAAC;IAEL,CAAC;IACD,QAAQ;QACN,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;SAEhC;IACH,CAAC;IACD,cAAc;QACZ,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;YAC/B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,OAAO,EAAE;oBAC5D,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;oBACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;iBACnB,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC;aAC1E;SACF;IACH,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,OAAO;QACL,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;;kGAzCU,yBAAyB,kEAOhB,sEAAe;uHAPxB,yBAAyB;QKziCtC,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,yFAA8B;QAAA,4DAAK;QACjF,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,mJAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACR,4DAAM;QACN,0EAA0D;QAArB,+IAAS,cAAU,IAAC;QACvD,8EAA+B;QAC7B,yEAAiB;QACf,0EAAyC;QACvC,qFAAgE;QAC9D,6EAAW;QAAA,wEAAY;QAAA,4DAAY;QACnC,iFAAgF;QAC9E,kFAA4B;QAAA,mEAAO;QAAA,4DAAa;QAChD,kFAA4B;QAAA,mEAAO;QAAA,4DAAa;QAChD,kFAA4B;QAAA,mEAAO;QAAA,4DAAa;QAClD,4DAAa;QACf,4DAAiB;QAEnB,4DAAM;QACN,0EAAyC;QACvC,qFAAgE;QAC9D,6EAAW;QAAA,yEAAa;QAAA,4DAAY;QACpC,kFAAqG;QACnG,kFAA4C;QAAA,mFAAuB;QAAA,4DAAa;QAChF,kFAA0D;QAAA,gGAAoC;QAAA,4DAAa;QAC3G,kFAAqC;QAAA,4EAAgB;QAAA,4DAAa;QAClE,kFAAoC;QAAA,2EAAe;QAAA,4DAAa;QAChE,kFAAqC;QAAA,4EAAgB;QAAA,4DAAa;QAClE,kFAA2D;QAAA,iGACrD;QAAA,4DAAa;QACnB,kFAA2D;QAAA,iGACrD;QAAA,4DAAa;QACnB,kFAA2D;QAAA,iGACrD;QAAA,4DAAa;QACrB,4DAAa;QACf,4DAAiB;QAEnB,4DAAM;QACN,0EAAyC;QACvC,qFAAgE;QAC9D,6EAAW;QAAA,sEAAU;QAAA,4DAAY;QACjC,kFAAmG;QACjG,kFAAmC;QAAA,0EAAc;QAAA,4DAAa;QAC9D,kFAAoC;QAAA,2EAAe;QAAA,4DAAa;QAChE,kFAAoC;QAAA,2EAAe;QAAA,4DAAa;QAChE,kFAAoC;QAAA,2EAAe;QAAA,4DAAa;QAChE,kFAAoC;QAAA,2EAAe;QAAA,4DAAa;QAChE,kFAAoC;QAAA,2EAAe;QAAA,4DAAa;QAChE,kFAAoC;QAAA,2EAAe;QAAA,4DAAa;QAChE,kFAAoC;QAAA,2EAAe;QAAA,4DAAa;QAClE,4DAAa;QACf,4DAAiB;QACnB,4DAAM;QACN,0EAAyC;QACvC,qFAAgE;QAC9D,6EAAW;QAAA,yEAAa;QAAA,4DAAY;QACpC,wEAAsE;QAExE,4DAAiB;QACnB,4DAAM;QAER,4DAAM;QAIN,qEAEM;QACR,4DAAW;QACX,iEAAI;QACJ,0EAAiB;QACf,sEAA+C;QAC/C,2EAAwC;QACtC,8EAAuE;QAApB,kJAAS,aAAS,IAAC;QAAC,iEAAK;QAAA,4DAAS;QACvF,4DAAM;QACN,2EAAwC;QACtC,8EAAmD;QAAA,kEAAM;QAAA,4DAAS;QACpE,4DAAM;QACR,4DAAM;QACR,4DAAO;;QA1ED,0DAA8B;QAA9B,2FAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRyB;AACZ;AACU;AAMS;AAI9B;AAED;;;;;;;;;;;;;;;;;;;ICLzB,iFAAiF;IAAA,0EAAe;IAAA,4DAAa;;;IAC7G,iFAAiF;IAAA,0EAAe;IAAA,4DAAa;;;IAC7G,iFAAkF;IAAA,2EAAgB;IAAA,4DAAa;;;;IAY/G,iFAAuJ;IAA7C,+aAA4C;IAAC,uDAAuB;IAAA,4DAAa;;;IAA7G,yFAA2B;IAA8C,0DAAuB;IAAvB,yFAAuB;;;IALtL,yEAAqF;IACnF,0EAAqD;IACnD,qFAAgF;IAC9E,+EAA0C;IAAA,yEAAc;IAAA,4DAAY;IACpE,iFAA4E;IAC1E,wIAA2L;IAC7L,4DAAa;IACf,4DAAiB;IACnB,4DAAO;IAET,4DAAM;;;IATuB,0DAAyB;IAAzB,yFAAyB;IAId,0DAAa;IAAb,sFAAa;;;;IAW7C,iFAAgJ;IAA1C,2aAAyC;IAAC,uDAAyB;IAAA,4DAAa;;;IAA1G,uFAAyB;IAA2C,0DAAyB;IAAzB,2FAAyB;;;IALjL,yEAAoF;IAClF,0EAAoD;IAClD,qFAAiF;IAC/E,+EAA0C;IAAA,wEAAa;IAAA,4DAAY;IACnE,iFAA2E;IACzE,wIAAsL;IACxL,4DAAa;IACf,4DAAiB;IACnB,4DAAO;IACT,4DAAM;;;IARuB,0DAAwB;IAAxB,wFAAwB;IAId,0DAAY;IAAZ,qFAAY;;;IAMnD,yEAA4E;IAC1E,0EAAuD;IACrD,qFAAgF;IAC9E,+EAA0C;IAAA,6EAAkB;IAAA,4DAAY;IACxE,2FAAoG;IAClG,uEAAgF;IAChF,uEAA0E;IAC5E,4DAAuB;IACvB,uFAAwE;IACxE,6FAAuD;IACzD,4DAAiB;IACnB,4DAAO;IAET,4DAAM;;;;IAZuB,0DAA2B;IAA3B,2FAA2B;IAG5B,0DAAsB;IAAtB,8EAAsB;IAIX,0DAAc;IAAd,sEAAc;;;IAa7C,iFAAmH;IAAA,uDAAuB;IAAA,4DAAa;;;IAAjE,yFAA2B;IAAE,0DAAuB;IAAvB,yFAAuB;;;IALlJ,yEAAqF;IACnF,0EAAqD;IACnD,qFAAgF;IAC9E,+EAA0C;IAAA,8EAAmB;IAAA,4DAAY;IACzE,iFAA4E;IAC1E,wIAAuJ;IACzJ,4DAAa;IACf,4DAAiB;IACnB,4DAAO;IAET,4DAAM;;;IATuB,0DAAyB;IAAzB,yFAAyB;IAIiB,0DAAqB;IAArB,8FAAqB;;;;IAcpF,iFAAqH;IAA9B,kaAA6B;IAAC,uDAAY;IAAA,4DAAa;;;IAAxE,8EAAgB;IAA+B,0DAAY;IAAZ,8EAAY;;;IALzI,yEAA6E;IAC3E,0EAAiD;IAC/C,qFAAiF;IAC/E,+EAA0C;IAAA,4EAAiB;IAAA,4DAAY;IACvE,iFAAwE;IACtE,8IAA8I;IAChJ,4DAAa;IACf,4DAAiB;IACnB,4DAAO;IACT,4DAAM;;;IARuB,0DAAqB;IAArB,uFAAqB;IAIiB,0DAAS;IAAT,oFAAS;;;;IAUpE,iFAAwJ;IAAzC,qbAAwC;IAAC,uDAAoB;IAAA,4DAAa;;;IAAnG,sFAAwB;IAA0C,0DAAoB;IAApB,sFAAoB;;;IALpL,yEAA6E;IAC3E,0EAAoD;IAClD,qFAAiF;IAC/E,+EAA0C;IAAA,6EAAkB;IAAA,4DAAY;IACxE,iFAA2E;IACzE,8IAAyL;IAC3L,4DAAa;IACf,4DAAiB;IACnB,4DAAO;IACT,4DAAM;;;IARuB,0DAAwB;IAAxB,0FAAwB;IAIsB,0DAAiB;IAAjB,4FAAiB;;;IAjB9F,yEAAsD;IAEpD,0HASM;IACN,0HASM;IACR,4DAAM;;;IApBqC,0DAAkC;IAAlC,qGAAkC;IAUlC,0DAAkC;IAAlC,qGAAkC;;;;IAmCzE,+EAAuH;IAA7C,wWAA4C;IAAC,kEAAO;IAAA,4DAAW;;;IAOrI,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;IAC5E,yEAA+D;IAAC,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,8FAAkB;;;IAIlF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAAiI;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAI1J,yEAAgE;IAAC,8EAAkB;IAAA,4DAAK;;;IACxF,yEAAiI;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAIzJ,yEAAgE;IAAC,0EAAc;IAAA,4DAAK;;;IACpF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,qGAAyB;;;IAIzF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAAiI;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAI1J,yEAAgE;IAAC,6EAAiB;IAAA,4DAAK;;;IACvF,yEAAgI;IAAC,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,iGAAqB;;;IAGtJ,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAGtF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAGxF,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAA6B;IAAA,4DAAK;;;IAAlC,0DAA6B;IAA7B,yGAA6B;;;IAI7F,yEAAgE;IAAC,sEAAU;IAAA,4DAAK;;;IAChF,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,gGAAoB;;;IAIpF,yEAAgE;IAAC,2EAAe;IAAA,4DAAK;;;IACrF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,qGAAyB;;;IAIzF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGvF,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAAiI;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGzJ,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGvF,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;IAC5E,yEAA+D;IAAC,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,wGAA4B;;;IAG5F,yEAAgE;IAAC,oEAAQ;IAAA,4DAAK;;;IAC9E,yEAA+D;IAAC,uDAA8B;IAAA,4DAAK;;;IAAnC,0DAA8B;IAA9B,0GAA8B;;;IAI9F,yEAAgE;IAAC,mEAAO;IAAA,4DAAK;;;IAC7E,yEAA+D;IAAC,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,+FAAmB;;;IAGnF,oEAAqE;;;IACrE,oEAA0F;;;IAK1F,oEAAmE;;;IACnE,oEAAyE;;;IACzE,yEAA0B;IACxB,0EAAiB;IAAA,sFAA2B;IAAA,4DAAK;IACnD,4DAAK;;;IA5FX,0EAAiE;IAC/D,4EAAyH;IAGvH,4EAAmC;IACjC,wHAA4E;IAC5E,wHAAuF;IACzF,qEAAe;IAEf,4EAAoF;IAClF,wHAAmF;IACnF,wHAA+J;IACjK,qEAAe;IAEf,4EAAmF;IACjF,wHAAwF;IACxF,0HAA8J;IAChK,qEAAe;IAEf,6EAAyC;IACvC,0HAAoF;IACpF,0HAA8F;IAChG,qEAAe;IAEf,6EAAgF;IAC9E,0HAAmF;IACnF,0HAA+J;IACjK,qEAAe;IAEf,6EAAsF;IACpF,0HAAuF;IACvF,0HAA2J;IAC7J,qEAAe;IACf,6EAAuC;IACrC,0HAAkF;IAClF,0HAA2F;IAC7F,qEAAe;IACf,6EAAyC;IACvC,0HAAmF;IACnF,0HAA6F;IAC/F,qEAAe;IACf,6EAAwC;IACtC,0HAAkF;IAClF,0HAAkG;IACpG,qEAAe;IAEf,6EAAqC;IACnC,0HAAgF;IAChF,0HAAyF;IAC3F,qEAAe;IAEf,6EAA2C;IACzC,0HAAqF;IACrF,0HAA8F;IAChG,qEAAe;IAEf,6EAAwC;IACtC,0HAAmF;IACnF,0HAA4F;IAC9F,qEAAe;IACf,6EAAmF;IACjF,0HAAkF;IAClF,0HAA8J;IAChK,qEAAe;IACf,6EAAwC;IACtC,0HAAkF;IAClF,0HAA4F;IAC9F,qEAAe;IACf,6EAAkC;IAChC,0HAA4E;IAC5E,0HAAiG;IACnG,qEAAe;IACf,6EAAoC;IAClC,0HAA8E;IAC9E,0HAAmG;IACrG,qEAAe;IAEf,6EAAoC;IAClC,0HAA6E;IAC7E,0HAAwF;IAC1F,qEAAe;IACf,6EAA0C;IACxC,0HAAqE;IACrE,0HAA0F;IAC5F,qEAAe;IAGf,6EAAqC;IACnC,0HAAmE;IACnE,0HAAyE;IACzE,0HAEK;IACP,qEAAe;IAEjB,4DAAQ;IACV,4DAAM;;;IA/Fa,0DAA+B;IAA/B,gGAA+B;IAuFxB,2DAAwC;IAAxC,4GAAwC;IAC3B,0DAAiC;IAAjC,6GAAiC;;;IAalE,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;IAC5E,yEAA+D;IAAC,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,8FAAkB;;;IAIlF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,0EAAiI;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAI1J,yEAAgE;IAAC,8EAAkB;IAAA,4DAAK;;;IACxF,0EAAiI;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGzJ,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,0EAAiI;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGzJ,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGvF,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;IAC5E,yEAA+D;IAAC,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,wGAA4B;;;IAG5F,yEAAgE;IAAC,oEAAQ;IAAA,4DAAK;;;IAC9E,yEAA+D;IAAC,uDAA8B;IAAA,4DAAK;;;IAAnC,0DAA8B;IAA9B,0GAA8B;;;IAG9F,yEAAgE;IAAC,sEAAU;IAAA,4DAAK;;;IAChF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAGtF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAGxF,yEAAgE;IAAC,2EAAe;IAAA,4DAAK;;;IACrF,yEAA+D;IAAC,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,sGAA0B;;;IAG1F,yEAAgE;IAAC,kFAAsB;IAAA,4DAAK;;;;IAC5F,yEAA+D;IAAC,uDAAyB;IAAA,gFAAqF;IAAhC,yZAA+B;IAAC,kEAAO;IAAA,4DAAW;IAChM,4DAAK;;;IAD2D,0DAAyB;IAAzB,qGAAyB;;;IAIzF,oEAAqE;;;IACrE,oEAA0F;;;IAK1F,oEAAmE;;;IACnE,oEAAyE;;;IACzE,yEAA0B;IACxB,0EAAiB;IAAA,sFAA2B;IAAA,4DAAK;IACnD,4DAAK;;;IA9DX,0EAAiE;IAC/D,4EAAyH;IAGvH,4EAAmC;IACjC,wHAA4E;IAC5E,wHAAuF;IACzF,qEAAe;IAEf,4EAAmF;IACjF,wHAAmF;IACnF,wHAA+J;IACjK,qEAAe;IAEf,4EAAkF;IAChF,wHAAwF;IACxF,0HAA8J;IAChK,qEAAe;IACf,6EAAkF;IAChF,0HAAkF;IAClF,0HAA8J;IAChK,qEAAe;IACf,6EAAwC;IACtC,0HAAkF;IAClF,0HAA4F;IAC9F,qEAAe;IACf,6EAAkC;IAChC,0HAA4E;IAC5E,0HAAiG;IACnG,qEAAe;IACf,6EAAoC;IAClC,0HAA8E;IAC9E,0HAAmG;IACrG,qEAAe;IACf,6EAAuC;IACrC,0HAAgF;IAChF,0HAA2F;IAC7F,qEAAe;IACf,6EAAyC;IACvC,0HAAmF;IACnF,0HAA6F;IAC/F,qEAAe;IACf,6EAA2C;IACzC,0HAAqF;IACrF,0HAA+F;IACjG,qEAAe;IACf,6EAA0C;IACxC,0HAA4F;IAC5F,0HACK;IACP,qEAAe;IACf,6EAA0C;IACxC,0HAAqE;IACrE,0HAA0F;IAC5F,qEAAe;IAGf,6EAAqC;IACnC,0HAAmE;IACnE,0HAAyE;IACzE,0HAEK;IACP,qEAAe;IAEjB,4DAAQ;IAEV,4DAAM;;;IAlEa,0DAA+B;IAA/B,gGAA+B;IAyDxB,2DAAwC;IAAxC,4GAAwC;IAC3B,0DAAiC;IAAjC,6GAAiC;;;IAclE,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;IAC5E,yEAA+D;IAAC,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,8FAAkB;;;IAIlF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,0EAAiI;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAI1J,yEAAgE;IAAC,8EAAkB;IAAA,4DAAK;;;IACxF,0EAAiI;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAIzJ,yEAAgE;IAAC,6EAAiB;IAAA,4DAAK;;;IACvF,0EAAgI;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAIvJ,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,0EAAiI;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGzJ,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGvF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,qGAAyB;;;IAGzF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAGxF,yEAAgE;IAAC,gEAAI;IAAA,4DAAK;;;IAC1E,yEAA+D;IAAC,uDAAgB;IAAA,4DAAK;;;IAArB,0DAAgB;IAAhB,4FAAgB;;;IAGhF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAGtF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAGtF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAGxF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAGxF,yEAAgE;IAAC,2EAAe;IAAA,4DAAK;;;IACrF,yEAA+D;IAAC,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,sGAA0B;;;IAG1F,oEAAqE;;;IACrE,oEAA0F;;;IAK1F,oEAAoE;;;IACpE,oEAA0E;;;IAC1E,yEAA0B;IACxB,0EAAiB;IAAA,sFAA2B;IAAA,4DAAK;IACnD,4DAAK;;;IA3EX,0EAAkE;IAChE,4EAAyH;IAGvH,4EAAmC;IACjC,wHAA4E;IAC5E,wHAAuF;IACzF,qEAAe;IAEf,4EAAmF;IACjF,wHAAmF;IACnF,wHAA+J;IACjK,qEAAe;IAEf,4EAAkF;IAChF,wHAAwF;IACxF,0HAA8J;IAChK,qEAAe;IAEf,6EAAsF;IACpF,0HAAuF;IACvF,0HAA4J;IAC9J,qEAAe;IAEf,6EAAkF;IAChF,0HAAkF;IAClF,0HAA8J;IAChK,qEAAe;IACf,6EAAwC;IACtC,0HAAkF;IAClF,0HAA4F;IAC9F,qEAAe;IACf,6EAA0C;IACxC,0HAAmF;IACnF,0HAA8F;IAChG,qEAAe;IACf,6EAAyC;IACvC,0HAAmF;IACnF,0HAA6F;IAC/F,qEAAe;IACf,6EAAiC;IAC/B,0HAA0E;IAC1E,0HAAqF;IACvF,qEAAe;IACf,6EAAuC;IACrC,0HAAiF;IACjF,0HAA2F;IAC7F,qEAAe;IACf,6EAAuC;IACrC,0HAAiF;IACjF,0HAA2F;IAC7F,qEAAe;IACf,6EAAyC;IACvC,0HAAmF;IACnF,0HAA6F;IAC/F,qEAAe;IACf,6EAAyC;IACvC,0HAAmF;IACnF,0HAA6F;IAC/F,qEAAe;IACf,6EAA2C;IACzC,0HAAqF;IACrF,0HAA+F;IACjG,qEAAe;IACf,6EAA0C;IACxC,0HAAqE;IACrE,0HAA0F;IAC5F,qEAAe;IAGf,6EAAqC;IACnC,0HAAoE;IACpE,0HAA0E;IAC1E,0HAEK;IACP,qEAAe;IAEjB,4DAAQ;IACV,4DAAM;;;IA9Ea,0DAA+B;IAA/B,gGAA+B;IAsExB,2DAAyC;IAAzC,6GAAyC;IAC5B,0DAAkC;IAAlC,8GAAkC;;;IAYnE,yEAAgE;IAAA,uEAAY;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAIxF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,qGAAyB;;;IAGzF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAGxF,yEAAgE;IAAC,0EAAc;IAAA,4DAAK;;;IACpF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,qGAAyB;;;IAGzF,yEAAgE;IAAC,gEAAI;IAAA,4DAAK;;;IAC1E,yEAA+D;IAAC,uDAAgB;IAAA,4DAAK;;;IAArB,0DAAgB;IAAhB,4FAAgB;;;IAGhF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAItF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAGtF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAMxF,oEAAqE;;;IACrE,oEAA0F;;;IAK1F,oEAA2E;;;IAC3E,oEAAiF;;;IACjF,yEAA0B;IACxB,0EAAiB;IAAA,sFAA2B;IAAA,4DAAK;IACnD,4DAAK;;;IAlDX,0EAAyE;IACvE,4EAAyH;IACvH,4EAAyC;IACvC,wHAAiF;IACjF,wHAA6F;IAC/F,qEAAe;IAEf,4EAA0C;IACxC,wHAAmF;IACnF,wHAA8F;IAChG,qEAAe;IACf,4EAAyC;IACvC,wHAAmF;IACnF,0HAA6F;IAC/F,qEAAe;IACf,6EAA0C;IACxC,0HAAoF;IACpF,0HAA8F;IAChG,qEAAe;IACf,6EAAiC;IAC/B,0HAA0E;IAC1E,0HAAqF;IACvF,qEAAe;IACf,6EAAuC;IACrC,0HAAiF;IACjF,0HAA2F;IAC7F,qEAAe;IAEf,6EAAuC;IACrC,0HAAiF;IACjF,0HAA2F;IAC7F,qEAAe;IACf,6EAAyC;IACvC,0HAAmF;IACnF,0HAA6F;IAC/F,qEAAe;IAIf,6EAA0C;IACxC,0HAAqE;IACrE,0HAA0F;IAC5F,qEAAe;IAGf,6EAAqC;IACnC,0HAA2E;IAC3E,0HAAiF;IACjF,0HAEK;IACP,qEAAe;IAEjB,4DAAQ;IACV,4DAAM;;;IArDa,0DAA+B;IAA/B,gGAA+B;IA6CxB,2DAAgD;IAAhD,oHAAgD;IACnC,0DAAyC;IAAzC,qHAAyC;;;IAqB1E,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;IAC5E,yEAA+D;IAAC,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,8FAAkB;;;IAIlF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,0EAAiI;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAI1J,yEAAgE;IAAC,8EAAkB;IAAA,4DAAK;;;IACxF,0EAAiI;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAIzJ,yEAAgE;IAAC,0EAAc;IAAA,4DAAK;;;IACpF,yEAAgE;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,qGAAyB;;;IAI1F,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,0EAAiI;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,qGAAyB;;;IAI3J,yEAAgE;IAAC,6EAAiB;IAAA,4DAAK;;;IACvF,0EAAiI;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAGxJ,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAGtF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAGxF,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAA6B;IAAA,4DAAK;;;IAAlC,0DAA6B;IAA7B,yGAA6B;;;IAI7F,yEAAgE;IAAC,sEAAU;IAAA,4DAAK;;;IAChF,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,gGAAoB;;;IAIpF,yEAAgE;IAAC,2EAAe;IAAA,4DAAK;;;IACrF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,qGAAyB;;;IAIzF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGvF,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,0EAAgI;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGxJ,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGvF,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;IAC5E,yEAA+D;IAAC,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,wGAA4B;;;IAG5F,yEAAgE;IAAC,oEAAQ;IAAA,4DAAK;;;IAC9E,yEAA+D;IAAC,uDAA8B;IAAA,4DAAK;;;IAAnC,0DAA8B;IAA9B,0GAA8B;;;IAI9F,yEAAgE;IAAC,mEAAO;IAAA,4DAAK;;;IAC7E,yEAA+D;IAAC,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,+FAAmB;;;IAInF,oEAAwE;;;IACxE,oEAA8E;;;IAC9E,yEAA0B;IACxB,0EAAiB;IAAA,sFAA2B;IAAA,4DAAK;IACnD,4DAAK;;;IAUL,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;IAC5E,yEAA+D;IAAC,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,8FAAkB;;;IAIlF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,0EAAiI;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAI1J,yEAAgE;IAAC,8EAAkB;IAAA,4DAAK;;;IACxF,0EAAgI;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGxJ,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,0EAAgI;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGxJ,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGvF,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;IAC5E,yEAA+D;IAAC,uDAA4B;IAAA,4DAAK;;;IAAjC,0DAA4B;IAA5B,wGAA4B;;;IAG5F,yEAAgE;IAAC,oEAAQ;IAAA,4DAAK;;;IAC9E,yEAA+D;IAAC,uDAA8B;IAAA,4DAAK;;;IAAnC,0DAA8B;IAA9B,0GAA8B;;;IAG9F,yEAAgE;IAAC,sEAAU;IAAA,4DAAK;;;IAChF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAGtF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAGxF,yEAAgE;IAAC,2EAAe;IAAA,4DAAK;;;IACrF,yEAA+D;IAAC,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,sGAA0B;;;IAG1F,yEAAgE;IAAC,kFAAsB;IAAA,4DAAK;;;IAC5F,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,qGAAyB;;;IAGzF,oEAAqE;;;IACrE,oEAA0F;;;IAK1F,oEAAwE;;;IACxE,oEAA8E;;;IAC9E,yEAA0B;IACxB,0EAAiB;IAAA,sFAA2B;IAAA,4DAAK;IACnD,4DAAK;;;IAaT,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;IAC5E,yEAA+D;IAAC,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,8FAAkB;;;IAIlF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,0EAAiI;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAI1J,yEAAgE;IAAC,8EAAkB;IAAA,4DAAK;;;IACxF,0EAAgI;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAIxJ,yEAAgE;IAAC,6EAAiB;IAAA,4DAAK;;;IACvF,0EAAgI;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAIvJ,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,0EAAgI;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGxJ,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,mGAAuB;;;IAGvF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,qGAAyB;;;IAGzF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAGxF,yEAAgE;IAAC,gEAAI;IAAA,4DAAK;;;IAC1E,yEAA+D;IAAC,uDAAgB;IAAA,4DAAK;;;IAArB,0DAAgB;IAAhB,4FAAgB;;;IAGhF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAGtF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAGtF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAGxF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAGxF,yEAAgE;IAAC,2EAAe;IAAA,4DAAK;;;IACrF,yEAA+D;IAAC,uDAA0B;IAAA,4DAAK;;;IAA/B,0DAA0B;IAA1B,sGAA0B;;;IAG1F,oEAAqE;;;IACrE,oEAA0F;;;IAK1F,oEAAyE;;;IACzE,oEAA+E;;;IAC/E,yEAA0B;IACxB,0EAAiB;IAAA,sFAA2B;IAAA,4DAAK;IACnD,4DAAK;;;IAcL,yEAAgE;IAAA,uEAAY;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAGpF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,qGAAyB;;;IAGzF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAGxF,yEAAgE;IAAC,0EAAc;IAAA,4DAAK;;;IACpF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,qGAAyB;;;IAGzF,yEAAgE;IAAC,gEAAI;IAAA,4DAAK;;;IAC1E,yEAA+D;IAAC,uDAAgB;IAAA,4DAAK;;;IAArB,0DAAgB;IAAhB,4FAAgB;;;IAGhF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAItF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,kGAAsB;;;IAGtF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,oGAAwB;;;IAI5F,oEAAqE;;;IACrE,oEAA0F;;;IAK1F,oEAAgF;;;IAChF,oEAAsF;;;IACtF,yEAA0B;IACxB,0EAAiB;IAAA,sFAA2B;IAAA,4DAAK;IACnD,4DAAK;;;ADtnBJ,MAAM,sBAAsB;IAqDjC,YAAoB,UAAyB,EAAS,QAAqB,EAAS,GAAkB;QAAlF,eAAU,GAAV,UAAU,CAAe;QAAS,aAAQ,GAAR,QAAQ,CAAa;QAAS,QAAG,GAAH,GAAG,CAAe;QAlDtG,mBAAc,GAAW,SAAS,CAAC;QAKnC,sBAAiB,GAAQ,CAAC,CAAC;QAC3B,qBAAgB,GAAQ,CAAC,CAAC;QAW1B,UAAK,GAAQ,IAAI,IAAI,EAAE,CAAC;QACxB,iBAAY,GAAS,KAAK,CAAC;QAC3B,gBAAW,GAAa,EAAE,CAAC;QAE3B,4BAAuB,GAA0B,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,SAAS,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,KAAK,EAAC,CAAC,EAAC,aAAa,EAAC,CAAC,EAAC,SAAS,EAAC,CAAC,EAAC,CAAC;QAE3J,4BAAuB,GAAa,CAAC,OAAO,EAAC,cAAc,EAAE,aAAa,EAAC,cAAc,EAAE,YAAY,EAAC,cAAc,EAAE,aAAa,EAAC,cAAc;YACjJ,UAAU,EAAE,cAAc,EAAC,gBAAgB,EAAC,cAAc,EAAE,WAAW,EAAC,cAAc,EAAC,aAAa,EAAC,cAAc,EAAE,YAAY,EAAC,cAAc;YAC/I,SAAS,EAAE,cAAc,EAAC,eAAe,EAAE,cAAc,EAAC,YAAY,EAAE,cAAc,EAAC,YAAY,EAAC,cAAc,EAAE,YAAY,EAAE,cAAc;YAChJ,MAAM,EAAC,cAAc,EAAE,QAAQ,EAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAE1D,4BAAuB,GAAa,CAAC,OAAO,EAAC,cAAc,EAAE,aAAa,EAAC,cAAc,EAAE,YAAY,EAAC,cAAc,EAAC,YAAY,EAAC,cAAc,EAAE,YAAY,EAAE,cAAc;YAC9K,MAAM,EAAC,cAAc,EAAE,QAAQ,EAAC,cAAc,EAAC,WAAW,EAAC,cAAc,EAAC,aAAa,EAAC,cAAc,EAAC,eAAe,EAAC,cAAc,EAAC,cAAc,CAAC,CAAC;QAExJ,6BAAwB,GAAU,CAAC,OAAO,EAAC,cAAc,EAAE,aAAa,EAAC,cAAc,EAAE,YAAY,EAAC,cAAc,EAAC,gBAAgB,EAAC,cAAc,EAAC,YAAY,EAAC,cAAc,EAAE,YAAY,EAAE,cAAc;YAC1M,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,cAAc,EAAC,KAAK,EAAC,cAAc,EAAC,WAAW,EAAC,cAAc,EAAC,WAAW,EAAC,cAAc,EAAC,aAAa,EAAC,cAAc,EAAC,aAAa,EAAC,cAAc,EAAC,eAAe,CAAC,CAAC;QAErN,iCAA4B,GAAa,CAAC,OAAO,EAAC,aAAa,EAAC,YAAY,EAAC,aAAa,EAAC,UAAU,EAAE,gBAAgB,EAAC,WAAW,EAAC,aAAa,EAAE,YAAY;YAC1J,SAAS,EAAE,eAAe,EAAE,YAAY,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEpG,iCAA4B,GAAa,CAAC,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,YAAY,EAAC,YAAY;YAChG,MAAM,EAAC,QAAQ,EAAC,WAAW,EAAC,aAAa,EAAC,eAAe,EAAC,cAAc,CAAC,CAAC;QAEjF,kCAA6B,GAAU,CAAC,OAAO,EAAE,aAAa,EAAC,YAAY,EAAC,gBAAgB,EAAC,YAAY,EAAE,YAAY;YAC/G,cAAc,EAAC,aAAa,EAAC,KAAK,EAAC,WAAW,EAAC,WAAW,EAAC,aAAa,EAAC,aAAa,EAAC,eAAe,CAAC,CAAC;QAGpH,oCAA+B,GAAU,CAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAC,cAAc,EAAC,aAAa,EAAC,cAAc,EAAC,cAAc,EAAC,cAAc,EAAC,KAAK,EAAC,cAAc,EAAC,WAAW,EAAC,cAAc,EAAC,WAAW,EAAC,cAAc,EAAC,aAAa,CAAC,CAAC;QAEzP,yCAAoC,GAAU,CAAE,aAAa,EAAC,cAAc,EAAC,aAAa,EAAC,cAAc,EAAC,KAAK,EAAC,WAAW,EAAC,WAAW,EAAC,aAAa,CAAC,CAAC;QAKzJ,IAAI,CAAC,UAAU,GAAG,IAAI,qDAAS,CAAC;YAC9B,mBAAmB,EAAC,IAAI,uDAAW,CAAC,EAAE,EAAE,+DAAmB,CAAC;SAC7D,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,qDAAS,CAAC;YAC/B,gBAAgB,EAAC,IAAI,uDAAW,CAAC,EAAE,CAAC;SACrC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,GAAG,IAAI,qDAAS,CAAC;YAC/B,gBAAgB,EAAC,IAAI,uDAAW,CAAC,EAAE,CAAC;SACrC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,qDAAS,CAAC;YAC9B,eAAe,EAAC,IAAI,uDAAW,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,qDAAS,CAAC;YAC3B,YAAY,EAAC,IAAI,uDAAW,CAAC,EAAE,CAAC;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,qDAAS,CAAC;YAC9B,eAAe,EAAC,IAAI,uDAAW,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,qDAAS,CAAC;YACjC,kBAAkB,EAAC,IAAI,uDAAW,CAAC,EAAE,CAAC;YACtC,gBAAgB,EAAC,IAAI,uDAAW,CAAC,EAAE,CAAC;SACrC,CAAC,CAAC;IACL,CAAC;IAID,QAAQ;;QACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,2BAA2B;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEzC,UAAI,CAAC,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,0CAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAG,IAAI,CAAC,IAAI,IAAE,KAAK,EACnB;YACE,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;IAIH,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YACxD,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC;QACtB,CAAC,CAAC,CAAC;IACN,CAAC;IACD,0BAA0B;QACxB,IAAI,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YACjE,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC;QACtB,CAAC,CAAC,CAAC;IACN,CAAC;IACD,cAAc,CAAC,QAAQ;QAErB,QAAQ,CAAC;QACT,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YACrF,IAAI,CAAC,MAAM,GAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;YACrD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAC,IAAI,uEAAkB,EAAc,CAAC;YAC3D,IAAI,CAAC,qBAAqB,GAAC,IAAI,uEAAkB,EAAc,CAAC;YAChE,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAE,IAAI,CAAC,SAAS,CAAC;QACjD,CAAC,CAAC,CAAC;IAEJ,CAAC;IACD,eAAe,CAAC,SAAS;QAEvB,IAAI,CAAC,iBAAiB,GAAE,SAAS,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,GAAC,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAC,IAAI,uEAAkB,EAAc,CAAC;QAC3D,IAAI,CAAC,qBAAqB,GAAC,IAAI,uEAAkB,EAAc,CAAC;QAChE,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAE,IAAI,CAAC,SAAS,CAAC;QAChD,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IACD,WAAW,CAAC,KAAK;QACf,IAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YAC1E,QAAQ,CAAC;YACT,IAAI,CAAC,cAAc,GAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC1E,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,GAAC,IAAI,uEAAkB,EAAc,CAAC;YAC3D,IAAI,CAAC,qBAAqB,GAAC,IAAI,uEAAkB,EAAc,CAAC;YAChE,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAE,IAAI,CAAC,SAAS,CAAC;QACjD,CAAC,CAAC,CAAC;IACN,CAAC;IACD,cAAc,CAAC,QAAQ;QAErB,IAAI,CAAC,gBAAgB,GAAC,IAAI,uEAAkB,EAAc,CAAC;QAC3D,IAAI,CAAC,qBAAqB,GAAC,IAAI,uEAAkB,EAAc,CAAC;QAChE,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAE,IAAI,CAAC,SAAS,CAAC;IAClD,CAAC;IACD,gBAAgB,CAAC,SAAS;QACxB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YAChE,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC;QACrB,CAAC,CAAC,CAAC;IACN,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YACxD,IAAI,CAAC,kBAAkB,GAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;IACN,CAAC;IACD,qBAAqB;QACnB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YACzF,IAAI,CAAC,gBAAgB,GAAC,IAAI,uEAAkB,CAAa,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,qBAAqB,GAAC,IAAI,uEAAkB,CAAa,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAE,IAAI,CAAC,SAAS,CAAC;YAChD,IAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,GAAE,CAAC,EAAC;gBAC/C,IAAI,CAAC,YAAY,GAAE,IAAI,CAAC;aACxB;QACF,CAAC,CAAC,CAAC;IACL,CAAC;IACD,YAAY;QACV,IAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,iBAAiB,EAAC;YAC1C,IAAI,CAAC,cAAc,CAAC,2BAA2B,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;YAC9E,OAAO;SACR;QAED,IAAI,CAAC,uBAAuB,CAAC,UAAU,GAAC,IAAI,CAAC,cAAc,CAAC;QAC5D,IAAI,CAAC,uBAAuB,CAAC,SAAS,GAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,IAAE,EAAE,EAAC,EAAC,EAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAClI,IAAI,CAAC,uBAAuB,CAAC,QAAQ,GAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClI,IAAI,CAAC,uBAAuB,CAAC,SAAS,GAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,gBAAgB,IAAE,IAAI,EAAC,GAAE,EAAC,KAAI,CAAC,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACpI,IAAI,CAAC,uBAAuB,CAAC,OAAO,GAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,IAAE,IAAI,EAAC,GAAE,EAAC,KAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC;QAC9H,IAAI,CAAC,uBAAuB,CAAC,KAAK,GAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,IAAE,EAAE,EAAC,EAAC,EAAC,OAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7G,IAAI,CAAC,uBAAuB,CAAC,aAAa,GAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,IAAE,EAAE,EAAC,EAAC,EAAC,OAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACjI,IAAI,CAAC,uBAAuB,CAAC,SAAS,GAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,IAAE,EAAE,EAAC,EAAC,EAAC,OAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACjI,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IACD,YAAY,CAAC,OAAO;QAClB,IAAI,KAAK,GAAE,OAAO,CAAC,YAAY,GAAC,GAAG,GAAC,OAAO,CAAC,YAAY,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAS,EAAC,EAAE;YAC5D,IAAI,OAAO,GAAE,KAAK,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB,CAAC,MAAW;QAC9B,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;QAC/B,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACxC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,QAAQ,CAAC,KAAU,EAAE,IAAY;QAC/B,IAAI,KAAK,GAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,uCAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;IACC,SAAS;QACP,IAAI,CAAC,WAAW,GAAC,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,GAAC,EAAE,CAAC;QACzB,IAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAE,IAAI,EAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,SAAS,CAAC;SACrC;QACD,IAAG,IAAI,CAAC,WAAW,CAAC,KAAK,IAAE,IAAI,EAAC;YAChC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,SAAS,CAAC;SACpC;QACD,IAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAE,IAAI,EAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,SAAS,CAAC;SACnC;QACD,IAAG,IAAI,CAAC,aAAa,CAAC,KAAK,IAAE,IAAI,EAAC;YAChC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,SAAS,CAAC;SACtC;QACD,IAAI,CAAC,YAAY,GAAC,KAAK,CAAC;QAGxB,IAAG,IAAI,CAAC,WAAW,CAAC,KAAK,IAAE,IAAI,EAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,SAAS,CAAC;SACpC;QAED,IAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAE,IAAI,EAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;SAChC;QACD,IAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAE,IAAI,EAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,SAAS,CAAC;SACnC;IAEb,CAAC;IACD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;YAClC,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,QAAQ;YAC5B,UAAU,EAAE,CAAC,KAAK,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAChE,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACvE,CAAC;IACC,cAAc,CAAC,IAAS;QACtB,QAAQ,CAAC;QACT,IAAG,IAAI,IAAE,SAAS,IAAI,IAAI,IAAE,UAAU,EAAC;YACrC,IAAI,CAAC,0BAA0B,EAAE,CAAC;SACnC;aAAI;YACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;QACD,IAAI,CAAC,YAAY,GAAC,KAAK,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAC,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAG,IAAI,CAAC,WAAW,CAAC,KAAK,IAAE,IAAI,EAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,SAAS,CAAC;SACpC;QACD,IAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAE,IAAI,EAAC;YAC/B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,SAAS,CAAC;SACnC;QACD,IAAG,IAAI,CAAC,aAAa,CAAC,KAAK,IAAE,IAAI,EAAC;YAChC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,SAAS,CAAC;SACtC;QACH,IAAG,IAAI,CAAC,WAAW,CAAC,KAAK,IAAG,IAAI,EAC9B;YACA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,SAAS,CAAC;SACpC;QACH,IAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAG,IAAI,EACxB;YACA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;SAChC;QACL,IAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAG,IAAI,EACzB;YACA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,SAAS,CAAC;SACnC;IACX,CAAC;IACD,WAAW,CAAC,eAAe;QACzB,MAAM,YAAY,GAAE;YAClB,IAAI,EAAC;gBACH,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,UAAU;aACjB;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,QAAQ;gBACpB,QAAQ,EAAE,GAAG,EAAE,wBAAwB;aACxC;YACD,MAAM,EAAE;gBACN,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM;oBACb,KAAK,EAAE,QAAQ;iBAChB;gBACD,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM;oBACb,KAAK,EAAE,QAAQ;iBAChB;gBACD,GAAG,EAAE;oBACH,KAAK,EAAE,MAAM;oBACb,KAAK,EAAE,QAAQ;iBAChB;gBACD,IAAI,EAAE;oBACJ,KAAK,EAAE,MAAM;oBACb,KAAK,EAAE,QAAQ;iBAChB;aACF;SACF;QACD,IAAG,IAAI,CAAC,cAAc,IAAE,SAAS,EAAC;YAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YACtD,MAAM,SAAS,GAAkB,+DAAyB,CAAC,KAAK,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,6DAAuB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACvD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC3C,IAAI,OAAO,GAAG,2DAAqB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,iCAAiC;gBAC/E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;oBAAE,SAAS;gBAClC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aAC3D;YACD,SAAS,CAAC,OAAO,CAAC,GAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC;gBAC9H,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC;aAC9E,CAAC;YACF,SAAS,CAAC,OAAO,CAAC,GAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,IAAI,SAAS,EAAE;gBACzB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAE,YAAY,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAE,YAAY;gBAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY,CAAC;gBAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,QAAQ;oBAAE,SAAS;gBAE9C,IAAI,IAAI,GAAG,4DAAsB,CAAC,CAAC,CAAC,CAAC;gBACrC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;oBACf,GAAG,EAAE,EAAE;oBACP,wBAAwB;oBACxB,IAAI,EAAE;wBACJ,IAAI,EAAE,UAAU;qBACjB;oBACD,SAAS,EAAE;wBACT,QAAQ,EAAE,QAAQ;wBAClB,UAAU,EAAE,QAAQ;wBACpB,QAAQ,EAAE,GAAG,EAAE,wBAAwB;qBACxC;oBACD,MAAM,EAAE;wBACN,KAAK,EAAE;4BACL,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;wBACD,MAAM,EAAE;4BACN,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;wBACD,GAAG,EAAE;4BACH,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;wBACD,IAAI,EAAE;4BACJ,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;qBACF;iBACF,CAAC;aACD;YAED,MAAM,QAAQ,GAAiB,yDAAmB,EAAE,CAAC;YACnD,kEAA4B,CAAC,QAAQ,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;YACrE,oDAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,GAAC,WAAW,GAAC,IAAI,IAAI,EAAE,GAAC,OAAO,CAAC,CAAC;SAChF;aACI,IAAG,IAAI,CAAC,cAAc,IAAE,SAAS,EAAE;YACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YACtD,MAAM,SAAS,GAAkB,+DAAyB,CAAC,KAAK,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,6DAAuB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACvD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC3C,IAAI,OAAO,GAAG,2DAAqB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,iCAAiC;gBAC/E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;oBAAE,SAAS;gBAClC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aAC3D;YACD,SAAS,CAAC,OAAO,CAAC,GAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,CAAC,CAAC;YAC9I,SAAS,CAAC,OAAO,CAAC,GAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,IAAI,SAAS,EAAE;gBACvB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAE,YAAY,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAE,YAAY;gBAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY,CAAC;gBAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,QAAQ;oBAAE,SAAS;gBAE9C,IAAI,IAAI,GAAG,4DAAsB,CAAC,CAAC,CAAC,CAAC;gBACrC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;oBACf,GAAG,EAAE,EAAE;oBACP,wBAAwB;oBACxB,IAAI,EAAE;wBACJ,IAAI,EAAE,UAAU;qBACjB;oBACD,SAAS,EAAE;wBACT,QAAQ,EAAE,QAAQ;wBAClB,UAAU,EAAE,QAAQ;wBACpB,QAAQ,EAAE,GAAG,EAAE,wBAAwB;qBACxC;oBACD,MAAM,EAAE;wBACN,KAAK,EAAE;4BACL,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;wBACD,MAAM,EAAE;4BACN,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;wBACD,GAAG,EAAE;4BACH,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;wBACD,IAAI,EAAE;4BACJ,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;qBACF;iBACF,CAAC;aACD;YACH,MAAM,QAAQ,GAAiB,yDAAmB,EAAE,CAAC;YACnD,kEAA4B,CAAC,QAAQ,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;YACrE,oDAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,GAAC,WAAW,GAAC,IAAI,IAAI,EAAE,GAAC,OAAO,CAAC,CAAC;SAChF;aACI,IAAG,IAAI,CAAC,cAAc,IAAE,UAAU,EAAC;YACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YACvD,MAAM,SAAS,GAAkB,+DAAyB,CAAC,KAAK,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,6DAAuB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACvD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC3C,IAAI,OAAO,GAAG,2DAAqB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,iCAAiC;gBAC/E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;oBAAE,SAAS;gBAClC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aAC3D;YACD,SAAS,CAAC,OAAO,CAAC,GAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,CAAC,CAAC;YAC/K,SAAS,CAAC,OAAO,CAAC,GAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,IAAI,SAAS,EAAE;gBACvB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAE,YAAY,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAE,YAAY;gBAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY,CAAC;gBAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,QAAQ;oBAAE,SAAS;gBAE9C,IAAI,IAAI,GAAG,4DAAsB,CAAC,CAAC,CAAC,CAAC;gBACrC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;oBACf,GAAG,EAAE,EAAE;oBACP,wBAAwB;oBACxB,IAAI,EAAE;wBACJ,IAAI,EAAE,UAAU;qBACjB;oBACD,SAAS,EAAE;wBACT,QAAQ,EAAE,QAAQ;wBAClB,UAAU,EAAE,QAAQ;wBACpB,QAAQ,EAAE,GAAG,EAAE,wBAAwB;qBACxC;oBACD,MAAM,EAAE;wBACN,KAAK,EAAE;4BACL,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;wBACD,MAAM,EAAE;4BACN,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;wBACD,GAAG,EAAE;4BACH,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;wBACD,IAAI,EAAE;4BACJ,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;qBACF;iBACF,CAAC;aACD;YACH,MAAM,QAAQ,GAAiB,yDAAmB,EAAE,CAAC;YACnD,kEAA4B,CAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;YACtE,oDAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,GAAC,WAAW,GAAC,IAAI,IAAI,EAAE,GAAC,OAAO,CAAC,CAAC;SAChF;aACI,IAAG,IAAI,CAAC,cAAc,IAAE,iBAAiB,EAAC;YAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;YAC9D,MAAM,SAAS,GAAkB,+DAAyB,CAAC,KAAK,CAAC,CAAC;YAClE,IAAI,KAAK,GAAG,6DAAuB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACvD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC3C,IAAI,OAAO,GAAG,2DAAqB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,iCAAiC;gBAC/E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;oBAAE,SAAS;gBAClC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aAC3D;YACD,SAAS,CAAC,OAAO,CAAC,GAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,CAAC,CAAC;YACzJ,SAAS,CAAC,OAAO,CAAC,GAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,IAAI,SAAS,EAAE;gBACvB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAE,YAAY,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAE,YAAY;gBAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY,CAAC;gBAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,YAAY;gBAE9B,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,QAAQ;oBAAE,SAAS;gBAE9C,IAAI,IAAI,GAAG,4DAAsB,CAAC,CAAC,CAAC,CAAC;gBACrC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;oBACf,GAAG,EAAE,EAAE;oBACP,wBAAwB;oBACxB,IAAI,EAAE;wBACJ,IAAI,EAAE,UAAU;qBACjB;oBACD,SAAS,EAAE;wBACT,QAAQ,EAAE,QAAQ;wBAClB,UAAU,EAAE,QAAQ;wBACpB,QAAQ,EAAE,GAAG,EAAE,wBAAwB;qBACxC;oBACD,MAAM,EAAE;wBACN,KAAK,EAAE;4BACL,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;wBACD,MAAM,EAAE;4BACN,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;wBACD,GAAG,EAAE;4BACH,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;wBACD,IAAI,EAAE;4BACJ,KAAK,EAAE,MAAM;4BACb,KAAK,EAAE,QAAQ;yBAChB;qBACF;iBACF,CAAC;aACD;YACH,MAAM,QAAQ,GAAiB,yDAAmB,EAAE,CAAC;YACnD,kEAA4B,CAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;YACtE,oDAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,GAAC,WAAW,GAAC,IAAI,IAAI,EAAE,GAAC,OAAO,CAAC,CAAC;SAChF;IACH,CAAC;;4FAvkBU,sBAAsB;oHAAtB,sBAAsB;kEA8EtB,2DAAO;kEACP,qEAAY;;;;;;QC1KzB,8EAA8B;QAE5B,wEAAkE;QAAA,kEAAO;QAAA,4DAAK;QAE9E,yEAAiB;QACf,yEAAwC;QACtC,0EAAoD;QAClD,oFAAyF;QACvF,+EAA0C;QAAA,sEAAW;QAAA,4DAAY;QACjE,gFAAiJ;QAAjD,4KAAmB,gCAA4B,IAAC;QAC9I,kIAA6G;QAC7G,kIAA6G;QAC7G,mIAA+G;QAC/G,kFAAqE;QAAA,oFAAwB;QAAA,4DAAa;QAC5G,4DAAa;QACf,4DAAiB;QACnB,4DAAO;QACT,4DAAM;QAEN,qHAUM;QACN,qHASM;QAEN,sHAaM;QAGN,qHAUM;QACR,4DAAM;QACN,qHAsBM;QAIN,2EAAwB;QACtB,2EAAuD;QACvD,8EACe;QADuD,+IAAS,kBAAc,IAAC;QAC/E,2EAAe;QAAA,4DAAS;QACvC,8EAAgF;QAAtB,+IAAS,eAAW,IAAC;QAAC,iEAAK;QAAA,4DAAS;QAC9F,4DAAM;QACR,4DAAM;QACR,4DAAW;QACX,iEAAI;QACF,4EAAU;QACR,0EAAiB;QACf,2EAAsB;QACpB,sFAAsC;QAEpC,gFAA0C;QAAA,mEAAO;QAAA,4DAAY;QAC7D,iFAA6H;QAA9E,oJAAS,uBAAmB,IAAC;QAA5E,4DAA6H;QAC/H,4DAAiB;QACnB,4DAAM;QACN,sEAA4B;QAC5B,sEAA4B;QAC5B,sEAA8B;QAC9B,+HAAyI;QAC3I,4DAAM;QACN,sHAgGM;QACN,sHAmEM;QACN,sHA+EM;QAEN,sHAsDM;QAKN,uEAAK;QACH,gFAAgK;QAElK,4DAAM;QACN,2EAAoD;QAClD,6EAAgJ;QAG9I,6EAAmC;QACjC,mHAA4E;QAC5E,mHAAuF;QACzF,qEAAe;QAEf,6EAAmF;QACjF,mHAAmF;QACnF,mHAA+J;QACjK,qEAAe;QAEf,6EAAkF;QAChF,mHAAwF;QACxF,mHAA8J;QAChK,qEAAe;QAEf,6EAAyC;QACvC,mHAAoF;QACpF,mHAA+F;QACjG,qEAAe;QAEf,6EAAgF;QAC9E,mHAAmF;QACnF,mHAAgK;QAClK,qEAAe;QAEf,6EAAsF;QACpF,mHAAuF;QACvF,mHAA6J;QAC/J,qEAAe;QACf,6EAAuC;QACrC,mHAAiF;QACjF,mHAA2F;QAC7F,qEAAe;QACf,6EAAyC;QACvC,mHAAmF;QACnF,mHAA6F;QAC/F,qEAAe;QACf,6EAAwC;QACtC,mHAAkF;QAClF,mHAAkG;QACpG,qEAAe;QAEf,6EAAqC;QACnC,mHAAgF;QAChF,mHAAyF;QAC3F,qEAAe;QAEf,6EAA2C;QACzC,mHAAqF;QACrF,mHAA8F;QAChG,qEAAe;QAEf,6EAAwC;QACtC,mHAAmF;QACnF,mHAA4F;QAC9F,qEAAe;QACf,6EAAkF;QAChF,mHAAkF;QAClF,mHAA6J;QAC/J,qEAAe;QACf,6EAAwC;QACtC,mHAAkF;QAClF,mHAA4F;QAC9F,qEAAe;QACf,6EAAkC;QAChC,mHAA4E;QAC5E,mHAAiG;QACnG,qEAAe;QACf,6EAAoC;QAClC,mHAA8E;QAC9E,mHAAmG;QACrG,qEAAe;QAEf,6EAAoC;QAClC,mHAA6E;QAC7E,mHAAwF;QAC1F,qEAAe;QAEf,6EAAqC;QACnC,mHAAwE;QACxE,qHAA8E;QAC9E,qHAEK;QACP,qEAAe;QAEjB,4DAAQ;QACV,4DAAM;QACN,4EAAoD;QAClD,8EAAgJ;QAG9I,8EAAmC;QACjC,qHAA4E;QAC5E,qHAAuF;QACzF,qEAAe;QAEf,8EAAmF;QACjF,qHAAmF;QACnF,qHAA+J;QACjK,qEAAe;QAEf,8EAAkF;QAChF,qHAAwF;QACxF,qHAA6J;QAC/J,qEAAe;QACf,8EAAkF;QAChF,qHAAkF;QAClF,qHAA6J;QAC/J,qEAAe;QACf,8EAAwC;QACtC,qHAAkF;QAClF,qHAA4F;QAC9F,qEAAe;QACf,8EAAkC;QAChC,qHAA4E;QAC5E,qHAAiG;QACnG,qEAAe;QACf,8EAAoC;QAClC,qHAA8E;QAC9E,qHAAmG;QACrG,qEAAe;QACf,8EAAuC;QACrC,qHAAgF;QAChF,qHAA2F;QAC7F,qEAAe;QACf,8EAAyC;QACvC,qHAAmF;QACnF,qHAA6F;QAC/F,qEAAe;QACf,8EAA2C;QACzC,qHAAqF;QACrF,qHAA+F;QACjG,qEAAe;QACf,8EAA0C;QACxC,qHAA4F;QAC5F,qHAA8F;QAChG,qEAAe;QACf,8EAA0C;QACxC,qHAAqE;QACrE,qHAA0F;QAC5F,qEAAe;QAGf,8EAAqC;QACnC,qHAAwE;QACxE,qHAA8E;QAC9E,qHAEK;QACP,qEAAe;QAEjB,4DAAQ;QAEZ,4DAAM;QAGL,4EAAoD;QACrD,8EAAiJ;QAG/I,8EAAmC;QACjC,qHAA4E;QAC5E,qHAAuF;QACzF,qEAAe;QAEf,8EAAkF;QAChF,qHAAmF;QACnF,qHAA+J;QACjK,qEAAe;QAEf,8EAAiF;QAC/E,qHAAwF;QACxF,qHAA6J;QAC/J,qEAAe;QAEf,8EAAqF;QACnF,qHAAuF;QACvF,qHAA4J;QAC9J,qEAAe;QAEf,8EAAiF;QAC/E,qHAAkF;QAClF,qHAA6J;QAC/J,qEAAe;QACf,8EAAwC;QACtC,qHAAkF;QAClF,qHAA4F;QAC9F,qEAAe;QACf,8EAA0C;QACxC,qHAAmF;QACnF,qHAA8F;QAChG,qEAAe;QACf,8EAAyC;QACvC,qHAAmF;QACnF,qHAA6F;QAC/F,qEAAe;QACf,8EAAiC;QAC/B,qHAA0E;QAC1E,qHAAqF;QACvF,qEAAe;QACf,8EAAuC;QACrC,qHAAiF;QACjF,qHAA2F;QAC7F,qEAAe;QACf,8EAAuC;QACrC,qHAAiF;QACjF,qHAA2F;QAC7F,qEAAe;QACf,8EAAyC;QACvC,qHAAmF;QACnF,qHAA6F;QAC/F,qEAAe;QACf,8EAAyC;QACvC,qHAAmF;QACnF,qHAA6F;QAC/F,qEAAe;QACf,8EAA2C;QACzC,qHAAqF;QACrF,qHAA+F;QACjG,qEAAe;QACf,8EAA0C;QACxC,qHAAqE;QACrE,qHAA0F;QAC5F,qEAAe;QAGf,8EAAqC;QACnC,qHAAyE;QACzE,qHAA+E;QAC/E,qHAEK;QACP,qEAAe;QAEjB,4DAAQ;QACV,4DAAM;QAON,4EAAoD;QAClD,8EAAwJ;QACtJ,8EAAyC;QACvC,qHAAiF;QACjF,qHAA6F;QAC/F,qEAAe;QACd,8EAA0C;QACrC,qHAAmF;QACnF,qHAA8F;QAChG,qEAAe;QACf,8EAAyC;QACvC,qHAAmF;QACnF,qHAA6F;QAC/F,qEAAe;QACf,8EAA0C;QACxC,qHAAoF;QACpF,qHAA8F;QAChG,qEAAe;QACf,8EAAiC;QAC/B,qHAA0E;QAC1E,qHAAqF;QACvF,qEAAe;QACf,8EAAuC;QACrC,qHAAiF;QACjF,qHAA2F;QAC7F,qEAAe;QAEf,8EAAuC;QACrC,qHAAiF;QACjF,qHAA2F;QAC7F,qEAAe;QACf,8EAAyC;QACvC,qHAAmF;QACnF,qHAA6F;QAC/F,qEAAe;QAEnB,8EAA0C;QACxC,qHAAqE;QACrE,qHAA0F;QAC5F,qEAAe;QAGf,8EAAqC;QACnC,qHAAgF;QAChF,qHAAsF;QACtF,qHAEK;QACP,qEAAe;QAEjB,4DAAQ;QACV,4DAAM;QAIJ,4DAAW;;QAntBoB,0DAAwB;QAAxB,qFAAwB;QAIe,0DAAmB;QAAnB,oFAAmB;QACnB,0DAAmB;QAAnB,oFAAmB;QAClB,0DAAmB;QAAnB,oFAAmB;QAO9C,0DAAyC;QAAzC,yGAAyC;QAW1C,0DAAyC;QAAzC,yGAAyC;QAWzC,0DAAiC;QAAjC,iGAAiC;QAgBhC,0DAAyC;QAAzC,yGAAyC;QAYnE,0DAAkC;QAAlC,kGAAkC;QAyCuD,2DAAyB;QAAzB,oFAAyB;QAM/F,0DAAkB;QAAlB,kFAAkB;QAEvB,0DAAiC;QAAjC,iGAAiC;QAiGjC,0DAAiC;QAAjC,iGAAiC;QAoEjC,0DAAkC;QAAlC,kGAAkC;QAiFlC,0DAAyC;QAAzC,yGAAyC;QA4DvB,0DAAoC;QAApC,mJAAoC;QAI/C,0DAAoC;QAApC,iGAAoC;QAkF/C,2DAA6C;QAA7C,6GAA6C;QAChC,0DAAsC;QAAtC,8GAAsC;QASxC,0DAAoC;QAApC,iGAAoC;QAwD/C,2DAA6C;QAA7C,6GAA6C;QAChC,0DAAsC;QAAtC,8GAAsC;QAY3C,0DAAoC;QAApC,iGAAoC;QAsEhD,2DAA8C;QAA9C,8GAA8C;QACjC,0DAAuC;QAAvC,+GAAuC;QAejC,0DAAoC;QAApC,iGAAoC;QA0CvD,2DAAqD;QAArD,qHAAqD;QACxC,0DAA8C;QAA9C,sHAA8C;;;;;;;;;;;;;;;;;;;;;;AC7sBQ;AAGlC;AACpB;;;;AAMhC,MAAM,kBAAkB;IAI7B,YAAoB,IAAgB,EAAU,SAAsB;QAAhD,SAAI,GAAJ,IAAI,CAAY;QAAU,cAAS,GAAT,SAAS,CAAa;QAHpE,cAAS,GAAG,+EAAqB;QACjC,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QAqB9C,yBAAoB,GAAG,IAAI,iDAAe,CAAS,IAAI,CAAC,CAAC;QACjE,mBAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;IArBc,CAAC;IACzE,yBAAyB,CAAC,OAAoB;QAC5C,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,QAAQ,CAAC,QAAa,EAAE,QAAa;QACnC,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YACxB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;QACH,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,aAAa,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,WAAW,CAAC,IAAI;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,qCAAqC,GAAG,IAAI,CAAC,CAAC;IACtF,CAAC;IACD,eAAe,CAAC,IAAI;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,oCAAoC,GAAG,IAAI,CAAC,CAAC;IACrF,CAAC;IAKD,gBAAgB,CAAC,KAAa;QAC5B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,WAAW,CAAC,KAAS;QAEnB,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC;YAC9B,cAAc,EAAE,kBAAkB;SACpC,CAAC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,+BAA+B,GAAE,KAAK,EAAG,EAAC,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC;IACxG,CAAC;IAID,YAAY,CAAC,IAAS,EAAC,KAAU;QAE/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAC,OAAO,EAAE;YAChC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;YAClB,UAAU,EAAE,CAAC,KAAK,CAAC;SACtB,CAAC,CAAC;IACH,CAAC;;oFAjDU,kBAAkB;mHAAlB,kBAAkB,WAAlB,kBAAkB,mBADL,MAAM;;;;;;;;;;;;;;;;;;;;ACTgD;AAIrB;;;;AAKpD,MAAM,cAAc;IAGzB,YAAoB,IAAgB,EAAS,QAAqB;QAA9C,SAAI,GAAJ,IAAI,CAAY;QAAS,aAAQ,GAAR,QAAQ,CAAa;QAFlE,sCAAsC;QACtC,YAAO,GAAG,+EAAqB,CAAC;IACsC,CAAC;IAEvE,WAAW,CAAC,IAAiB;QAC3B,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,2FAA2F;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,yBAAyB,EAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IACD,UAAU,CAAC,UAAU,EAAC,EAAE;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,8CAA8C,GAAE,UAAU,GAAC,MAAM,GAAC,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,wBAAwB,CAAC,eAAe;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,uDAAuD,GAAC,eAAe,CAAC,CAAC;IAE/G,CAAC;IACD,qBAAqB,CAAC,WAAgB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,mCAAmC,EAAC,WAAW,EAAC,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC,CAAC;IAC9G,CAAC;IACD,uBAAuB,CAAC,EAAS;QAC/B,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,2FAA2F;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,yCAAyC,GAAG,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,cAAc,CAAC,IAAI,EAAC,QAAQ;QAE3B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YAC5B,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAC,IAAI,CAAC,CAAC,CAAC,EAAG,QAAQ,GAAC,GAAG,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACjE;QACD,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,iCAAiC,EAAE,QAAQ,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;IACxG,CAAC;IACD,aAAa,CAAC,IAAQ;QAEtB,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,2CAA2C,GAAE,IAAI,EAAG,EAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,EAAC,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;IAE3J,CAAC;IACD,gBAAgB,CAAC,IAAQ;QAEzB,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,8CAA8C,GAAE,IAAI,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,EAAC,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC,CAAC;IAEvI,CAAC;IAGH,uGAAuG;IAEvG,eAAe,CAAC,UAAU,EAAC,EAAE,EAAC,iBAAiB;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,mDAAmD,GAAE,UAAU,GAAC,MAAM,GAAC,EAAE,GAAC,qBAAqB,GAAC,iBAAiB,CAAC,CAAC;IACzJ,CAAC;;4EA1DY,cAAc;+GAAd,cAAc,WAAd,cAAc,mBAFb,MAAM;;;;;;;;;;;;;;;;;;;;ACP4D;AAKrB;;;;AAMpD,MAAM,cAAc;IAGzB,YAAoB,IAAgB,EAAS,QAAqB;QAA9C,SAAI,GAAJ,IAAI,CAAY;QAAS,aAAQ,GAAR,QAAQ,CAAa;QAFlE,sCAAsC;QACtC,YAAO,GAAG,+EAAqB,CAAC;IACsC,CAAC;IAEvE,kBAAkB,CAAC,OAA0B;QAC3C,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,yBAAyB,EAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;IACD,kBAAkB,CAAC,SAAS,EAAC,QAAQ;QACnC,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,2CAA2C,GAAC,SAAS,GAAC,YAAY,GAAC,QAAQ,CAAC,CAAC;IAEnH,CAAC;IACD,iBAAiB,CAAC,SAAS,EAAC,QAAQ;QAClC,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,0CAA0C,GAAC,SAAS,GAAC,YAAY,GAAC,QAAQ,CAAC,CAAC;IAElH,CAAC;IACD,wBAAwB,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE;QACxC,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,0CAA0C,GAAE,EAAE,GAAG,SAAS,GAAC,KAAK,GAAC,YAAY,GAAC,QAAQ,CAAC,CAAC;IAE9H,CAAC;IACD,kCAAkC,CAAC,SAAS,EAAC,QAAQ,EAAE,EAAE;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,oDAAoD,GAAE,SAAS,GAAC,MAAM,GAAC,EAAE,GAAE,YAAY,GAAC,QAAQ,CAAC,CAAC;IACxI,CAAC;IACD,oBAAoB,CAAC,IAAQ;QAE7B,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,2CAA2C,GAAE,IAAI,EAAG,EAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,EAAC,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;IAE3J,CAAC;IACD,cAAc,CAAC,IAAI,EAAC,QAAQ;QAE1B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC9B,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAC,IAAI,EAAG,QAAQ,GAAC,GAAG,GAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,iCAAiC,EAAE,QAAQ,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;IACxG,CAAC;IACD,wBAAwB,CAAC,WAAgB;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,sCAAsC,EAAC,WAAW,EAAC,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC,CAAC;IACjH,CAAC;;4EAhDU,cAAc;+GAAd,cAAc,WAAd,cAAc,mBAFb,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;ACT+F;AACW;AAOhG;AAG+B;;;;;;AAStD,MAAM,kBAAkB;IAI7B,YAA+C,eAAuC,EAAU,cAA8B;IAE9H,qBAAqB;IAEb,SAAsB,EAAU,MAAuB,EAAS,WAAwB;QAJjD,oBAAe,GAAf,eAAe,CAAwB;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAItH,cAAS,GAAT,SAAS,CAAa;QAAU,WAAM,GAAN,MAAM,CAAiB;QAAS,gBAAW,GAAX,WAAW,CAAa;QAPhG,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QASpD,qBAAqB;QACrB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAChD,IAAG,GAAG,EACJ;gBACI,IAAI,CAAC,KAAK,GAAI,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAEnD,IAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EACvE;oBAEE,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBACvC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;oBACtC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;oBACtC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACpC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAClC,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBACxC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACpC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBACvC,cAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;oBAC7C,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBACxC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBACvC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBAGnC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACzB,IAAI,IAAI,CAAC,eAAe,CAAC,eAAe,KAAK,sEAAqB,EAAE;wBAClE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;4BAC3B,qBAAqB,EAAE,GAAG;4BAC1B,qBAAqB,EAAE,GAAG;yBAC3B,CAAC,CAAC;qBACJ;yBAAM;wBACL,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;4BAC9B,qBAAqB,EAAE,GAAG;yBAC3B,CAAC,CAAC;qBACJ;oBAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,2CAA2C,EAAC,OAAO,EAAE;wBACvE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;wBAClB,UAAU,EAAE,CAAC,cAAc,CAAC;qBAC7B,CAAC,CAAC;oBACH,UAAU,CAAC,GAAG,EAAE;wBACd,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;iBACb;qBAED;oBAGE,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBACvC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;oBACtC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;oBACtC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACpC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAClC,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBACxC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACpC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBACvC,cAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;oBAC7C,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBACxC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBACvC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBAI/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4CAA4C,EAAC,OAAO,EAAE;wBACxE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;wBAClB,UAAU,EAAE,CAAC,cAAc,CAAC;qBAC/B,CAAC,CAAC;oBACD,UAAU,CAAC,GAAG,EAAE;wBACd,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;iBACjB;aACN;QACH,CAAC,CAAC;QACJ,mBAAmB;IAEnB,CAAC;IACH,mBAAmB;IAEnB,qBAAqB;IACnB,SAAS,CAAC,GAAqB,EAAE,IAAiB;QAChD,IAAI,UAA6B,CAAC;QAClC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,IAAI,eAAe,GAAI,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAE7B,qBAAqB;QACzB,IAAG,eAAe,IAAI,IAAI,EAAC;YACrB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,KAAK,CAAC,EAAE;gBACvC,IAAI,KAAK,YAAY,8DAAY,IAAI,UAAU,EAAE;oBAC/C,UAAU,CAAC,KAAK,EAAE,CAAC;iBACpB;YACH,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,0DAAU,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC1B,IAAI,UAAU,EAAE;oBACd,UAAU,CAAC,KAAK,EAAE,CAAC;iBACpB;gBACC,MAAM,GAAG,CAAC;YAEd,CAAC,CAAC,CAAC,CAAC;SACT;aAED;YAEI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAG9B,qBAAqB;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,KAAK,CAAC,EAAE;gBACvC,IAAI,KAAK,YAAY,8DAAY,IAAI,UAAU,EAAE;oBAC/C,UAAU,CAAC,KAAK,EAAE,CAAC;iBACpB;YACH,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,0DAAU,CAAC,CAAC,GAAG,EAAE,EAAE;gBAE5B,IAAI,UAAU,EAAE;oBACd,UAAU,CAAC,KAAK,EAAE,CAAC;iBACpB;gBACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACvD,IAAI,eAAe,GAAI,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBACjE,IAAI,mBAAmB,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC;gBACpD,IAAI,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;gBAG7B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBAEjC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAGzB,IAAG,mBAAmB,GAAG,WAAW,EAAC;iBAEpC;qBACI,IAAG,mBAAmB,GAAG,WAAW,EACzC;oBAEE,IAAI,CAAC,KAAK,GAAI,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBAGnD,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBACvC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;oBACtC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;oBACtC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACpC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAClC,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBACxC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACpC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBACvC,cAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;oBAC7C,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBACxC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBACvC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBAGrC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACzB,IAAI,IAAI,CAAC,eAAe,CAAC,eAAe,KAAK,sEAAqB,EAAE;wBAClE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;4BAC3B,qBAAqB,EAAE,GAAG;4BAC1B,qBAAqB,EAAE,GAAG;yBAC3B,CAAC,CAAC;qBACJ;yBAAM;wBACL,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;4BAC9B,qBAAqB,EAAE,GAAG;yBAC3B,CAAC,CAAC;qBACJ;oBAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6CAA6C,EAAC,OAAO,EAAE;wBACzE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;wBAClB,UAAU,EAAE,CAAC,cAAc,CAAC;qBAC7B,CAAC,CAAC;oBACH,UAAU,CAAC,GAAG,EAAE;wBACd,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;iBAEX;qBACG;oBACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAC,OAAO,EAAE;wBAClD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;wBAClB,UAAU,EAAE,CAAC,cAAc,CAAC;qBAC7B,CAAC,CAAC;iBACJ;gBACC,MAAM,GAAG,CAAC;YAEd,CAAC,CAAC,CAAC,CAAC;YAER,mBAAmB;SAEpB;QACC,mBAAmB;IAEnB,CAAC;;oFAjNU,kBAAkB,yDAIT,kEAAiB;mHAJ1B,kBAAkB,WAAlB,kBAAkB;;;;;;;;;;;;;;;;;;;;;ACpB2C;AACJ;AAE8B;;;AAE7F,MAAM,iBAAiB;IAC5B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAI,CAAC;IAE/C,KAAK;QACH,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;CACF;AAGM,MAAM,cAAc;IACzB,YAAoB,QAAkB,EAAU,OAAgB;QAA5C,aAAQ,GAAR,QAAQ,CAAU;QAAU,YAAO,GAAP,OAAO,CAAS;IAChE,CAAC;IAED,IAAI;QACF,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAE3E,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,aAAa;QACnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO;aAClC,QAAQ,EAAE;aACV,MAAM,EAAE;aACR,kBAAkB,EAAE;aACpB,gBAAgB,EAAE,CAAC;QACtB,MAAM,aAAa,GAAG,IAAI,+DAAa,CAAC;YACtC,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;YACrD,gBAAgB;SACjB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IAEO,qBAAqB,CAAC,UAAsB,EAAE,SAA4B;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,eAAe,GAAG,IAAI,gEAAe,CAAC,6GAAyB,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvF,MAAM,YAAY,GAA4C,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAEjG,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,UAAe;QAC5B,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;QACrC,cAAc,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAClD,OAAO,IAAI,+DAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;;4EAvCY,cAAc;+GAAd,cAAc,WAAd,cAAc;;;;;;;;;;;;;;;;;;;;ACdkE;AAGlC;;;;AAQpD,MAAM,aAAa;IAIxB,YAAoB,IAAgB,EAAU,SAAsB;QAAhD,SAAI,GAAJ,IAAI,CAAY;QAAU,cAAS,GAAT,SAAS,CAAa;QAHpE,cAAS,GAAG,+EAAqB;QACjC,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;IACkB,CAAC;IACzE,yBAAyB,CAAC,OAAoB;QAC5C,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,QAAQ,CAAC,QAAa,EAAE,QAAa;QACnC,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YACxB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;QACH,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,aAAa,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,oGAAoG;IACpG,eAAe;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,oCAAoC,CAAC,CAAC;IAC9E,CAAC;IACD,mBAAmB;QAEjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,wCAAwC,CAAC,CAAC;IAClF,CAAC;IACD,kBAAkB;QAEhB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,uCAAuC,CAAC,CAAC;IACjF,CAAC;IACD,cAAc,CAAC,YAAgC;QAC7C,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,mCAAmC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACpH,CAAC;IACD,WAAW,CAAC,QAA4B;QACtC,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,gCAAgC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAC,YAAY,EAAC,MAAM,EAAE,CAAC,CAAC;IACjI,CAAC;IACD,iBAAiB,CAAC,YAAqC;QACrD,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,sCAAsC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,SAAS,EAAC,YAAY,EAAC,MAAM,EAAE,CAAC,CAAC;IAC3I,CAAC;IACD,cAAc,CAAC,cAAkC;QAC/C,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,mCAAmC,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACtH,CAAC;IACD,eAAe,CAAC,eAA4B;QAE1C,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,oCAAoC,EAAE,eAAe,EAAE,EAAC,OAAO,EAAE,SAAS,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC,CAAC;IAC1I,CAAC;IACD,gBAAgB,CAAC,gBAA6B;QAE5C,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,uCAAuC,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5H,CAAC;IACD,yBAAyB;QAEvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,8CAA8C,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,CAAC,MAAU;QAEf,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,2BAA2B,EAAE,MAAM,EAAE,EAAC,OAAO,EAAE,SAAS,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC,CAAC;IACxH,CAAC;IACD,OAAO,CAAC,OAAW;QAEjB,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,8BAA8B,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,kGAAkG;IAClG,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,iCAAiC,CAAC,CAAC;IAC3E,CAAC;IACD,eAAe,CAAC,SAAqB;QACnC,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,kCAAkC,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAChH,CAAC;IAED,mBAAmB,CAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,EAAE;QACtC,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAE3F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,4CAA4C,GAAE,IAAI,GAAE,QAAQ,GAAC,IAAI,GAAC,WAAW,GAAC,OAAO,GAAC,MAAM,GAAC,EAAE,EAAC,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC,CAAC;IAC/J,CAAC;IAGD,YAAY,CAAC,cAAsB;QACjC,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,+BAA+B,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAClH,CAAC;IACD,+GAA+G;IAC/G,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,kCAAkC,CAAC,CAAC;IAC5E,CAAC;IACD,aAAa,CAAC,IAAe;QAE3B,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,8BAA8B,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,UAAU,CAAC,IAAe;QAExB,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,2BAA2B,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACpG,CAAC;IACD,sBAAsB;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,wCAAwC,CAAC,CAAC;IAClF,CAAC;IACH,kGAAkG;IAChG,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,gCAAgC,CAAC,CAAC;IAC1E,CAAC;IACD,gBAAgB;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,kCAAkC,CAAC,CAAC;IAC5E,CAAC;IACD,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,mCAAmC,CAAC,CAAC;IAC7E,CAAC;IACD,qBAAqB,CAAC,KAAc;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,8CAA8C,GAAG,KAAK,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,CAAC,IAAmB;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,iCAAiC,EAAC,IAAI,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,CAAC,IAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,iCAAiC,EAAC,IAAI,CAAC,CAAC;IACjF,CAAC;IACD,aAAa,CAAC,MAAa;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,uCAAuC,GAAG,MAAM,CAAC,CAAC;IACzF,CAAC;IACF,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;QAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;YACnC,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,QAAQ;YAC5B,UAAU,EAAE,CAAC,KAAK,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;;0EAvIU,aAAa;8GAAb,aAAa,WAAb,aAAa,mBADA,MAAM;;;;;;;;;;;;;;;;;;;;ACVgD;AAKrB;;;;AAMpD,MAAM,oBAAoB;IAG/B,YAAoB,IAAgB,EAAS,QAAqB;QAA9C,SAAI,GAAJ,IAAI,CAAY;QAAS,aAAQ,GAAR,QAAQ,CAAa;QAFlE,sCAAsC;QACtC,YAAO,GAAG,+EAAqB,CAAC;IACsC,CAAC;IAEvE,QAAQ;QACN,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,qCAAqC,CAAC,CAAC;IAE7E,CAAC;IACD,aAAa,CAAC,iBAAwB;QACpC,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,6DAA6D,GAAC,iBAAiB,CAAC,CAAC;IAEvH,CAAC;IAGD,qBAAqB,CAAE,IAAqB;QAC1C,sCAAsC;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,OAAO,GAAG,kDAAkD,EAAE,IAAI,CAAC,CAAC;QACvG,0GAA0G;IAEzG,CAAC;IAED,iBAAiB,CAAC,SAAS,EAAC,iBAAiB;QAC3C,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,yDAAyD,GAAC,SAAS,GAAE,qBAAqB,GAAE,iBAAiB,CAAC,CAAC;IAErJ,CAAC;IACD,oCAAoC,CAAC,QAAQ,EAAC,QAAQ;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,2EAA2E,GAAC,QAAQ,GAAE,YAAY,GAAC,QAAQ,CAAC,CAAC;IACnJ,CAAC;IACD,WAAW,CAAC,IAAQ;QAClB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,2FAA2F;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,4CAA4C,EAAC,IAAI,CAAC,CAAC;IAC1F,CAAC;IAED,gBAAgB,CAAE,IAAqB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,OAAO,GAAG,6CAA6C,EAAE,IAAI,CAAC,CAAC;IAEjG,CAAC;IAiBD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;YAClC,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,QAAQ;YAC5B,UAAU,EAAE,CAAC,KAAK,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;;wFArEU,oBAAoB;qHAApB,oBAAoB,WAApB,oBAAoB,mBAFnB,MAAM;;;;;;;;;;;;;;;;;;;;ACT4D;AAKrB;;;;AAMpD,MAAM,cAAc;IAGzB,YAAoB,IAAgB,EAAS,QAAqB;QAA9C,SAAI,GAAJ,IAAI,CAAY;QAAS,aAAQ,GAAR,QAAQ,CAAa;QAFlE,sCAAsC;QACtC,YAAO,GAAG,+EAAqB,CAAC;IACsC,CAAC;IAEvE,QAAQ;QACN,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC,CAAC;IAE9D,CAAC;IACD,aAAa;QACX,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,2BAA2B,CAAC,CAAC;IAEnE,CAAC;IACD,WAAW,CAAC,IAAiB;QAC3B,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,2FAA2F;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,yBAAyB,EAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IACD,aAAa,CAAC,EAAS;QACnB,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,2FAA2F;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,mCAAmC,GAAG,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,YAAY,CAAC,SAAgB;QAC5B,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,2FAA2F;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,qCAAqC,GAAG,SAAS,CAAC,CAAC;IACxF,CAAC;IAGN,0CAA0C;IAC1C,iBAAiB,CAAC,IAAqB;QACrC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,2FAA2F;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,+BAA+B,EAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;IAEC,iBAAiB,CAAC,SAAS;QACzB,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,0CAA0C,GAAC,SAAS,CAAC,CAAC;IAE5F,CAAC;IAGD,gBAAgB,CAAC,SAAS,EAAE,EAAE;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,yCAAyC,GAAE,SAAS,GAAC,MAAM,GAAC,EAAE,CAAC,CAAC;IACtG,CAAC;IAGD,iBAAiB,CAAE,KAAK,EAAC,EAAE;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,mCAAmC,GAAE,EAAE,GAAG,SAAS,GAAC,KAAK,CAAC,CAAC;IACjG,CAAC;IAED,gCAAgC;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,8CAA8C,CAAC,CAAC;IACtF,CAAC;IACD,uBAAuB,CAAE,IAAuB;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,OAAO,GAAG,qCAAqC,EAAE,IAAI,CAAC,CAAC;IAEzF,CAAC;IACD,iBAAiB,CAAE,IAAqB;QACtC,sCAAsC;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,OAAO,GAAG,+BAA+B,EAAE,IAAI,CAAC,CAAC;QACpF,uFAAuF;IAEtF,CAAC;IACD,uBAAuB,CAAC,QAAQ;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,4CAA4C,GAAC,QAAQ,CAAC,CAAC;IAE7F,CAAC;IACD,iBAAiB,CAAC,WAAgB;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,+BAA+B,EAAC,WAAW,EAAC,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC,CAAC;IAC1G,CAAC;IACD,gBAAgB,CAAC,EAAS;QACxB,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,2FAA2F;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,kCAAkC,GAAG,EAAE,CAAC,CAAC;IAC9E,CAAC;IACF,oBAAoB,CAAC,QAAQ;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,4CAA4C,GAAE,QAAQ,EAAC,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC,CAAC;IACpH,CAAC;IACD,yBAAyB,CAAC,WAAW;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,oDAAoD,GAAE,WAAW,EAAC,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC,CAAC;IAC/H,CAAC;IACD,wBAAwB,CAAC,YAAY;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,oDAAoD,GAAE,YAAY,EAAC,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC,CAAC;IAChI,CAAC;IAED,kBAAkB,CAAC,SAAiB,EAAC,aAAoB;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,2CAA2C,GAAE,SAAS,GAAE,iBAAiB,GAAC,aAAa,CAAC,CAAC;IAC/H,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,0BAA0B,CAAC,CAAC;IAClE,CAAC;IACD,aAAa,CAAC,IAAqB;QACjC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,2FAA2F;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,6BAA6B,EAAC,IAAI,CAAC,CAAC;IAC3E,CAAC;IACD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;YAClC,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,QAAQ;YAC5B,UAAU,EAAE,CAAC,KAAK,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;;4EAnHU,cAAc;+GAAd,cAAc,WAAd,cAAc,mBAFb,MAAM;;;;;;;;;;;;;;;;;;;;ACTyE;AAGlC;;;;AAKpD,MAAM,aAAa;IAIxB,YAAoB,IAAgB,EAAU,SAAsB;QAAhD,SAAI,GAAJ,IAAI,CAAY;QAAU,cAAS,GAAT,SAAS,CAAa;QAHpE,cAAS,GAAG,+EAAqB;QACjC,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;IACkB,CAAC;IACzE,yBAAyB,CAAC,OAAoB;QAC5C,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,QAAQ,CAAC,QAAa,EAAE,QAAa;QACnC,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YACxB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;QACH,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,aAAa,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,oGAAoG;IACpG,qBAAqB,CAAC,MAA+B;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,sBAAsB,EAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,8BAA8B,CAAC,CAAC;IACxE,CAAC;IACD,0BAA0B;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,uCAAuC,CAAC,CAAC;IACjF,CAAC;IACD,sBAAsB,CAAC,SAAgB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,8CAA8C,GAAG,SAAS,CAAC,CAAC;IACpG,CAAC;IACD,8BAA8B,CAAC,KAAY;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,kDAAkD,GAAG,KAAK,CAAC,CAAC;IACpG,CAAC;IAED,gBAAgB,CAAC,SAAgB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,wCAAwC,GAAG,SAAS,CAAC,CAAC;IAC9F,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,8BAA8B,CAAC,CAAC;IACxE,CAAC;IAED,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;QAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;YACnC,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,QAAQ;YAC5B,UAAU,EAAE,CAAC,KAAK,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;;0EAlDU,aAAa;8GAAb,aAAa,WAAb,aAAa,mBADA,MAAM;;;;;;;;;;;;;;;;;;;;ACP6D;AAGlC;;;;AAG3D,8DAA8D;AAGvD,MAAM,iBAAiB;IAM5B,YAAoB,IAAgB,EAAU,QAAqB;QAA/C,SAAI,GAAJ,IAAI,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAa;QAJnE,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QACvD,uCAAuC;QACtC,YAAO,GAAG,+EAAqB,CAAC;IACuC,CAAC;IACxE,yBAAyB,CAAC,OAAoB;QAE5C,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,QAAQ,CAAC,QAAa,EAAE,QAAa;QACnC,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YACxB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;QACH,IAAI,SAAS,GAAG,IAAI,6DAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,aAAa,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,oBAAoB,CAAC,QAAe;QAClC,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,8CAA8C,GAAC,QAAQ,CAAC,CAAC;IAC/F,CAAC;IACD,kBAAkB;QAChB,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,+BAA+B,CAAC,CAAC;IACvE,CAAC;IAEA,WAAW,CAAC,IAAQ;QACnB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,2FAA2F;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,4BAA4B,EAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,uBAAuB,CAAC,IAAI;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,oCAAoC,EAAC,IAAI,EAAC,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC,CAAC;IACxG,CAAC;IACD,iBAAiB,CAAC,EAAS;QACzB,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,2FAA2F;QAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,kCAAkC,GAAG,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,mBAAmB;QAElB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,gCAAgC,CAAC,CAAC;IACxE,CAAC;IACD,qBAAqB,CAAC,MAAW;QAE/B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,kCAAkC,EAAC,MAAM,CAAC,CAAC;IAElF,CAAC;IACD,wBAAwB,CAAC,SAAc,EAAC,QAAY;QAElD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,gDAAgD,GAAC,SAAS,GAAE,YAAY,GAAC,QAAQ,CAAC,CAAC;IAEzH,CAAC;IAED,2BAA2B,CAAC,SAAS,EAAC,QAAQ;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,0CAA0C,GAAC,SAAS,GAAC,YAAY,GAAC,QAAQ,CAAC,CAAC;IAElH,CAAC;IACD,yBAAyB,CAAC,SAAS,EAAC,QAAQ;QAC1C,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,iDAAiD,GAAC,SAAS,GAAE,YAAY,GAAC,QAAQ,CAAC,CAAC;IAC1H,CAAC;IAED,6BAA6B,CAAC,EAAS,EAAC,QAAQ;QAC9C,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,8CAA8C,GAAC,EAAE,GAAC,YAAY,GAAC,QAAQ,CAAC,CAAC;IAC/G,CAAC;IACD,aAAa,CAAC,EAAE;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,8BAA8B,GAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,qBAAqB,CAAC,SAAS,EAAC,QAAQ;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,gDAAgD,GAAC,SAAS,GAAE,YAAY,GAAC,QAAQ,CAAC,CAAC;IACzH,CAAC;IACD,oCAAoC,CAAC,QAAQ,EAAC,QAAQ;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,2DAA2D,GAAC,QAAQ,GAAE,YAAY,GAAC,QAAQ,CAAC,CAAC;IACnI,CAAC;IAED,iBAAiB,CAAC,SAAS,EAAC,QAAQ;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,yCAAyC,GAAE,SAAS,GAAE,YAAY,GAAC,QAAQ,CAAC,CAAC;IACnH,CAAC;IAED,oBAAoB,CAAC,SAAS;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,4CAA4C,GAAE,SAAS,CAAE,CAAC;IAChG,CAAC;IAED,oBAAoB,CAAC,WAAgB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,iCAAiC,EAAC,WAAW,EAAC,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC,CAAC;IAC5G,CAAC;IACD,oBAAoB,CAAC,WAAgB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,iCAAiC,EAAC,WAAW,CAAC,CAAC;IACtF,CAAC;IACD,cAAc,CAAC,IAAI,EAAC,QAAQ;QAE1B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;YAC5B,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAC,IAAI,CAAC,CAAC,CAAC,EAAG,QAAQ,GAAC,GAAG,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACjE;QACD,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,0BAA0B,EAAE,QAAQ,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;IACjG,CAAC;IACD,aAAa,CAAC,IAAQ;QAEtB,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,oCAAoC,GAAE,IAAI,EAAG,EAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,EAAC,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;IAEpJ,CAAC;IACD,gBAAgB,CAAC,IAAQ;QAEzB,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,uCAAuC,GAAE,IAAI,EAAE,EAAC,OAAO,EAAE,OAAO,EAAC,EAAC,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC,CAAC;IAEhI,CAAC;IACD,oBAAoB,CAAC,QAAQ,EAAC,QAAQ;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,wCAAwC,GAAC,QAAQ,GAAC,YAAY,GAAC,QAAQ,CAAC,CAAC;IAE/G,CAAC;IACD,UAAU,CAAC,SAAS,EAAC,QAAQ;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,kCAAkC,GAAC,SAAS,GAAC,YAAY,GAAC,QAAQ,CAAC,CAAC;IAE1G,CAAC;IACD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;YAClC,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,QAAQ;YAC5B,UAAU,EAAE,CAAC,KAAK,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;;kFA5IU,iBAAiB;kHAAjB,iBAAiB,WAAjB,iBAAiB,mBADJ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRoD;AAEhB;;;;;;;;;;;;AAW7D,MAAM,iBAAiB;IAQ1B,YAA4C,IAAgB,EAAS,MAAiB,EAAS,SAA0C,EAAU,WAAwB,EAAU,UAAyB,EAAU,SAAsB;QAAlM,SAAI,GAAJ,IAAI,CAAY;QAAS,WAAM,GAAN,MAAM,CAAW;QAAS,cAAS,GAAT,SAAS,CAAiC;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,eAAU,GAAV,UAAU,CAAe;QAAU,cAAS,GAAT,SAAS,CAAa;QAN9O,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QACxD,aAAQ,GAAe;YACrB,EAAE,EAAC,CAAC,EAAE,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,aAAa,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,EAAC,EAAE,EAAC,SAAS,EAAC,CAAC,EAAC,WAAW,EAAE,IAAI,IAAI,EAAE,EAAC,SAAS,EAAC,CAAC,EAAC,WAAW,EAAC,IAAI,IAAI,EAAE;SAC5J;IAEmP,CAAC;IAEnP,QAAQ;QACJ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAC7C,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,+DAAmB,CAAC;YAC3C,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,+DAAmB,CAAC;YAC3C,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,+DAAmB,CAAC;YAC7D,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,+DAAmB,CAAC;YACjD,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,+DAAmB,CAAC;YACjD,MAAM,EAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SAE9B,CAAC,CAAC;IAEP,CAAC;IACD,OAAO;QACH,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;YAE3B,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK;gBAClE,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK;gBAClE,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK;gBACpF,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK;gBACxE,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK;gBACxE,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK;gBACxE,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE;gBACtC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;oBACrI,IAAG,IAAI,GAAE,CAAC,EAAC;wBACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kFAAkF,EAAE,OAAO,EAAE;4BAC7G,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;4BACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;yBACrB,CAAC,CAAC;wBACL,OAAO;qBACR;yBAED;wBACR,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE;4BAC3E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,OAAO,EAAE;gCACxD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gCAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gCACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;6BACrB,CAAC,CAAC;4BACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;wBACrD,CAAC,CAAC,CAAC;qBAEN;gBAEL,CAAC,CAAC,CAAC;SAEN;IAGG,CAAC;IACD,KAAK;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAE3B,CAAC;;kFArEQ,iBAAiB,kEAQN,qEAAe;+GAR1B,iBAAiB;QCd9B,yEAAiB;QAGb,yEAAoB;QAChB,wEAA4C;QAAA,uEAAY;QAAA,4DAAK;QACjE,4DAAM;QACN,yEAA8C;QAC1C,8EACuD;QAD7C,2IAAS,WAAO,IAAC;QAC4B,gEAAK;QAAA,4DAAW;QAC3E,4DAAM;QACV,4DAAM;QACN,0EAAgE;QAAzB,yIAAU,iBAAa,IAAC;QAEvD,yEAAiB;QACb,yEAA0C;QAEtC,qFAAgE;QAC5D,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAElC,uEAAoF;QACxF,4DAAiB;QAIrB,4DAAM;QAEN,0EAA0C;QAEtC,qFAAgE;QAC5D,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAElC,uEAAuC;QAC3C,4DAAiB;QAIrB,4DAAM;QAEV,4DAAM;QACN,0EAAiB;QACb,0EAA0C;QAEtC,qFAAgE;QAC5D,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QAErC,wEAAkG;QACtG,4DAAiB;QAErB,4DAAM;QAEN,0EAA0C;QAEtC,qFAAgE;QAC5D,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAE9B,wEAAiF;QACrF,4DAAiB;QAErB,4DAAM;QACV,4DAAM;QAEN,uEAAK;QACD,qFAAgE;QAC5D,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B,2EACiE;QACrE,4DAAiB;QACrB,4DAAM;QAGN,2EAAiC;QAC7B,oFAAuD;QAAA,kEAAM;QAAA,4DAAe;QAEnF,4DAAM;QAGP,2EAA0C;QACtC,2EAAsF;QAClF,8EAAuE;QAApB,0IAAS,aAAS,IAAC;QAAC,iEAAK;QAAA,4DAAS;QACzF,4DAAM;QACN,2EAAsF;QAClF,8EAAmD;QAAA,kEAAM;QAAA,4DAAS;QACtE,4DAAM;QACV,4DAAM;QACV,4DAAO;;QAzED,0DAAgC;QAAhC,6FAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVqB;AACE;AAIO;AAClB;;;;;;;;;;;;;;;;ICmBlC,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAiB;IAAA,4DAAK;;;IAAtB,0DAAiB;IAAjB,4FAAiB;;;IAIjF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAiB;IAAA,4DAAK;;;IAAtB,0DAAiB;IAAjB,4FAAiB;;;IAIjF,yEAA+G;IAAA,qEAAU;IAAA,4DAAK;;;IAC9H,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAKtF,yEAAgE;IAAA,mEAAQ;IAAA,4DAAK;;;IAC7E,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAIpF,yEAAgE;IAAA,kEAAO;IAAA,4DAAK;;;IAC5E,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAGpF,yEAA4F;IAAA,iEAAM;IAAA,4DAAK;;;IACvG,yEAA+D;IAAC,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,8FAAmB;;;IAInF,yEAA4F;IAAA,+DAAI;IAAA,4DAAK;;;;IACrG,yEAA+D;IAC3D,6EACiF;IADzD,8XAAmC;IAEvD,2EAAU;IAAA,+DAAI;IAAA,4DAAW;IAC7B,4DAAS;IACb,4DAAK;;;IAIL,yEAA4E;IAAA,iEAAM;IAAA,4DAAK;;;;IACvF,yEAA4E;IACxE,6EACiF;IADzD,sXAA2B;IAE/C,2EAAU;IAAA,iEAAM;IAAA,4DAAW;IAC/B,4DAAS;IACb,4DAAK;;;IAJmD,0DAAyC;IAAzC,sGAAyC;;;IAMrG,oEAAsF;;;IACtF,oEAA0F;;;;ADxEzE;AA6BtB,MAAM,MAAM;IAaf,YAAmB,MAAiB,EAAU,UAAyB;QAApD,WAAM,GAAN,MAAM,CAAW;QAAU,eAAU,GAAV,UAAU,CAAe;QAPvE,qBAAgB,GAAa,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,EAAE,QAAQ,CAAC;IAOhC,CAAC;IAZ5E,MAAM;QACF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAYD,QAAQ;QACA,IAAI,CAAC,eAAe,EAAE,CAAC;IAC/B,CAAC;IACD,eAAe;QACX,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE;YAC7D,QAAQ,CAAC;YACT,IAAI,CAAC,gBAAgB,GAAG,IAAI,uEAAkB,CAAa,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACrD,CAAC,CAAC,CAAC;IAEP,CAAC;IACD,gBAAgB,CAAC,IAAS;QACtB,QAAQ,CAAC;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2DAAiB,EAAE;YAClD,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAC,KAAI,EAAC,MAAK,EAAC;YACnL,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAGf,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACvC,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IACD,QAAQ,CAAC,IAAS;QACd,QAAQ,CAAC;QACT,IAAI,OAAO,CAAC,kDAAkD,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE;YACzE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACzD,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;SAEN;IACL,CAAC;IAGD,WAAW,CAAC,KAAY;QACpB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpE,CAAC;IAED,UAAU;QACN,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;YAChD,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SACf,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACvC,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,eAAe,EAAE,CAAC;aAC1B;QAEL,CAAC,CAAC,CAAC;IACP,CAAC;;4DApEQ,MAAM;oGAAN,MAAM;kEAQJ,qEAAY;;;;;QCxC3B,8EAA8B;QAG1B,wEAA4C;QAAA,0EAAe;QAAA,4DAAK;QAChE,gEAAI;QAEJ,yEAAiB;QACb,yEAAsB;QAClB,oFAAsC;QAElC,4EAAW;QAAA,kEAAO;QAAA,4DAAY;QAC9B,8EAAoE;QAApD,mIAAS,uBAAmB,IAAC;QAA7C,4DAAoE;QACxE,4DAAiB;QACrB,4DAAM;QACN,qEAA4B;QAC5B,qEAA4B;QAC5B,0EAAsB;QAAC,6EAA6D;QAAxB,+HAAS,gBAAY,IAAC;QAAE,2EAChF;QAAA,4DAAS;QAAC,4DAAM;QAExB,4DAAM;QAEN,uEAAK;QACD,4EAC8B;QAE1B,4EAAkC;QAC9B,mGAAiF;QACjF,mGAAsF;QAC1F,qEAAe;QAEf,6EAAkC;QAC9B,mGAAiF;QACjF,mGAAsF;QAC1F,qEAAe;QAEf,6EAAuC;QACnC,mGAA8H;QAC9H,mGAA2F;QAC/F,qEAAe;QAGf,6EAAqC;QACjC,mGAA6E;QAC7E,mGAAyF;QAC7F,qEAAe;QAEf,6EAAqC;QACjC,mGAA4E;QAC5E,mGAAyF;QAC7F,qEAAe;QACf,6EAAoC;QAChC,mGAAuG;QACvG,mGAAwF;QAC5F,qEAAe;QAEf,6EAAkC;QAC9B,mGAAqG;QACrG,mGAKK;QACT,qEAAe;QAEf,6EAAoC;QAChC,mGAAuF;QACvF,mGAKK;QACT,qEAAe;QACf,mGAAsF;QACtF,mGAA0F;QAC9F,4DAAQ;QACZ,4DAAM;QAEN,uEAAK;QACD,gFAEgB;QACpB,4DAAM;QAGV,4DAAW;;QAhEc,2DAA+B;QAA/B,4FAA+B;QAoDE,2DAAiC;QAAjC,iGAAiC;QACtB,0DAA0B;QAA1B,kGAA0B;QAKxE,0DAA+B;QAA/B,kJAA+B;;AD8B/C,MAAM,eAAe;IAcxB,YAAoB,WAAwB,EAAS,MAAiB,EAAU,KAAoB,EAAU,SAAsB,EAAS,SAA+B,EAAS,UAAyB;QAA1L,gBAAW,GAAX,WAAW,CAAa;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,UAAK,GAAL,KAAK,CAAe;QAAU,cAAS,GAAT,SAAS,CAAa;QAAS,cAAS,GAAT,SAAS,CAAsB;QAAS,eAAU,GAAV,UAAU,CAAe;QAT9M,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QACtD,gBAAW,GAAG,6BAA6B,CAAC;QAC5C,sBAAiB,GAAG,qHAAqH,CAAC;QAC1I,eAAU,GAAG,2CAA2C,CAAC;QAEzD,kBAAa,GAAe;YACxB,EAAE,EAAC,CAAC,EAAE,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,aAAa,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,EAAC,EAAE,EAAC,SAAS,EAAC,CAAC,EAAC,WAAW,EAAE,IAAI,IAAI,EAAE,EAAC,SAAS,EAAC,CAAC,EAAC,WAAW,EAAC,IAAI,IAAI,EAAE;SAC5J;IAGH,CAAC;IACD,QAAQ;QACJ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAC5C,IAAI,EAAE,CAAC,IAAI,EAAE,gEAAmB,CAAC;YACjC,IAAI,EAAE,CAAC,IAAI,EAAE,gEAAmB,CAAC;YACjC,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,gEAAmB,EAAE,+DAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACxF,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,gEAAmB,EAAE,+DAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3E,OAAO,EAAE,CAAC,IAAI,EAAE,gEAAmB,CAAC;YACpC,MAAM,EAAE,CAAC,IAAI,CAAC;SACjB,CAAC,CAAC;IACP,CAAC;IACD,WAAW;QACP,QAAQ,CAAC;QAET,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;YAC9B,IAAI,CAAC,aAAa,CAAC,EAAE,GAAC,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,IAAI,GAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK;gBACtE,IAAI,CAAC,aAAa,CAAC,IAAI,GAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK;gBACtE,IAAI,CAAC,aAAa,CAAC,aAAa,GAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK;gBACxF,IAAI,CAAC,aAAa,CAAC,OAAO,GAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK;gBAC5E,IAAI,CAAC,aAAa,CAAC,OAAO,GAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK;gBAC5E,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK;gBAC5E,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACvE,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE;YAE3C,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;gBACrI,IAAG,IAAI,GAAE,CAAC,EAAC;oBACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kFAAkF,EAAE,OAAO,EAAE;wBAC7G,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;qBACrB,CAAC,CAAC;oBACL,OAAO;iBACR;qBAED;oBACI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,GAAiB,EAAE,EAAE;wBAChF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,6BAA6B,EAAE,OAAO,EAAE;4BACxD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;4BACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;yBACrB,CAAC,CAAC;wBACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;oBACrD,CAAC,CAAC,CAAC;iBACN;YACL,CAAC,CAAC,CAAC;SAEV;IACL,CAAC;IACG,OAAO;QACH,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IACD,KAAK;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAE3B,CAAC;IACD,cAAc,CAAC,KAAY;IAG3B,CAAC;;8EA3EQ,eAAe;6GAAf,eAAe;QE9G5B,yEAAiB;QACb,yEAAoB;QAChB,wEAA4C;QAAA,sEAAW;QAAA,4DAAK;QAChE,4DAAM;QACN,yEAA8C;QAC1C,8EACuD;QAD7C,yIAAS,WAAO,IAAC;QAC4B,gEAAK;QAAA,4DAAW;QAC3E,4DAAM;QACV,4DAAM;QACN,0EAA+D;QAAzB,uIAAU,iBAAa,IAAC;QAEtD,yEAAiB;QACb,yEAA0C;QAEtC,qFAAgE;QAC5D,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAElC,uEAAoF;QACxF,4DAAiB;QAIrB,4DAAM;QAEN,0EAA0C;QAEtC,qFAAgE;QAC5D,6EAAW;QAAA,uEAAW;QAAA,4DAAY;QAElC,uEAAoF;QACxF,4DAAiB;QAIrB,4DAAM;QAEV,4DAAM;QAEN,0EAAiB;QACb,0EAA0C;QAEtC,qFAAgE;QAC5D,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QAErC,wEAAkG;QACtG,4DAAiB;QAErB,4DAAM;QAEN,0EAA0C;QAEtC,qFAAgE;QAC5D,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAE9B,wEAAiF;QACrF,4DAAiB;QAErB,4DAAM;QACV,4DAAM;QACN,uEAAK;QACD,qFAAgE;QAC5D,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B,2EACiE;QACrE,4DAAiB;QACrB,4DAAM;QAEN,2EAAiC;QAC1B,oFAAyE;QAAA,kEAAM;QAAA,4DAAe;QAErG,4DAAM;QAEV,2EAA0C;QACtC,2EAAsF;QAClF,8EAAuE;QAAlC,wIAAS,aAAS,IAAC;QAAe,iEAAK;QAAA,4DAAS;QACzF,4DAAM;QACN,2EAAsF;QAClF,8EAAmD;QAAA,gEAAI;QAAA,4DAAS;QACpE,4DAAM;QACV,4DAAM;QACV,4DAAO;;QAvED,0DAA+B;QAA/B,4FAA+B;QA2DiC,2DAAiB;QAAjB,0EAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnEhC;AACP;AACiD;AAC9C;AACe;AACS;AAET;AACuC;AACL;AACqB;AAC9B;AACjB;AACiE;AACX;AACvF;;;AAEzC,MAAM,MAAM,GAAW;IAEvB,EAAC,IAAI,EAAC,WAAW,EAAE,SAAS,EAAE,2EAAiB,EAAC;IAChD;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,2EAAiB;QAC5B,WAAW,EAAE;YACX,2DAAS;SACV;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE,0GAA4B;QACvC,WAAW,EAAE;YACX,2DAAS;SACV;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,wJAA2C;QACtD,WAAW,EAAE;YACX,2DAAS;SACV;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,SAAS,EAAE,kHAA8B;QACzC,WAAW,EAAE;YACX,mDAAS;SACV;QACD,IAAI,EAAE,EAAG,IAAI,EAAE,QAAQ,EAAC;KACzB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,4DAAM;KAClB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,2EAAiB;KAC7B;IACD;QACE,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,oFAAsB;KAClC;IACD,EAAE,IAAI,EAAE,0BAA0B,EAAE,SAAS,EAAE,6GAA2B,EAAE;IAC5E,EAAE,IAAI,EAAE,oCAAoC,EAAE,SAAS,EAAE,2IAAoC,EAAE;IAC/F,EAAE,IAAI,EAAE,kCAAkC,EAAE,SAAS,EAAE,oIAAkC,EAAE;IAC3F;QACE,IAAI,EAAC,iBAAiB;QACtB,SAAS,EAAC,oGAAwB;QAClC,WAAW,EAAE;YACX,mDAAS;SACV;QACD,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAC;KAC9C;IACD;QACE,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,mFAAmB;KAC/B;CACA,CAAC;AAMK,MAAM,gBAAgB;;gFAAhB,gBAAgB;8GAAhB,gBAAgB;kHAHlB,CAAC,kEAAoB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAChD,0DAAY;oIAEX,gBAAgB,qFAFjB,0DAAY;;;;;;;;;;;;;;;;;;;;AC1DjB,MAAM,YAAY;IALzB;QAME,UAAK,GAAG,KAAK,CAAC;QAEd,oBAAoB;QAEpB,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;KAoBvD;;wEA1BY,YAAY;0GAAZ,YAAY;QCvBzB,0EAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACC6B;AACO;AACC;AACnB;AACiB;AACe;AACd;AACT;AACiF;AAC+G;AAC7K;AAEmB;AACvC;AACb;AACa;AACD;AACsB;AACwB;AACzC;AACS;AACzB;AACmB;AAGN;AACO;AACJ;AAChB;AAC6L;AACjI;AACjB;AAC/B;AACE;AACe;AACX;AACK;AACK;AACvB;AACmC;AACS;AACoB;AACR;AAC4F;AACxH;AACO;AACa;AACb;AACwH;AACyB;AACvG;AACnD;AACd;AACE;AACmB;AACR;AACE;AACZ;AACR;AACE;AACqF;AACoD;;;AAElM,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAClG,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9G,SAAS,cAAc,CAAC,QAAkB,EAAE,OAAe;AAElE,CAAC;AACM,SAAS,mBAAmB;IACjC,OAAO,IAAI,yEAAuB,CAAC;QACjC,IAAI,EAAE;YACP,0DAA0D;YAC1D,oDAAoD;YACnD,QAAQ,EAAE,sFAA4B;YACtC,SAAS,EAAE,wEAAwE;YAClF,WAAW,EAAE,iFAAuB;SAEpC;QACD,KAAK,EAAE;YACL,aAAa,EAAE,qFAAmC;YAClD,sBAAsB,EAAE,IAAI,EAAE,wBAAwB;SACvD;QACD,MAAM,EAAE;YACN,aAAa,EAAE;gBACb,cAAc;gBACd,QAAQ,EAAE,+DAAa;gBACvB,iBAAiB,EAAE,KAAK;aACzB;SACF;KACF,CAAC,CAAC;AACL,CAAC;AACM,SAAS,4BAA4B;IAC1C,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC9D,oBAAoB,CAAC,GAAG,CAAC,qCAAqC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAE/E,OAAO;QACL,eAAe,EAAE,0EAAwB;QACzC,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAGM,SAAS,sBAAsB;IACpC,OAAO;QACL,eAAe,EAAE,0EAAwB;QACzC,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,WAAW,CAAC;SACtB;KACF,CAAC;AACJ,CAAC;AAmEM,MAAM,SAAS;;kEAAT,SAAS;uGAAT,SAAS,cAFP,wDAAY,EAAC,uEAAqB;4GA1BpC,CAAC;YACV,OAAO,EAAE,oEAAiB;YAC1B,QAAQ,EAAE,iEAAe;YACzB,KAAK,EAAE,IAAI;SACZ;QACD;YACE,OAAO,EAAE,oEAAiB;YAC1B,QAAQ,EAAE,6EAAkB;YAC5B,KAAK,EAAE,IAAI;SACZ;QACD;YACE,OAAO,EAAE,+DAAa;YACtB,UAAU,EAAE,mBAAmB;SAChC;QACD;YACE,OAAO,EAAE,mEAAiB;YAC1B,UAAU,EAAE,sBAAsB;SACnC;QACD;YACE,OAAO,EAAE,yEAAuB;YAChC,UAAU,EAAE,4BAA4B;SACzC;QACD,6DAAW;QACX,2DAAS;QACT,sEAAoB,EAAC,qEAAc,EAAC,sDAAQ,EAAC,wEAAkB,EAAC,mGAAc;QAC9E,EAAC,OAAO,EAAE,iFAA0B,EAAE,QAAQ,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,EAAC,CAAC,YAvC5D;YACP,iEAAgB;YAChB,qEAAa,EAAC,2EAAiB;YAC/B,mEAAc;YACd,0FAAuB;YACvB,0EAAiB,EAAC,mEAAgB,EAAE,wDAAW,EAAG,kEAAa,EAAC,8DAAkB;YAClF,mEAAgB,EAAE,4DAAU,EAAE,gEAAmB,EAAE,kEAAS,EAAC,6DAAoB,CAAC;gBAChF,MAAM,EAAE,YAAY;aACrB,CAAC;YACF,oEAAc;YACd,kFAAqB;YACrB,sDAAc,EAAE,4EAAkB,EAAC,6EAAkB,EAAE,oEAAc;SAEtE;oIA6BU,SAAS,mBAhElB,wDAAY,EAAC,yEAAgB;QAC7B,qFAA0B,EAAE,6FAAmB,EAAC,sGAAsB,EAAC,0HAA8B;QACrG,6GAAyB,EAAC,4EAAiB,EAAC,4EAAiB,EAAC,4EAAiB;QAC/E,6EAAkB,EAAC,sEAAe,EAAE,qFAAsB,EAAE,6DAAM,EAAE,sEAAe,EAAE,wEAAiB;QACtG,QAAQ;QACR,wFAAoB,EAAC,4FAAwB,EAAC,kGAAoB,EAAC,2FAAa,EAAC,6GAAwB;QACzG,6FAAmB,EAAC,yGAAoB,EAAC,8GAAyB,EAAC,mGAAc,EAAG,sFAAgB,EAAE,gGAAkB;QACxH,KAAK;QACL,0GAA4B,EAAE,+FAAiB,EAAG,+FAAiB;QACnE,+FAAiB,EAAC,6FAAqB,EAAC,uGAAoB,EAAC,8HAA2B;QACxF,mHAA8B,EAAE,oGAAsB;QACtD,8GAA2B,EAAC,2GAA2B,EAAC,uGAAoB,EAAC,+GAA4B,EAAE,qGAAkB,EAAE,+FAAY;QAC3I,qIAAkC,EAAC,kIAA+B,EAAC,wHAAqB,EAAC,wHAAqB;QAC9G,qGAAwB,EAAC,8GAAiC;QAC3D,cAAc;QACd,oFAAmB,EAAC,sEAAa,EAAC,wEAAc;QAChD,iBAAiB;QACjB,2FAAyB,EAAC,mFAAqB,EAAC,qFAAsB,EAAC,yEAAgB,EAAC,iEAAY,EAAC,mEAAa;QAClH,wJAA2C,EAAE,2IAAoC,EAAC,6HAAsB,EAAC,6HAAsB;QAChI,mBAAmB;QACnB,wHAAiB,aAGf,iEAAgB;QAChB,qEAAa,EAAC,2EAAiB;QAC/B,mEAAc;QACd,0FAAuB;QACvB,0EAAiB,EAAC,mEAAgB,EAAE,wDAAW,EAAG,kEAAa,EAAC,8DAAkB;QAClF,mEAAgB,EAAE,4DAAU,EAAE,gEAAmB,EAAE,kEAAS,yDAG5D,oEAAc;QACd,kFAAqB;QACrB,sDAAc,EAAE,4EAAkB,EAAC,6EAAkB,EAAE,oEAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjJzE;AACA;AACA;AACA;AAIA;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;ACMYA,IAAAA,4DAAAA;AAAkGA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwCA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;;;;;AAA9EA,IAAAA,wDAAAA;AAA+DA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;AAYrJA,IAAAA,4DAAAA;AAA8FA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;AAA1DA,IAAAA,wDAAAA;AAAsCA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;;;AAiB7EA,IAAAA,4DAAAA;AAAuGA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AACvGA,IAAAA,4DAAAA;AAAWA,IAAAA,oDAAAA;AAAKA,IAAAA,0DAAAA;AAChBA,IAAAA,0DAAAA;;;;AAFQA,IAAAA,wDAAAA;;;;;;AAKZA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAKA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;AACxBA,IAAAA,0DAAAA;;;;;;;;AACAA,IAAAA,4DAAAA;AAAuHA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AACrHA,IAAAA,oDAAAA;AACFA,IAAAA,0DAAAA;;;;;AAFiGA,IAAAA,wDAAAA;AAC/FA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAgFRA,IAAAA,4DAAAA;AAAiIA,IAAAA,oDAAAA;AAAUA,IAAAA,0DAAAA;;;;;AAA3BA,IAAAA,wDAAAA;AAAiBA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;ADjEzI,MAAMC,gBAAgB,GAAqB,EAA3C;AAQU,MAAOgZ,2BAAP,CAAkC;AAuCtC9Y,cAA4CC,IAA5C,EAA4EC,YAA5E,EAA8GC,SAA9G,EAA8IC,WAA9I,EAA+KC,MAA/K,EAAiNC,UAAjN,EAAyPC,WAAzP,EAA6RC,SAA7R,EAA0VC,QAA1V,EAAyXC,QAAzX,EAA2Y;AAA/V;AAAgC;AAAkC;AAAgC;AAAiC;AAAkC;AAAwC;AAAoC;AAA6D;AAA+B;AAlCzX,mBAAkB,EAAlB;AACA,mCAA0B,IAAId,uDAAJ,EAA1B;AACA,+BAAsB,EAAtB;AACA,4BAA6B,EAA7B;AACA,2BAAiC,EAAjC;AACA,kCAAyB,IAAIA,uDAAJ,EAAzB;AAEA,2BAAiC;AAACe,mBAAa,EAAC,CAAf;AAAiBC,cAAQ,EAAC,CAA1B;AAA6BC,qBAAe,EAAE,EAA9C;AAAkDC,uBAAiB,EAAC,EAApE;AAAuEC,sBAAgB,EAAC,CAAxF;AAA0FC,aAAO,EAAE,CAAnG;AAAqGC,kBAAY,EAAC,CAAlH;AAAoHC,gBAAU,EAAE,CAAhI;AAAkIC,eAAS,EAAC,EAA5I;AAA+IC,iBAAW,EAAC,EAA3J;AAA8JC,eAAS,EAAC,CAAxK;AAC/B4I,gBAAU,EAAC,EADoB;AACjB8O,wBAAkB,EAAC;AADF,KAAjC;AAGO,sBAAwB,EAAxB;AAMP,2BAA0B,EAA1B;AAEA,mCAA0B,IAAInZ,uDAAJ,CAAgB,EAAhB,CAA1B;AACA,sCAA6B,IAAIA,uDAAJ,EAA7B;AACA,gCAAuB,EAAvB;AACA,iCAAgDJ,wCAAE,CAAC,KAAK8B,UAAN,CAAlD;AACA,4BAAkB,IAAI1B,uDAAJ,CAAgB,EAAhB,CAAlB;AACA,+BAAqB,IAAIA,uDAAJ,CAAgB,EAAhB,CAArB;AAKA;;AACA,iBAAc,CAAd;AACA,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AASA,iCAAwB,IAAIA,uDAAJ,CAAgB,EAAhB,CAAxB;AACA,qCAAsC,EAAtC;AAGA,qBAAY,IAAIA,uDAAJ,CAAgB,EAAhB,CAAZ;AACA,mBAAoB,CAAC,QAAD,EAAW,OAAX,EAAoB,SAApB,EAA+B,UAA/B,EAA2C,KAA3C,CAApB;AAEA,iBAAa,IAAIuN,IAAJ,EAAb;AAEA,sBAAa,IAAIvN,uDAAJ,CAAgB,EAAhB,CAAb;AACA,oBAAqB,CAAC,UAAD,EAAa,SAAb,EAAwB,UAAxB,EAAoC,UAApC,EAAgD,KAAhD,CAArB;AAIA,yBAAiC,EAAjC;AAEA,uBAAe,6BAAf;AApBE,SAAK2B,YAAL,GAAoBrB,YAAY,CAACsB,KAAb,CAAmB;AACrC,uBAAgB,CAAC,EAAD,EAAK7B,+DAAL;AADqB,KAAnB,CAApB;AAGD;;AAoBD+B,UAAQ;AACN,QAAG,KAAKzB,IAAL,IAAY,IAAZ,IAAoB,KAAKA,IAAL,IAAY0B,SAAnC,EACE;AACF,WAAKC,YAAL,CAAkB,KAAK3B,IAAL,CAAU4B,SAA5B,EAAsC,CAAtC;AACA,WAAKC,aAAL,CAAmB,CAAnB;AACG;;AACH,SAAKC,gBAAL,GAAuB,IAAIxC,uEAAJ,CAAyCO,gBAAzC,CAAvB;AACD,SAAKyB,YAAL,GAAoB,KAAKnB,WAAL,CAAiBoB,KAAjB,CAAuB;AAC1CQ,6BAAuB,EAAE,CAAC,IAAD,EAAMrC,+DAAN,CADiB;AAE1CsC,4BAAsB,EAAE,CAAC,IAAD,EAAMtC,+DAAN,CAFkB;AAG1C0U,gBAAU,EAAE,CAAC,IAAD,EAAM1U,+DAAN,CAH8B;AAI5CwB,eAAS,EAAG,CAAC,IAAD,EAAOxB,+DAAP,CAJgC;AAK5CyB,iBAAW,EAAE,CAAC,IAAD,EAAOzB,+DAAP,CAL+B;AAM5CwC,UAAI,EAAE,CAAC,IAAD,EAAOxC,+DAAP,CANsC;AAO3CyC,YAAM,EAAC,CAAC,IAAD,EAAOzC,+DAAP,CAPoC;AAQ3C0C,WAAK,EAAG,CAAC,IAAD,EAAO1C,+DAAP,CARmC;AAS3CqB,aAAO,EAAE,CAAC,IAAD,EAAOrB,+DAAP,CATkC;AAU5C2C,gBAAU,EAAE,CAAC,IAAD,EAAO3C,+DAAP,CAVgC;AAW5C4C,kBAAY,EAAE,CAAC,IAAD,EAAM5C,+DAAN,CAX8B;AAY5CsK,gBAAU,EAAC,CAAC,IAAD,EAAOtK,+DAAP,CAZiC;AAa3CoZ,wBAAkB,EAAG,CAAC,IAAD,EAAOpZ,+DAAP;AAbsB,KAAvB,CAApB;AAeC,SAAKqZ,yBAAL;AACD;;AACDA,2BAAyB;AAEvB,SAAKzY,WAAL,CAAiB0Y,gCAAjB,GAAoD7V,SAApD,CAA+D8V,KAAD,IAAa;AAC1E,WAAKC,yBAAL,GAA+BD,KAAK,CAACzZ,GAAN,CAAUuF,IAAI,IAAEA,IAAI,CAACoU,WAArB,CAA/B;AACC,WAAKC,oCAAL,GAA4C,KAAK9X,YAAL,CAAkBwG,GAAlB,CAAsB,aAAtB,EAAqCrF,YAArC,CAAkDC,IAAlD,CAC1CjD,yDAAS,CAAC,EAAD,CADiC,EAE1CD,mDAAG,CAACmD,KAAK,IAAI,KAAK0W,kBAAL,CAAwB1W,KAAK,IAAI,EAAjC,CAAV,CAFuC,CAA5C;AAID,KAND;AAOD;;AACO0W,oBAAkB,CAAC1W,KAAD,EAAc;AACtC,UAAM8B,WAAW,GAAG9B,KAAK,CAAC+B,WAAN,EAApB;AACA;AACA,WAAO,KAAKwU,yBAAL,CAA+BjU,MAA/B,CAAsCC,MAAM,IAAIA,MAAM,CAACR,WAAP,GAAqBS,QAArB,CAA8BV,WAA9B,CAAhD,CAAP;AACD;;AAGDkM,mBAAiB;AACf,SAAKrQ,WAAL,CAAiBqQ,iBAAjB,CAAmC,KAAK3Q,IAAL,CAAU4B,SAA7C,EAAwDuB,SAAxD,CAAmEnD,IAAD,IAAc;AAC9EqD,aAAO,CAACC,GAAR,CAAYtD,IAAZ;AACA;;AACA,WAAK8B,gBAAL,GAAwB,IAAIxC,uEAAJ,CAAyCU,IAAzC,CAAxB;AACD,KAJD;AAKD;;AAED2B,cAAY,CAACqB,SAAD,EAAWC,EAAX,EAAa;AAEvB,SAAK3C,WAAL,CAAiB4C,gBAAjB,CAAkCF,SAAlC,EAA4CC,EAA5C,EAAgDE,SAAhD,CAA2DnD,IAAD,IAAY;AACpE,WAAKoD,OAAL,GAAcpD,IAAd;AACAqD,aAAO,CAACC,GAAR,CAAYtD,IAAZ;AACA,UAAIuD,KAAJ;;AACA,UAAI,KAAKH,OAAL,IAAgB,KAAKA,OAAL,CAAaI,MAAb,GAAsB,CAA1C,EAA6C;AAC3C,aAAKJ,OAAL,CAAaK,OAAb,CAAsBC,CAAD,IAAM;AACzB;AACAH,eAAK,GAAEG,CAAC,CAACH,KAAT;;AACE,cAAI,KAAKI,mBAAL,CAAyBC,OAAzB,CAAiCF,CAAjC,KAAuC,CAAC,CAA5C,EAA+C;AAC7C,iBAAKC,mBAAL,CAAyBE,IAAzB,CAA8BH,CAA9B;AACD;AACH;;AACD,SAPD;AAQD;;AACD,WAAK3B,uBAAL,CAA6B+B,UAA7B,CAAwC,KAAKH,mBAAL,CAAyB,CAAzB,CAAxC;AACA,WAAKrD,WAAL,CAAiByD,iBAAjB,CAAmCR,KAAnC,EAAyCN,EAAzC,EAA6CE,SAA7C,CAAwDnD,IAAD,IAAY;AACjE,aAAKgE,eAAL,GAAuBhE,IAAvB,EAA6B,MAAMqD,OAAO,CAACC,GAAR,CAAY,kBAAZ,CAAnC;AACD,OAFD;AAGD,KAlBD;AAmBD;;AAGDW,iBAAe,CAACC,KAAD,EAAa;AAC1B,SAAKF,eAAL,GAAqB,EAArB;AAEA,SAAKhC,sBAAL,CAA4BmC,KAA5B;AAEA,SAAK7D,WAAL,CAAiByD,iBAAjB,CAAmCG,KAAnC,EAAyC,CAAzC,EAA4Cf,SAA5C,CAAuDnD,IAAD,IAAY;AAChE;AACA,WAAKgE,eAAL,GAAuBhE,IAAvB,EAA6B,MAAMqD,OAAO,CAACC,GAAR,CAAY,kBAAZ,CAAnC;AACD,KAHD;AAID;AAGP;;;;;;;;AAaA;;;AACMzB,eAAa,CAACoB,EAAD,EAAG;AACd,SAAK5C,UAAL,CAAgB+D,aAAhB,CAA8BnB,EAA9B,EAAkCE,SAAlC,CAA6CnD,IAAD,IAAY;AACtDqD,aAAO,CAACC,GAAR,CAAYtD,IAAZ;AACA,WAAKqB,UAAL,GAAkBrB,IAAlB,EACC,KAAKqE,qBAAL,GAA6B,KAAKC,0BAAL,CAAgC7B,YAAhC,CACjCC,IADiC,CAEhCjD,yDAAS,CAAS,EAAT,CAFuB,EAGhCD,mDAAG,CAAC+E,IAAI,IAAI,KAAKC,YAAL,CAAkBD,IAAlB,CAAT,CAH6B,CAD9B;;AAMD,YAAMlB,OAAO,CAACC,GAAR,CAAY,kBAAZ,CAAN;AACF,KATC;AAWD;;AAGOkB,cAAY,CAACD,IAAD,EAAa;AAC/B,UAAME,WAAW,GAAGF,IAAI,CAACG,WAAL,EAApB;AACA,SAAKE,gBAAL,GAAuB,IAAIjF,uDAAJ,CAAgB,EAAhB,CAAvB;AACA,SAAKkF,mBAAL,GAA0B,IAAIlF,uDAAJ,CAAgB,EAAhB,CAA1B;;AACA,QAAG,KAAK2B,YAAL,CAAkBqB,KAAlB,CAAwByR,UAAxB,IAAqC,IAAxC,EAA6C;AAC3C,WAAKvP,mBAAL,CAAyBlC,KAAzB,CAA+BkB,IAA/B,CAAoC,KAAKvC,YAAL,CAAkBqB,KAAlB,CAAwByR,UAA5D;AACD;;AACD,QAAIpP,YAAY,GAAG,KAAK3D,UAAL,CAAgB4D,MAAhB,CAAuBC,MAAM,IAAIA,MAAM,CAACX,IAAP,CAAYG,WAAZ,GAA0BS,QAA1B,CAAmCV,WAAW,CAACC,WAAZ,EAAnC,CAAjC,CAAnB;AACA,WAAOM,YAAP;AACD;;AAEDW,oBAAkB,CAACjC,CAAD,EAAE;AAClB;AACA,SAAKY,0BAAL,CAAgCR,UAAhC,CAA2C,EAA3C,EAFkB,CAGlB;;AACA,QAAIJ,CAAC,IAAI,IAAT,EAAe;AACb,WAAKkC,mBAAL,CAAyBC,aAAzB,CAAuCC,KAAvC;AACD;AACF;;AAEDC,mBAAiB,CAACV,KAAD,EAAM;AACrBA,SAAK,CAACW,eAAN;AACA,SAAK1B,0BAAL,CAAgCR,UAAhC,CAA2C,EAA3C;AACD;;AAEDmC,iBAAe;AACd,SAAKpB,mBAAL,GAA0B,IAAIlF,uDAAJ,CAAgB,EAAhB,CAA1B;AACA,SAAKkF,mBAAL,CAAyBlC,KAAzB,CAA+BkB,IAA/B,CAAoC,KAAKvC,YAAL,CAAkBqB,KAAlB,CAAwByR,UAA5D;AACA;;AAED/N,wBAAsB,CAACpD,EAAD,EAAW;AAC/B,WAAO,KAAK2B,gBAAL,CAAsBjC,KAAtB,CAA4B2D,IAA5B,CAAiCvB,IAAI,IAAEA,IAAI,KAAK9B,EAAhD,CAAP;AACD;;AACDsD,2BAAyB,CAAC5D,KAAD,EAAc;AACrC,WAAO,KAAKkC,mBAAL,CAAyBlC,KAAzB,CAA+B2D,IAA/B,CAAoCvB,IAAI,IAAEA,IAAI,KAAKpC,KAAnD,CAAP;AACD;AACP;;;AACM6D,aAAW,CAACnB,KAAD,EAAqB;AAC9BA,SAAK,CAACW,eAAN;AACF;;AAMJS,SAAO;AAEL,SAAKnF,YAAL,CAAkB6C,KAAlB;AACD;;AACWvB,SAAO,CAACD,KAAD,EAAc;AAC3B,UAAM8B,WAAW,GAAG9B,KAAK,CAAC+B,WAAN,EAApB;AAEA,WAAO,KAAKgC,OAAL,CAAazB,MAAb,CAAoBC,MAAM,IAAIA,MAAM,CAACR,WAAP,GAAqBS,QAArB,CAA8BV,WAA9B,CAA9B,CAAP;AACD;;AACO1B,UAAQ,CAACJ,KAAD,EAAc;AAC5B,UAAMgE,YAAY,GAAGhE,KAAK,CAAC+B,WAAN,EAArB;AAEA,WAAO,KAAKkC,QAAL,CAAc3B,MAAd,CAAqB4B,OAAO,IAAIA,OAAO,CAACnC,WAAR,GAAsBS,QAAtB,CAA+BwB,YAA/B,CAAhC,CAAP;AACD;;AAEDG,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf;AACH;;AACDC,gBAAc,CAACC,OAAD,EAAUC,MAAV,EAAkBC,QAAlB,EAA4BC,KAA5B,EAAiC;AAC7C,SAAK3G,QAAL,CAAc4G,IAAd,CAAmBJ,OAAnB,EAA4BC,MAA5B,EAAoC;AAClCC,cAAQ,EAAE,IADwB;AAElCG,sBAAgB,EAAE,KAFgB;AAGlCC,wBAAkB,EAAE,QAHc;AAIlCC,gBAAU,EAAE,CAACJ,KAAD;AAJsB,KAApC;AAMD;;AAIDK,UAAQ;AAGJ;AACRnE,WAAO,CAACC,GAAR,CAAY,KAAKjC,UAAjB;;AACS,QAAG,KAAKC,YAAL,CAAkBqB,KAAlB,CAAwBZ,uBAAxB,IAAiD,CAApD,EAAsD;AACrD,WAAKgF,cAAL,CAAoB,oCAApB,EAAyD,MAAzD,EAAgE,MAAhE,EAAwE,cAAxE;AACA;AACD;;AAED,QAAG,KAAKzF,YAAL,CAAkBqB,KAAlB,CAAwBX,sBAAxB,IAAgD,CAAnD,EAAqD;AACnD,WAAK+E,cAAL,CAAoB,sCAApB,EAA2D,MAA3D,EAAkE,MAAlE,EAA0E,cAA1E;AACA;AACD;;AACD,QAAG,KAAKzF,YAAL,CAAkBqB,KAAlB,CAAwBV,uBAAxB,IAAiD,CAApD,EAAsD;AACpD,WAAK8E,cAAL,CAAoB,sBAApB,EAA2C,MAA3C,EAAkD,MAAlD,EAA0D,cAA1D;AACA;AACD;;AACD,QAAG,KAAKzF,YAAL,CAAkBqB,KAAlB,CAAwBP,KAAxB,IAA+B,CAA/B,IAAoC,KAAKd,YAAL,CAAkBqB,KAAlB,CAAwBP,KAAxB,GAA8B,MAArE,EAA4E;AAC1E,WAAK2E,cAAL,CAAoB,kDAApB,EAAuE,MAAvE,EAA8E,MAA9E,EAAsF,cAAtF;AACA;AACD;;AAED,QAAG,KAAKzF,YAAL,CAAkBqB,KAAlB,CAAwB5B,OAAxB,IAAiC,CAApC,EAAsC;AACpC,WAAKgG,cAAL,CAAoB,0CAApB,EAA+D,MAA/D,EAAsE,MAAtE,EAA8E,cAA9E;AACA;AACD;;AACD,QAAG,KAAKzF,YAAL,CAAkBqB,KAAlB,CAAwBL,YAAxB,IAAsC,CAAzC,EAA2C;AACzC,WAAKyE,cAAL,CAAoB,+CAApB,EAAoE,MAApE,EAA2E,MAA3E,EAAmF,cAAnF;AACA;AACD;;AACD,QAAG,KAAKzF,YAAL,CAAkBqB,KAAlB,CAAwBN,UAAxB,GAAmC,CAAtC,EAAwC;AACtC,WAAK0E,cAAL,CAAoB,6CAApB,EAAkE,MAAlE,EAAyE,MAAzE,EAAiF,cAAjF;AACA;AACD;;AACD,QAAG,KAAKzF,YAAL,CAAkBqB,KAAlB,CAAwBqH,UAAxB,IAAoC,CAApC,IAAwC,KAAK1I,YAAL,CAAkBqB,KAAlB,CAAwBqH,UAAxB,IAAqC,IAAhF,EAAqF;AACnF,WAAKjD,cAAL,CAAoB,0CAApB,EAA+D,MAA/D,EAAsE,MAAtE,EAA8E,cAA9E;AACA;AACD;;AACD,QAAG6R,2DAAU,CAAC,KAAKtX,YAAL,CAAkBqB,KAAlB,CAAwBqH,UAAzB,EAAqC,YAArC,EAAmD,OAAnD,CAAV,GAAwE4O,2DAAU,CAAC,KAAKU,KAAN,EAAa,YAAb,EAA2B,OAA3B,CAAlF,IAA0HV,2DAAU,CAAC,KAAKtX,YAAL,CAAkBqB,KAAlB,CAAwBqH,UAAzB,EAAqC,YAArC,EAAmD,OAAnD,CAAV,IAA0E4O,2DAAU,CAAC,KAAKU,KAAN,EAAa,YAAb,EAA2B,OAA3B,CAAjN,EAAsP;AACpP,WAAKvS,cAAL,CAAoB,yCAApB,EAA8D,MAA9D,EAAqE,MAArE,EAA6E,cAA7E;AACA;AACD;;AAGD,QAAG,KAAKzF,YAAL,CAAkBqB,KAAlB,CAAwBT,IAA3B,EAAgC;AAC9B;;;;;AAKI,UAAIuF,MAAM,GAAGC,cAAc,CAACC,OAAf,CAAuB,QAAvB,CAAb;AACA;;AACC,UAAI,KAAKrG,YAAL,CAAkBsG,KAAtB,EAA8B;AAE5B,aAAKC,eAAL,CAAqBnH,aAArB,GAAoC,KAAKY,YAAL,CAAkBwG,GAAlB,CAAsB,wBAAtB,EAAgDnF,KAApF;AAED;;AACC,aAAKkF,eAAL,CAAqBlH,QAArB,GAA+B,KAAKU,UAAL,CAAgBkY,IAAhB,CAAqBzH,CAAC,IAAEA,CAAC,CAACvN,IAAF,IAAQ,KAAKjD,YAAL,CAAkBwG,GAAlB,CAAsB,YAAtB,EAAoCnF,KAApE,EAA2EwD,QAA1G;AACA,aAAK0B,eAAL,CAAqBjH,eAArB,GAAuCmH,MAAM,CAAC,KAAKzG,YAAL,CAAkBwG,GAAlB,CAAsB,MAAtB,EAA8BnF,KAA/B,CAA7C,EACA,KAAKkF,eAAL,CAAqBhH,iBAArB,GAAuC,KAAKJ,QAAL,CAAcuH,SAAd,CAAyB,KAAK1G,YAAL,CAAkBwG,GAAlB,CAAsB,QAAtB,EAAgCnF,KAAzD,EAA+D,YAA/D,CADvC,EAEA,KAAKkF,eAAL,CAAqB/G,gBAArB,GAAuC,KAAKQ,YAAL,CAAkBwG,GAAlB,CAAsB,OAAtB,EAA+BnF,KAFtE,EAIA,KAAKkF,eAAL,CAAqB9G,OAArB,GAA8B,KAAKO,YAAL,CAAkBwG,GAAlB,CAAsB,SAAtB,EAAiCnF,KAJ/D,EAKA,KAAKkF,eAAL,CAAqB7G,YAArB,GAAmC,KAAKM,YAAL,CAAkBwG,GAAlB,CAAsB,cAAtB,EAAsCnF,KALzE,EAMA,KAAKkF,eAAL,CAAqB5G,UAArB,GAAgC,KAAKK,YAAL,CAAkBwG,GAAlB,CAAsB,YAAtB,EAAoCnF,KANpE;AAOA,aAAKkF,eAAL,CAAqB3G,SAArB,GAAgC,KAAKI,YAAL,CAAkBwG,GAAlB,CAAsB,WAAtB,EAAmCnF,KAAnE,EACA,KAAKkF,eAAL,CAAqB1G,WAArB,GAAkC,KAAKG,YAAL,CAAkBwG,GAAlB,CAAsB,aAAtB,EAAqCnF,KADvE,EAGA,KAAKkF,eAAL,CAAqBzG,SAArB,GAA+B6G,MAAM,CAACR,MAAD,CAHrC;AAIA,aAAKI,eAAL,CAAqBmC,UAArB,GAAgC,KAAKvJ,QAAL,CAAcuH,SAAd,CAAyB,KAAK1G,YAAL,CAAkBwG,GAAlB,CAAsB,YAAtB,EAAoCnF,KAA7D,EAAmE,YAAnE,CAAhC,EACA,KAAKkF,eAAL,CAAqBiR,kBAArB,GAAyC,KAAKxX,YAAL,CAAkBwG,GAAlB,CAAsB,oBAAtB,EAA4CnF,KADrF;AAEAU,eAAO,CAACC,GAAR,CAAY,KAAKuE,eAAjB;AACA,aAAKvH,WAAL,CAAiB4H,iBAAjB,CAAmC,KAAKL,eAAxC,EAAyD1E,SAAzD,CAAmE;AACjEgF,cAAI,EAAGC,GAAD,IAAa;AACjB,iBAAK9H,WAAL,CAAiByG,cAAjB,CAAgC,wBAAhC,EAAyD,MAAzD,EAAgE,MAAhE,EAAwE,cAAxE;AACA,iBAAK4J,iBAAL;AACA,iBAAKpQ,SAAL,CAAeuG,KAAf,CAAqB,IAArB;AACD,WALgE;AAMjEuB,eAAK,EAAGC,GAAD,IAAa;AAClB,iBAAKhI,WAAL,CAAiByG,cAAjB,CAAgCuB,GAAG,CAACD,KAApC,EAA0C,MAA1C,EAAiD,MAAjD,EAAyD,cAAzD;AACD;AARgE,SAAnE;AAYH,OAxC0B,CAyC5B;AACF;;AACD,KAxFG,CA2FH;;AACF;;AAxVqC;;;mBAA3BwQ,6BAA2BjZ,+DAAAA,CAuClBP,sEAvCkB,GAuCHO,+DAAAA,CAAAA,uDAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,uDAAAA,GAAAA,+DAAAA,CAAAA,oFAAAA,GAAAA,+DAAAA,CAAAA,mFAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,mEAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,qDAAAA;AAAA;;;QAvCxBiZ;AAA2BpQ;AAAAC;AAAA;;;;;;;;;;;;;;;;;AC/E5C9I,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAkEA,MAAAA,oDAAAA;AAAiCA,MAAAA,0DAAAA;AACrGA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AAAiCA,MAAAA,wDAAAA;AAAA,eAAU+I,cAAV;AAAoB,OAApB;AACjC/I,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAGIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAiBA,MAAAA,0DAAAA;AAC3DA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAINA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AAEEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAmBA,MAAAA,0DAAAA;AACjEA,MAAAA,4DAAAA;AACDA,MAAAA,wDAAAA;AACDA,MAAAA,0DAAAA;AACIA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAaA,MAAAA,0DAAAA;AACvDA,MAAAA,4DAAAA;AAA6DA,MAAAA,wDAAAA;AAAA,eAAsB+I,8BAAtB;AAAgD,OAAhD;AACvD/I,MAAAA,4DAAAA;AACEA,MAAAA,oDAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAwCA,MAAAA,wDAAAA;AAAA,eAAW+I,uBAAX;AAA8B,OAA9B;AAAxC/I,MAAAA,0DAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,wDAAAA;;AAGAA,MAAAA,wDAAAA;;AAGJA,MAAAA,0DAAAA;AACNA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AAIFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AAEIA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAA2CA,MAAAA,oDAAAA;AAAiBA,MAAAA,0DAAAA;AAC5DA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AASEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA2CA,MAAAA,oDAAAA;AAAmBA,MAAAA,0DAAAA;AAC9DA,MAAAA,uDAAAA;AACAA,MAAAA,uDAAAA;AACAA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AAIAA,MAAAA,4DAAAA;AACFA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAA2CA,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AACjDA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAA2CA,MAAAA,oDAAAA;AAASA,MAAAA,0DAAAA;AACpDA,MAAAA,uDAAAA;AAEJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AACIA,MAAAA,0DAAAA;AAEFA,MAAAA,4DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAcA,MAAAA,0DAAAA;AAC1DA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAA6CA,MAAAA,oDAAAA;AAAYA,MAAAA,0DAAAA;AACzDA,MAAAA,uDAAAA;AAEJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAUA,MAAAA,0DAAAA;AACtDA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAYA,MAAAA,0DAAAA;AACxDA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;;AACJA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA2CA,MAAAA,oDAAAA;AAAkBA,MAAAA,0DAAAA;AAC7DA,MAAAA,uDAAAA;AACAA,MAAAA,uDAAAA;AACAA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAmBA,MAAAA,0DAAAA;AAC/DA,MAAAA,uDAAAA;AAEJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AACAA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACeA,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AACrBA,MAAAA,4DAAAA;AAA2DA,MAAAA,wDAAAA;AAAA,eAAS+I,aAAT;AAAkB,OAAlB;AAAoB/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AACtFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;;;;;;;;;;;;AA/JMA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AASqEA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAYtCA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAWzBA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AAK2IA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACrGA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAKrBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,SAAAA,yDAAAA;AAGgDA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,YAAAA,yDAAAA;AA+BtBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACVA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AA+CoFA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAE1DA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,YAAAA,yDAAAA;AAStBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACVA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjJvC;AACA;AACA;AAGA;AAIA;AAOA;AAEA;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACiBIA,IAAAA,4DAAAA;AAA4EA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAyDA,IAAAA,oDAAAA;AAAwBA,IAAAA,0DAAAA;;;;;;AAJjKA,IAAAA,4DAAAA;AACEA,IAAAA,uDAAAA;AAEAA,IAAAA,4DAAAA;AACEA,IAAAA,wDAAAA;AACFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;;;;;AAFyDA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AAUjDA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;;;;;;;;;;;;AACjFA,IAAAA,4DAAAA;AAA2KA,IAAAA,oDAAAA;AAAsBA,IAAAA,0DAAAA;;;;;AAAhEA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAA0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAG3KA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAAyGA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAjEA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAA0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGzGA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAA2KA,IAAAA,oDAAAA;AAAsBA,IAAAA,0DAAAA;;;;;AAAhEA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAA0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAG3KA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AAC7EA,IAAAA,4DAAAA;AAA2KA,IAAAA,oDAAAA;AAAqBA,IAAAA,0DAAAA;;;;;AAA/DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAA0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAG3KA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AAC7EA,IAAAA,4DAAAA;AAAyGA,IAAAA,oDAAAA;AAAsBA,IAAAA,0DAAAA;;;;;AAAhEA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAA0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGzGA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAcA,IAAAA,0DAAAA;;;;;;AAC/EA,IAAAA,4DAAAA;AAAyGA,IAAAA,oDAAAA;AAAwBA,IAAAA,0DAAAA;;;;;AAAlEA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAA0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGzGA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;;AACpFA,IAAAA,4DAAAA;AAAyGA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;;;;;AAA3DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAA0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGzGA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAqBA,IAAAA,0DAAAA;;;;;;AACtFA,IAAAA,4DAAAA;AAAyGA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;AAA7DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAA0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIzGA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAOA,IAAAA,0DAAAA;;;;;;AACxEA,IAAAA,4DAAAA;AAAyGA,IAAAA,oDAAAA;AAAkBA,IAAAA,0DAAAA;;;;;AAA5DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAA0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIzGA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAUA,IAAAA,0DAAAA;;;;;;AAC3EA,IAAAA,4DAAAA;AAA0GA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;AAA9DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAA0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAI1GA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;;;;;;AAChFA,IAAAA,4DAAAA;AAA0GA,IAAAA,oDAAAA;AAAyBA,IAAAA,0DAAAA;;;;;AAAnEA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAA0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAI1GA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAYA,IAAAA,0DAAAA;;;;;;AAC9EA,IAAAA,4DAAAA;AAA0GA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAjEA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAA0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAG1GA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAWA,IAAAA,0DAAAA;;;;;;AAC7EA,IAAAA,4DAAAA;AAA0GA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAjEA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAA0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAI1GA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAqBA,IAAAA,0DAAAA;;;;;;AACvFA,IAAAA,4DAAAA;AAA0KA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;AAA5DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAAyCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAG1KA,IAAAA,4DAAAA;AAAkEA,IAAAA,oDAAAA;AAAMA,IAAAA,0DAAAA;;;;;;AACxEA,IAAAA,4DAAAA;AAA0GA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;AAA7DA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAA0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAG1GA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAIAA,IAAAA,4DAAAA;AAA4FA,IAAAA,oDAAAA;AAAOA,IAAAA,0DAAAA;;;;;;;;AAGvFA,IAAAA,4DAAAA;AAAmIA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAA;AACzIA,IAAAA,4DAAAA;AAA0BA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;AAChCA,IAAAA,0DAAAA;;;;;AAFgCA,IAAAA,wDAAAA;;;;;;;;;;;;;;AAFpCA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAIA,IAAAA,4DAAAA;AAAIA,IAAAA,wDAAAA;AAECA,IAAAA,0DAAAA;AACTA,IAAAA,4DAAAA;AAAIA,IAAAA,4DAAAA;AAAyGA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC3GA,IAAAA,4DAAAA;AAAUA,IAAAA,oDAAAA;AAAUA,IAAAA,0DAAAA;AACtBA,IAAAA,0DAAAA;AAASA,IAAAA,0DAAAA;AACTA,IAAAA,4DAAAA;AAAIA,IAAAA,4DAAAA;AAAsGA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACxGA,IAAAA,4DAAAA;AAAyCA,IAAAA,oDAAAA;AAAKA,IAAAA,0DAAAA;AAChDA,IAAAA,0DAAAA;AAASA,IAAAA,0DAAAA;AAAKA,IAAAA,0DAAAA;AAChBA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;;;;;;AAV2EA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAGlBA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,YAAAA,6DAAAA;AAGHA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,YAAAA,6DAAAA;AACrCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AAOjBA,IAAAA,4DAAAA;AAAoEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;;;AACjFA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAgGA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAA4C,eAA5C,EAA4C;AAAA;AAAA;AAAA;AAAA,KAA5C;AAAhGA,IAAAA,0DAAAA;AACCA,IAAAA,0DAAAA;;;;;AADyDA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,2CAAqC,SAArC,EAAqC4Z,kBAArC;;;;;;AAK5D5Z,IAAAA,4DAAAA;AAAoEA,IAAAA,oDAAAA;AAASA,IAAAA,0DAAAA;;;;;;;;AAC7EA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAmGA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAA2C,eAA3C,EAA2C;AAAA;AAAA;AAAA;AAAA,KAA3C;AAAnGA,IAAAA,0DAAAA;AACCA,IAAAA,0DAAAA;;;;;;AADyDA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,sDAAwC,SAAxC,EAAwC6Z,oBAAxC;;;;;;AAI9D7Z,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;;;;;;AC3GkBA,IAAAA,4DAAAA;AAAuGA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AACvGA,IAAAA,4DAAAA;AAAWA,IAAAA,oDAAAA;AAAKA,IAAAA,0DAAAA;AAChBA,IAAAA,0DAAAA;;;;AAFQA,IAAAA,wDAAAA;;;;;;AAKZA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAKA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;AACxBA,IAAAA,0DAAAA;;;;;;;;AACAA,IAAAA,4DAAAA;AAAuHA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AACrHA,IAAAA,oDAAAA;AACFA,IAAAA,0DAAAA;;;;;AAFiGA,IAAAA,wDAAAA;AAC/FA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AA4ERA,IAAAA,4DAAAA;AAAiIA,IAAAA,oDAAAA;AAAUA,IAAAA,0DAAAA;;;;;AAA3BA,IAAAA,wDAAAA;AAAiBA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;;;AC/GhFA,IAAAA,oDAAAA;;;;;;;;AAF3DA,IAAAA,4DAAAA;AAEEA,IAAAA,wDAAAA;AAEAA,IAAAA,4DAAAA;AAAyBA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAEvBA,IAAAA,uDAAAA;AAGAA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAA0CA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;AACzDA,IAAAA,uDAAAA;AAEFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;AACAA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAsDA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAtDA,IAAAA,0DAAAA;AACAA,IAAAA,uDAAAA;AACAA,IAAAA,4DAAAA;AAA+BA,IAAAA,oDAAAA;AAA2BA,IAAAA,0DAAAA;AAC1DA,IAAAA,uDAAAA;AAAIA,IAAAA,uDAAAA;AACNA,IAAAA,0DAAAA;AAoBAA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACeA,IAAAA,oDAAAA;AAAMA,IAAAA,0DAAAA;AACrBA,IAAAA,4DAAAA;AAA2DA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAoBA,IAAAA,oDAAAA;AAAKA,IAAAA,0DAAAA;AACtFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;;;;;AA/CQA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AAiDmDA,IAAAA,oDAAAA;;;;;;AAkEjDA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAQA,IAAAA,0DAAAA;;;;;;;;AACxEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAC9DA,IAAAA,4DAAAA;AAAqDA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgCA,IAAAA,oDAAAA;AAAOA,IAAAA,0DAAAA;AAE7FA,IAAAA,0DAAAA;;;;;AAH+DA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAKlEA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;;;;;;;AA1ERA,IAAAA,4DAAAA;AACEA,IAAAA,wDAAAA;AACAA,IAAAA,4DAAAA;AAA+BA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAE7BA,IAAAA,4DAAAA;AACEA,IAAAA,uDAAAA;AASAA,IAAAA,uDAAAA;AAWAA,IAAAA,uDAAAA;AAWFA,IAAAA,0DAAAA;AAEAA,IAAAA,4DAAAA;AAEEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAA0CA,IAAAA,oDAAAA;AAAcA,IAAAA,0DAAAA;AACxDA,IAAAA,uDAAAA;AAEFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;AACAA,IAAAA,4DAAAA;AAEEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAA0CA,IAAAA,oDAAAA;AAAgBA,IAAAA,0DAAAA;AAC1DA,IAAAA,uDAAAA;AAEFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;AACAA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAsDA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAtDA,IAAAA,0DAAAA;AACAA,IAAAA,uDAAAA;AACAA,IAAAA,4DAAAA;AAA+BA,IAAAA,oDAAAA;AAA2BA,IAAAA,0DAAAA;AAC1DA,IAAAA,uDAAAA;AAAIA,IAAAA,uDAAAA;AACNA,IAAAA,0DAAAA;AACAA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACEA,IAAAA,qEAAAA;AACEA,IAAAA,wDAAAA;AACAA,IAAAA,wDAAAA;AAIFA,IAAAA,mEAAAA;AACAA,IAAAA,wDAAAA;AACAA,IAAAA,wDAAAA;AAEFA,IAAAA,0DAAAA;AACAA,IAAAA,4DAAAA;AACEA,IAAAA,uDAAAA;AACFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;AACAA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACeA,IAAAA,oDAAAA;AAAMA,IAAAA,0DAAAA;AACrBA,IAAAA,4DAAAA;AAA2DA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAoBA,IAAAA,oDAAAA;AAAKA,IAAAA,0DAAAA;AACtFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;;;;;AAvFQA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AA+DeA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAQ+BA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AACYA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAIZA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA,oBAAAA,6DAAAA,UAAoC,UAApC,EAAoC,CAApC;;;;;;;;ACzHpDA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAoDA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAA2BA,IAAAA,4DAAAA;AAA6BA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;AAAKA,IAAAA,0DAAAA;AAClIA,IAAAA,0DAAAA;;;;;;AAQIA,IAAAA,4DAAAA;AAA8FA,IAAAA,oDAAAA;AAASA,IAAAA,0DAAAA;;;;;;AACvGA,IAAAA,4DAAAA;AACEA,IAAAA,oDAAAA;AACFA,IAAAA,0DAAAA;;;;;AADEA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAOFA,IAAAA,4DAAAA;AAA8FA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;;;;;;;;AAajGA,IAAAA,4DAAAA;AAAiJA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAA;AAAsDA,IAAAA,oDAAAA;AAAOA,IAAAA,0DAAAA;;;;;AAArKA,IAAAA,oEAAAA;;;;;;AAF3CA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAqFA,IAAAA,oDAAAA;AAAkCA,IAAAA,0DAAAA;AACvHA,IAAAA,wDAAAA;AACFA,IAAAA,0DAAAA;;;;;AAFuDA,IAAAA,uDAAAA;AAAAA,IAAAA,mEAAAA;AAAgCA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;AAC1EA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AARnBA,IAAAA,4DAAAA;AACEA,IAAAA,oDAAAA;AACAA,IAAAA,uDAAAA;AACAA,IAAAA,4DAAAA;AAAuDA,IAAAA,oDAAAA;AAAiCA,IAAAA,0DAAAA;AAAOA,IAAAA,uDAAAA;AAC/FA,IAAAA,4DAAAA;AAAsDA,IAAAA,oDAAAA;AAAoCA,IAAAA,0DAAAA;AAC1FA,IAAAA,4DAAAA;AACIA,IAAAA,wDAAAA;AAIJA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;;;;;AAVEA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;AAEuDA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;AACDA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;AAEzBA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AAVnCA,IAAAA,4DAAAA;AAEEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACAA,IAAAA,wDAAAA;AAYAA,IAAAA,4DAAAA;AAAwEA,IAAAA,oDAAAA;AAA2BA,IAAAA,0DAAAA;AAAOA,IAAAA,uDAAAA;AAC1GA,IAAAA,4DAAAA;AAAwEA,IAAAA,oDAAAA;AAA6BA,IAAAA,0DAAAA;AAEvGA,IAAAA,0DAAAA;AACAA,IAAAA,0DAAAA;AAEFA,IAAAA,0DAAAA;;;;;AAlBkCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAY0CA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;AACAA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAQ5EA,IAAAA,4DAAAA;AAA8FA,IAAAA,oDAAAA;AAAgBA,IAAAA,0DAAAA;;;;;;;;AAYlGA,IAAAA,4DAAAA;AAAiJA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAA;AAAsDA,IAAAA,oDAAAA;AAAOA,IAAAA,0DAAAA;;;;;AAApKA,IAAAA,oEAAAA;;;;;;AAF5CA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAoFA,IAAAA,oDAAAA;AAAkCA,IAAAA,0DAAAA;AACtHA,IAAAA,wDAAAA;AACFA,IAAAA,0DAAAA;;;;;AAFuDA,IAAAA,uDAAAA;AAAAA,IAAAA,mEAAAA;AAA+BA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;AACzEA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AARnBA,IAAAA,4DAAAA;AACEA,IAAAA,oDAAAA;AACAA,IAAAA,uDAAAA;AACAA,IAAAA,4DAAAA;AAAsDA,IAAAA,oDAAAA;AAAmCA,IAAAA,0DAAAA;AAAOA,IAAAA,uDAAAA;AAChGA,IAAAA,4DAAAA;AAAsDA,IAAAA,oDAAAA;AAAoCA,IAAAA,0DAAAA;AAC1FA,IAAAA,4DAAAA;AACIA,IAAAA,wDAAAA;AAIJA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;;;;;AAVEA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;AAEsDA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;AACAA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;AAEzBA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AATnCA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AACAA,IAAAA,wDAAAA;AAaFA,IAAAA,0DAAAA;AACAA,IAAAA,0DAAAA;AAGFA,IAAAA,0DAAAA;;;;;AAjBkCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AA6BlCA,IAAAA,4DAAAA;AAA+GA,IAAAA,oDAAAA;AAAQA,IAAAA,0DAAAA;;;;;;AACvHA,IAAAA,4DAAAA;AAA+GA,IAAAA,oDAAAA;AAA2BA,IAAAA,0DAAAA;;;;;AAA3BA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAG/GA,IAAAA,4DAAAA;AAA+GA,IAAAA,oDAAAA;AAAQA,IAAAA,0DAAAA;;;;;;;;AAErHA,IAAAA,4DAAAA;AACAA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAA;AAA0EA,IAAAA,oDAAAA;AAAMA,IAAAA,0DAAAA;;;;;;AADlCA,IAAAA,wDAAAA,YAAAA,6DAAAA;;;;;;;;AAM9CA,IAAAA,4DAAAA;AACAA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAA;AAA+EA,IAAAA,oDAAAA;AAAKA,IAAAA,0DAAAA;;;;;;AADpCA,IAAAA,wDAAAA,YAAAA,6DAAAA;;;;;;AAPlDA,IAAAA,4DAAAA;AACEA,IAAAA,wDAAAA;AACqFA,IAAAA,oDAAAA;AAKrFA,IAAAA,wDAAAA;AAGFA,IAAAA,0DAAAA;;;;;AATOA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAMAA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AAOTA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;;;;;;;AC9GNA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAsDA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAtDA,IAAAA,0DAAAA;AACAA,IAAAA,uDAAAA;AACAA,IAAAA,4DAAAA;AAAgDA,IAAAA,oDAAAA;AAA2BA,IAAAA,0DAAAA;AAC3EA,IAAAA,uDAAAA;AAAIA,IAAAA,uDAAAA;AACNA,IAAAA,0DAAAA;;;;;;;;AACAA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAA4CA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAC7BA,IAAAA,oDAAAA;AAAMA,IAAAA,0DAAAA;AAEvBA,IAAAA,0DAAAA;;;;;;AAKMA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;;;;;;AACjFA,IAAAA,4DAAAA;AAAiIA,IAAAA,oDAAAA;AAAsBA,IAAAA,0DAAAA;;;;;AAAtBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGjIA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAGAA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAQA,IAAAA,0DAAAA;;;;;;;;AAGtEA,IAAAA,4DAAAA;AAAmGA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAA;AAAsIA,IAAAA,oDAAAA;AAAKA,IAAAA,0DAAAA;;;;;;;;AAFhPA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAC9DA,IAAAA,4DAAAA;AAAqDA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgCA,IAAAA,oDAAAA;AAAOA,IAAAA,0DAAAA;AAC5FA,IAAAA,wDAAAA;AACDA,IAAAA,0DAAAA;;;;;;AAH+DA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;AAEnDA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AAGfA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAEFA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAiCA,IAAAA,4DAAAA;AAC/BA,IAAAA,oDAAAA;AACFA,IAAAA,0DAAAA;AAAOA,IAAAA,0DAAAA;AACTA,IAAAA,0DAAAA;;;;;;ACpCcA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAMA,IAAAA,0DAAAA;;;;;;;;AACtEA,IAAAA,4DAAAA;AACIA,IAAAA,4DAAAA;AAAiBA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA,OAAyB,OAAzB,EAAyB;AAAA;AAAA;AAAA;AAAA;AAAA,KAAzB;AACbA,IAAAA,uDAAAA;AACJA,IAAAA,0DAAAA;AACJA,IAAAA,0DAAAA;;;;;;AAHqBA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AACKA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AAK1BA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AACpEA,IAAAA,4DAAAA;AAAiHA,IAAAA,oDAAAA;AAAkBA,IAAAA,0DAAAA;;;;;AAAlBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAGjHA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AAGAA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAKA,IAAAA,0DAAAA;;;;;;AACrEA,IAAAA,4DAAAA;AAAiHA,IAAAA,oDAAAA;AAAiBA,IAAAA,0DAAAA;;;;;AAAjBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAErHA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;AN6GL,IAAIC,gBAAgB,GAAuB,EAA3C;AASD,MAAO6Z,2BAAP,CAAkC;AAkCtC3Z,cAAoBI,WAApB,EAAsDC,MAAtD,EAAyF+J,MAAzF,EAAoH7J,WAApH,EAAyJqZ,KAAzJ,EACUtC,QADV,EAC6CjN,MAD7C,EAC2D;AADvC;AAAkC;AAAmC;AAA2B;AAAqC;AAC/I;AAAmC;AA9B7C,iBAAgB,CAAhB;AACA,8BAAoD,QAApD;AACA,4BAAgD,KAAhD,CA4B2D,CAzB3D;;AACA,4BAA6B,CAAC,WAAD,EAAa,cAAb,EAA6B,YAA7B,EAA0C,cAA1C,EAA0D,YAA1D,EAAuE,cAAvE,EAAuF,YAAvF,EAAoG,cAApG,EAAoH,WAApH,EAAgI,cAAhI,EAAgJ,aAAhJ,EAA8J,cAA9J,EAA8K,MAA9K,EAAqL,cAArL,EAAqM,QAArM,EAA8M,cAA9M,EAA8N,OAA9N,EAAsO,cAAtO,EAAsP,SAAtP,EAAgQ,cAAhQ,EAAgR,cAAhR,EAA+R,cAA/R,EAA+S,YAA/S,EAA4T,cAA5T,EAA4U,QAA5U,EAAqV,cAArV,EAAoW,YAApW,EAAiX,UAAjX,EAA4X,MAA5X,EAAmY,cAAnY,EAAkZ,QAAlZ,EAA2Z,cAA3Z,EAA0a,UAA1a,CAA7B;AAEA,2BAAmC;AAAE1J,mBAAa,EAAE,CAAjB;AAAoBC,cAAQ,EAAE,CAA9B;AAAiCC,qBAAe,EAAE,EAAlD;AAAsDC,uBAAiB,EAAE,EAAzE;AAA6EC,sBAAgB,EAAE,CAA/F;AAAkGC,aAAO,EAAE,CAA3G;AAA8GC,kBAAY,EAAE,CAA5H;AAA+HC,gBAAU,EAAE,CAA3I;AAA8IC,eAAS,EAAE,EAAzJ;AAA6JC,iBAAW,EAAE,EAA1K;AAA8KC,eAAS,EAAE,CAAzL;AACjC4I,gBAAU,EAAC,EADsB;AACnB8O,wBAAkB,EAAC;AADA,KAAnC;AAGA,iCAAwC,EAAxC;AACA,4BAAiC;AAACvP,QAAE,EAAC,CAAJ;AAAMqQ,gCAA0B,EAAC,CAAjC;AAAmCC,cAAQ,EAAC,EAA5C;AAA+CC,mBAAa,EAAC,EAA7D;AAAgEC,kBAAY,EAAC,IAAI7M,IAAJ,EAA7E;AAC/B8M,UAAI,EAAC,EAD0B;AACvBC,gBAAU,EAAC,CADY;AACVpQ,cAAQ,EAAC,IADC;AACIqQ,WAAK,EAAC,KADV;AACgBC,cAAQ,EAAC,KADzB;AAC+BC,YAAM,EAAC,EADtC;AACyCC,mCAA6B,EAAC,IADvE;AAC6EC,oCAA8B,EAAC,IAD5G;AACiHC,2BAAqB,EAAC;AADvI,KAAjC;AAIA,sBAAmB,IAAnB;AACA,yBAAsB,IAAtB;AAGA,+BAA4B,KAA5B;AAWK;;AATLlQ,iBAAe;AAEb,SAAKsP,KAAL,CAAWa,QAAX,CAAoBrX,SAApB,CAA8BsX,MAAM,IAAG;AACrC,WAAKxX,EAAL,GAAU,CAACwX,MAAM,CAAC3S,GAAP,CAAW,IAAX,CAAX;AACA,WAAKjG,aAAL,CAAmB,KAAKoB,EAAxB;AACD,KAHD;AAID;;AAKDxB,UAAQ;AACN,SAAKkY,KAAL,CAAWa,QAAX,CAAoBrX,SAApB,CAA8BsX,MAAM,IAAG;AACrC,WAAKxX,EAAL,GAAU,CAACwX,MAAM,CAAC3S,GAAP,CAAW,IAAX,CAAX;AACA,WAAKjG,aAAL,CAAmB,KAAKoB,EAAxB;AACD,KAHD;AAIAI,WAAO,CAACC,GAAR,CAAYoE,cAAc,CAACC,OAAf,CAAuB,MAAvB,CAAZ;AACA,SAAK+C,IAAL,GAAUhD,cAAc,CAACC,OAAf,CAAuB,MAAvB,CAAV;;AACE,QAAG,KAAK+C,IAAL,IAAW,kBAAX,IAAiC,KAAKA,IAAL,IAAW,iBAA/C,EACA;AAGE,WAAKlC,gBAAL,GAAwB,CAAC,WAAD,EAAa,cAAb,EAA6B,YAA7B,EAA0C,cAA1C,EAA0D,YAA1D,EAAuE,cAAvE,EAAuF,YAAvF,EAAoG,cAApG,EAAoH,WAApH,EAAgI,cAAhI,EAAgJ,aAAhJ,EAA8J,cAA9J,EAA8K,MAA9K,EAAqL,cAArL,EAAqM,QAArM,EAA8M,cAA9M,EAA8N,OAA9N,EAAsO,cAAtO,EAAsP,SAAtP,EAAgQ,cAAhQ,EAAgR,cAAhR,EAA+R,cAA/R,EAA+S,YAA/S,EAA4T,cAA5T,EAA4U,QAA5U,EAAqV,cAArV,EAAoW,YAApW,EAAiX,cAAjX,EAAgY,QAAhY,EAAyY,MAAzY,EAAgZ,cAAhZ,EAA+Z,QAA/Z,EAAwa,cAAxa,EAAub,UAAvb,CAAxB;AAED,KAND,MAOI;AACF,WAAKA,gBAAL,GAAwB,CAAC,WAAD,EAAa,cAAb,EAA6B,YAA7B,EAA0C,cAA1C,EAA0D,YAA1D,EAAuE,cAAvE,EAAuF,YAAvF,EAAoG,cAApG,EAAoH,WAApH,EAAgI,cAAhI,EAAgJ,aAAhJ,EAA8J,cAA9J,EAA8K,MAA9K,EAAqL,cAArL,EAAqM,QAArM,EAA8M,cAA9M,EAA8N,OAA9N,EAAsO,cAAtO,EAAsP,SAAtP,EAAgQ,cAAhQ,EAAgR,cAAhR,EAA+R,cAA/R,EAA+S,YAA/S,EAA4T,cAA5T,EAA4U,QAA5U,EAAqV,cAArV,EAAoW,YAApW,EAAiX,MAAjX,CAAxB;AACD;AAEH;;;;;;;;;;;;;AAaD;;AAGDmC,SAAO;AACL,SAAK7I,gBAAL,GAAwB,IAAIxC,uEAAJ,CAAyCO,gBAAzC,CAAxB;AACA,SAAKiC,gBAAL,CAAsByI,SAAtB,GAAkC,KAAKA,SAAvC;AACD;;AAEDM,aAAW,CAACxF,KAAD,EAAa;AACtB,UAAMZ,WAAW,GAAIY,KAAK,CAACyF,MAAN,CAAkCnI,KAAvD;AACA,SAAKb,gBAAL,CAAsBmD,MAAtB,GAA+BR,WAAW,CAACsG,IAAZ,GAAmBrG,WAAnB,EAA/B;AACD;;AACDgW,WAAS;AACP,SAAKtQ,MAAL,CAAYmB,QAAZ,CAAqB,CAAC,iBAAD,CAArB;AACD;;AACDoP,kBAAgB,CAACnG,SAAD,EAAWrL,MAAX,EAAiB;AAI7B,QAAI,CAACmD,OAAO,CAAC,gDAAD,CAAZ,EAAgE;AAC9DnD,YAAM,CAACnD,eAAP;AACA,aAAO,KAAP;AACD,KAHD,MAIK;AACL,WAAK6B,eAAL,CAAqBnH,aAArB,GAAoC8T,SAAS,CAACvR,EAA9C,CADK,CAEH;;AAEA,WAAK3C,WAAL,CAAiBmU,iBAAjB,CAAmC,KAAK5M,eAAxC,EAAyD1E,SAAzD,CAAmE;AACjEgF,YAAI,EAAGC,GAAD,IAAa;AACjB,eAAKvG,aAAL,CAAmB,KAAKoB,EAAxB;AACE,eAAK3C,WAAL,CAAiByG,cAAjB,CAAgC,uBAAhC,EAAyD,MAAzD,EAAiE,MAAjE,EAAyE,cAAzE;AACH,SAJgE;AAK/DsB,aAAK,EAAGC,GAAD,IAAa;AAClB,eAAKhI,WAAL,CAAiByG,cAAjB,CAAgCuB,GAAG,CAACD,KAApC,EAA2C,MAA3C,EAAmD,MAAnD,EAA2D,cAA3D;AACA,iBAAO,KAAP;AACD;AAR8D,OAAnE;AAWE,aAAO,IAAP;AAED;AACJ;;AACHgM,eAAa;AACX,UAAM9T,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiByR,qFAAjB,EAA8C;AAC9D7Y,UAAI,EAAE;AAAE4B,iBAAS,EAAE,KAAKqB;AAAlB,OADwD;AAE9DiI,YAAM,EAAE,KAFsD;AAG9DC,WAAK,EAAE;AAHuD,KAA9C,CAAlB;AAMA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAKxJ,aAAL,CAAmB,KAAKoB,EAAxB;AACD,KAFD;AAID;;AACD2X,gBAAc,CAAC5a,IAAD,EAAK;AACjB;AACA,UAAMO,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiByT,kBAAjB,EAAqC;AACrD7a,UAAI,EAAE;AAAEiD,UAAE,EAAEjD,IAAI,CAACiD,EAAX;AAAc6X,kBAAU,EAAC9a,IAAI,CAACiM;AAA9B,OAD+C;AAEtDf,YAAM,EAAE,KAF8C;AAGrDC,WAAK,EAAE;AAH8C,KAArC,CAAlB;AAOA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAmCkI,MAAD,IAAoD;AACpF,UAAGA,MAAH,EAAU;AACR;AACD,cAAMtG,IAAI,GAAE,KAAKjD,gBAAL,CAAsBiZ,YAAtB,CAAmCxB,IAAnC,CAAwCyB,CAAC,IAAEA,CAAC,CAAC/X,EAAF,KAAOjD,IAAI,CAACib,QAAvD,CAAZ;;AACA,YAAGlW,IAAH,EAAQ;AACP,eAAI,IAAI+M,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACzG,MAAM,CAAC7H,MAArB,EAA4BsO,CAAC,EAA7B,EAAgC;AAC9B,gBAAG/M,IAAI,CAAC8U,QAAR,EAAiB;AACf9U,kBAAI,CAAC8U,QAAL,CAAchW,IAAd,CAAmBwH,MAAM,CAACyG,CAAD,CAAN,CAAUoJ,QAA7B;AACD;AACF;AACD;AACD;AACF,KAZD;AAaD;;AACD1P,uBAAqB,CAACxL,IAAD,EAAU;AAC7B,UAAMO,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiB+T,oBAAjB,EAAuC;AACvDnb,UAAI,EAAE;AAAEiD,UAAE,EAAEjD,IAAI,CAACiD,EAAX;AAAeD,iBAAS,EAAE,KAAKC,EAA/B;AAAmCwN,iBAAS,EAAEzQ,IAAI,CAACyQ,SAAnD;AAA8D2K,mBAAW,EAAEpb,IAAI,CAACob,WAAhF;AAA6F/M,kBAAU,EAAErO,IAAI,CAACqO,UAA9G;AAA0HrB,cAAM,EAAEhN,IAAI,CAACgN,MAAvI;AAA+IxE,wBAAgB,EAAE,KAAKA,gBAAtK;AAAuLsS,kBAAU,EAAC9a,IAAI,CAACiM;AAAvM,OADiD;AAEvDf,YAAM,EAAE,KAF+C;AAGvDC,WAAK,EAAE;AAHgD,KAAvC,CAAlB;AAOA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAKxJ,aAAL,CAAmB,KAAKoB,EAAxB;AAED,KAHD;AAKD;;AAEDpB,eAAa,CAACmB,SAAD,EAAU;AACrB,SAAK1C,WAAL,CAAiBqQ,iBAAjB,CAAmC3N,SAAnC,EAA8CG,SAA9C,CAAyDnD,IAAD,IAAc;AACpE;;AACA;AACAqD,aAAO,CAACC,GAAR,CAAYtD,IAAZ;AACA,WAAK8B,gBAAL,GAAwB,IAAIxC,uEAAJ,CAAyCU,IAAzC,CAAxB;AACA,YAAMgN,MAAM,GAAE,KAAKlL,gBAAL,CAAsBiZ,YAAtB,CAAmCvb,GAAnC,CAAuCuF,IAAI,IAAEA,IAAI,CAACiI,MAAL,IAAa,KAA1D,CAAd;AACA,YAAMqO,gBAAgB,GAAG,KAAKvZ,gBAAL,CAAsBiZ,YAAtB,CAAmCvb,GAAnC,CAAuCuF,IAAI,IAAEA,IAAI,CAACuW,eAAL,IAAsB,IAAnE,CAAzB;AACA,YAAMC,OAAO,GAAGvO,MAAM,CAAC1G,IAAP,CAAYkV,CAAC,IAAIA,CAAjB,CAAhB;AACA,YAAMF,eAAe,GAAGD,gBAAgB,CAAC/U,IAAjB,CAAsBkV,CAAC,IAAIA,CAA3B,CAAxB;;AACA,UAAGD,OAAH,EAAY;AAAC,aAAKE,UAAL,GAAgB,IAAhB;AAAsB,OAAnC,MAAuC;AAAC,aAAKA,UAAL,GAAgB,KAAhB;AAAuB;;AAC/D,UAAGH,eAAe,IAAE,KAAjB,IAA0Btb,IAAI,CAACwD,MAAL,IAAa,CAA1C,EAA4C;AAAC,aAAKkY,aAAL,GAAmB,KAAnB;AAA0B,OAAvE,MAA2E;AAAC,aAAKA,aAAL,GAAmB,IAAnB;AAAyB;AAE3G;;;AACM,YAAMC,gBAAgB,GAAE,KAAK7Z,gBAAL,CAAsBiZ,YAAtB,CAAmCvb,GAAnC,CAAuCuF,IAAI,IAAEA,IAAI,CAACiI,MAAL,IAAa,WAA1D,CAAxB;AACA,YAAM4O,eAAe,GAAGD,gBAAgB,CAACrV,IAAjB,CAAsBkV,CAAC,IAAIA,CAA3B,CAAxB;AACA,UAAGI,eAAe,IAAE,IAAjB,IAAyB5b,IAAI,CAACwD,MAAL,IAAa,CAAzC,EAA6C,KAAKqY,mBAAL,GAA2B,IAA3B;AAC9C,KAhBD;AAiBD;;AAEDtH,cAAY;AAEV,SAAK8C,QAAL,CAAcyE,oBAAd,CAAmC,KAAK7Y,EAAxC,EAA4CE,SAA5C,CAAuDnD,IAAD,IAAY;AAChE,YAAM+b,eAAe,GAAI/b,IAAI,CAAC,CAAD,CAAJ,CAAQgc,eAAjC;AACA,YAAMC,eAAe,GAAIjc,IAAI,CAAC,CAAD,CAAJ,CAAQic,eAAjC;;AAEE,UAAG,CAACF,eAAJ,EACA;AACE,aAAK1E,QAAL,CAActQ,cAAd,CAA6B,oDAAmDkV,eAAhF,EAAiG,MAAjG,EAAyG,MAAzG,EAAiH,cAAjH;AACA;AACD,OAJD,MAMA;AACE,YAAI3P,OAAO,CAAC,+CAAD,CAAX,EAA8D;AAC5D,eAAI,IAAIwF,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,KAAKhQ,gBAAL,CAAsBiZ,YAAtB,CAAmCvX,MAAjD,EAAwDsO,CAAC,EAAzD,EAA4D;AAC1D,iBAAKjK,eAAL,CAAqBnH,aAArB,GAAoC,KAAKoB,gBAAL,CAAsBiZ,YAAtB,CAAmCjJ,CAAnC,EAAsC7O,EAA1E;AACA,iBAAKiZ,qBAAL,CAA2BrY,IAA3B,CAAgC;AAC9BnD,2BAAa,EAAE,KAAKmH,eAAL,CAAqBnH,aADN;AAE9BC,sBAAQ,EAAC,CAFqB;AAG9BC,6BAAe,EAAC,EAHc;AAI9BC,+BAAiB,EAAC,EAJY;AAK9BC,8BAAgB,EAAC,CALa;AAM9BC,qBAAO,EAAC,CANsB;AAO9BC,0BAAY,EAAC,CAPiB;AAQ9BC,wBAAU,EAAC,CARmB;AAS9BC,uBAAS,EAAC,EAToB;AAU9BC,yBAAW,EAAC,EAVkB;AAW9BC,uBAAS,EAAC,CAXoB;AAY9B4I,wBAAU,EAAC,EAZmB;AAa9B8O,gCAAkB,EAAC;AAbW,aAAhC;AAeD,WAlB2D,CAmBzD;AACK;;;AAEA,eAAKxY,WAAL,CAAiB6b,uBAAjB,CAAyC,KAAKD,qBAA9C,EAAqE/Y,SAArE,CAA+E;AAC7EgF,gBAAI,EAAGC,GAAD,IAAa;AAEjB/E,qBAAO,CAACC,GAAR,CAAY,KAAKL,EAAjB;AACA,mBAAKpB,aAAL,CAAmB,KAAKoB,EAAxB;AACA,mBAAK3C,WAAL,CAAiByG,cAAjB,CAAgC,uBAAhC,EAAyD,MAAzD,EAAiE,MAAjE,EAAyE,cAAzE;AACA,mBAAK0U,UAAL,GAAgB,KAAhB;AACD,aAP4E;AAQ7EpT,iBAAK,EAAGC,GAAD,IAAa;AAClB,mBAAKhI,WAAL,CAAiByG,cAAjB,CAAgCuB,GAAG,CAACD,KAApC,EAA2C,MAA3C,EAAmD,MAAnD,EAA2D,cAA3D;AACD;AAV4E,WAA/E;AAYR;AACH;AACF,KA/CH;AAgDD;;AACD+H,eAAa;AACX,SAAKtO,gBAAL,GAAwB,IAAIxC,uEAAJ,CAAyCO,gBAAzC,CAAxB;AACD;;AACDuc,gBAAc,CAAC9L,OAAD,EAAQ;AACrBA,WAAO,CAAC4K,QAAR,GAAkB,KAAKmB,eAAvB;AACA/L,WAAO,CAACgM,aAAR,GAAsB,KAAKC,eAA3B;AACAjM,WAAO,CAACkM,WAAR,GAAoB,IAApB;AACAlM,WAAO,CAACmM,UAAR,GAAmB,KAAnB;AACA;;AACDC,kBAAgB,CAACpM,OAAD,EAAQ;AACtB;AACAA,WAAO,CAACmM,UAAR,GAAmB,IAAnB;AACA,SAAKJ,eAAL,GAAqB/L,OAAO,CAAC4K,QAA7B;AACA,SAAKqB,eAAL,GAAsBjM,OAAO,CAACgM,aAA9B;AACAhM,WAAO,CAAC4K,QAAR,GAAiB,EAAjB,EACA5K,OAAO,CAACgM,aAAR,GAAsB,EADtB;AAEAhM,WAAO,CAACkM,WAAR,GAAoB,KAApB;AACA;;AACFG,gBAAc,CAACtX,KAAD,EAAeiL,OAAf,EAAsB;AAClC,UAAMsM,KAAK,GAAEvX,KAAK,CAACyF,MAAnB;;AACA,QAAG8R,KAAK,CAACjI,KAAN,IAAeiI,KAAK,CAACjI,KAAN,CAAYnR,MAAZ,GAAmB,CAArC,EAAuC;AACrC,YAAMyO,IAAI,GAAE2K,KAAK,CAACjI,KAAN,CAAY,CAAZ,CAAZ;;AACA,UAAG1C,IAAI,CAAC1N,IAAL,CAAUsY,KAAV,CAAgB,GAAhB,EAAqB,CAArB,KAAyB,MAA5B,EAAmC;AACjC,aAAKxF,QAAL,CAActQ,cAAd,CAA6B,8BAA7B,EAA6D,MAA7D,EAAqE,MAArE,EAA6E,cAA7E;AACA6V,aAAK,CAACja,KAAN,GAAY,EAAZ;AACA;AACD,OAJD,MAIK;AACH;AACA2N,eAAO,CAAC4K,QAAR,GAAkBjJ,IAAI,CAAC1N,IAAvB;AACA+L,eAAO,CAACgM,aAAR,GAAuBhM,OAAO,CAAC4K,QAAR,CAAiB2B,KAAjB,CAAuB,GAAvB,EAA4B,CAA5B,CAAvB;AACAvM,eAAO,CAACkM,WAAR,GAAoB,IAApB;AACA,aAAKM,gBAAL,CAAsBlD,0BAAtB,GAAkDtJ,OAAO,CAACrN,EAA1D;AACA,aAAK6Z,gBAAL,CAAsBjD,QAAtB,GAA+B5H,IAAI,CAAC1N,IAApC;AACA,aAAKuY,gBAAL,CAAsBhD,aAAtB,GAAoCxJ,OAAO,CAACgM,aAA5C;AACA,aAAKQ,gBAAL,CAAsB5C,KAAtB,GAA4B,IAA5B;AACA,aAAK4C,gBAAL,CAAsB3C,QAAtB,GAA+B,KAA/B;AACA,aAAK2C,gBAAL,CAAsB7C,UAAtB,GAAiC,CAAjC;AACA,aAAK6C,gBAAL,CAAsBvT,EAAtB,GAAyB,CAAzB;AACA,aAAKuT,gBAAL,CAAsB9C,IAAtB,GAA2B,EAA3B;AACA,aAAK8C,gBAAL,CAAsB1C,MAAtB,GAA6B,EAA7B;AACA,aAAK0C,gBAAL,CAAsB/C,YAAtB,GAAmC,IAAI7M,IAAJ,EAAnC;AACA,aAAK5M,WAAL,CAAiByc,iBAAjB,CAAmC,KAAKD,gBAAxC,EAA0D3Z,SAA1D,CAAqEnD,IAAD,IAAY;AAC9E,cAAGA,IAAI,IAAG,EAAV,EACE;AACE;AACE,iBAAKqX,QAAL,CAAc2F,cAAd,CAA6B/K,IAA7B,EAAmC,KAAK6K,gBAAL,CAAsBlD,0BAAzD,EAAqFzW,SAArF,CAAgGnD,IAAD,IAAY,CAC1G,CADD;AAEF,iBAAKqX,QAAL,CAActQ,cAAd,CAA6B,wBAA7B,EAAuD,MAAvD,EAA+D,MAA/D,EAAuE,cAAvE;AACD;;AACD,eAAKlF,aAAL,CAAmB,KAAKoB,EAAxB;AACF;AACA,SAVF;AAWD;AACF;AACF;;AACDyR,cAAY,CAACrP,KAAD,EAAW;AACrB,UAAM4M,IAAI,GAAG5M,KAAK,CAACyF,MAAN,CAAa6J,KAAb,CAAmB,CAAnB,CAAb;;AACA,QAAI1C,IAAJ,EAAU;AACR,WAAK7B,aAAL;AACD;AACF,GApSqC,CAqSxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACEwE,oBAAkB,CAAC5U,IAAD,EAAU;AAC1BqD,WAAO,CAACC,GAAR,CAAY,qBAAqB2Z,IAAI,CAACC,SAAL,CAAeld,IAAf,CAAjC;AACA,UAAMO,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiB+V,4BAAjB,EAA+C;AAC/Dnd,UAAI,EAAE;AAAEiD,UAAE,EAAEjD,IAAI,CAACiD,EAAX;AAAeuN,iBAAS,EAAExQ,IAAI,CAACyQ,SAA/B;AAA0CC,kBAAU,EAAE1Q,IAAI,CAACqO,UAA3D;AAAuE8F,kBAAU,EAAEnU,IAAI,CAAC8U,UAAxF;AAAoGV,kBAAU,EAAEpU,IAAI,CAAC+U,UAArH;AAAiI7T,iBAAS,EAAElB,IAAI,CAACgV,SAAjJ;AAA4J9S,YAAI,EAAElC,IAAI,CAACiV,IAAvK;AAA6K9S,cAAM,EAAEnC,IAAI,CAACod,MAA1L;AAAkMhb,aAAK,EAAEpC,IAAI,CAACkV,KAA9M;AAAqNnU,eAAO,EAAEf,IAAI,CAACmV,OAAnO;AAA4O7S,oBAAY,EAAEtC,IAAI,CAACoV,YAA/P;AAA6Q/S,kBAAU,EAAErC,IAAI,CAACqV,UAA9R;AAAySgI,cAAM,EAACrd,IAAI,CAACgN,MAArT;AAA8T7L,mBAAW,EAAEnB,IAAI,CAACmZ,WAAhV;AACNnP,kBAAU,EAAEhK,IAAI,CAACsd,UADX;AACsBxE,0BAAkB,EAAC9Y,IAAI,CAACud;AAD9C,OADyD;AAI/DrS,YAAM,EAAE,KAJuD;AAK/DC,WAAK,EAAE;AALwD,KAA/C,CAAlB;AAQA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAKxJ,aAAL,CAAmB,KAAKoB,EAAxB;AAED,KAHD;AAID;;AACDqS,gBAAc,CAACtV,IAAD,EAAU;AAEtB,QAAIsM,OAAO,CAAC,sDAAD,CAAX,EAAqE;AACnE,WAAKzK,aAAL,CAAmB,KAAKoB,EAAxB;AACD;AACF;;AAEDwD,SAAO;AACL,SAAKyN,oBAAL,CAA0B/P,KAA1B;AACD;;AAIDqZ,kBAAgB,CAAC7Q,GAAD,EAAS;AACvB,QAAGA,GAAG,CAACK,MAAJ,IAAY,WAAZ,KAA6BL,GAAG,CAACV,aAAJ,IAAmB,KAAnB,IAA4BU,GAAG,CAACV,aAAJ,IAAmB,QAA5E,CAAH,EACA;AACE,aAAO,IAAP;AACD,KAHD,MAKA,OAAO,KAAP;AACD;;AACDwR,UAAQ,CAAC9Q,GAAD,EAAS;AACf,QAAGA,GAAG,CAAC+Q,iBAAJ,IAAuB,IAA1B,EACA;AACE,aAAO,MAAP;AACD,KAHD,MAKA,OAAO,OAAP;AACD;;AAEDC,oBAAkB,CAAChR,GAAD,EAAS;AAC1B,QAAGA,GAAG,CAACK,MAAJ,IAAY,WAAZ,IAA2BL,GAAG,CAACiR,QAAJ,IAAc,KAAzC,IAAkDjR,GAAG,CAACV,aAAJ,IAAmB,KAAxE,EACC,OAAO,KAAP,CADD,KAGC,OAAO,IAAP;AACD;;AAID4R,iBAAe,CAACrJ,SAAD,EAAWrL,MAAX,EAAiB;AAC9B,UAAM5I,SAAS,GAAE,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiB0W,YAAjB,EAA8B;AAC7C9d,UAAI,EAAE;AAACiD,UAAE,EAAEuR,SAAS,CAACvR;AAAf,OADuC;AAE7CiI,YAAM,EAAE,KAFqC;AAG7CC,WAAK,EAAE;AAHsC,KAA9B,CAAjB;AAKA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAKxJ,aAAL,CAAmB,KAAKoB,EAAxB;AAED,KAHD;AAID;;AA5XqC;;;mBAA3ByW,6BAA2B9Z,+DAAAA,CAAAA,uDAAAA,GAAAA,+DAAAA,CAAAA,oFAAAA,GAAAA,+DAAAA,CAAAA,+DAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,4DAAAA,GAAAA,+DAAAA,CAAAA,4EAAAA,GAAAA,+DAAAA,CAAAA,oDAAAA;AAAA;;;QAA3B8Z;AAA2BjR;AAAAC;AAAA;gEAuB3BE,sEAAYA,EAAA;;;;;;;;;;;;;;AC7KzBhJ,MAAAA,4DAAAA;AAEIA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,oDAAAA;AAAoBA,MAAAA,0DAAAA;AACxBA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACMA,MAAAA,4DAAAA;AAAoGA,MAAAA,wDAAAA;AAAA,eAAS+I,eAAT;AAAoB,OAApB;AAAsB/I,MAAAA,4DAAAA;AAAUA,MAAAA,oDAAAA;AAAUA,MAAAA,0DAAAA;AAC5IA,MAAAA,4DAAAA;AAAqCA,MAAAA,oDAAAA;AAAIA,MAAAA,0DAAAA;AAAOA,MAAAA,0DAAAA;AACxDA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AAsBNA,MAAAA,uDAAAA;AACAA,MAAAA,wDAAAA;AAQAA,MAAAA,0DAAAA;AACAA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAaFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,mEAAAA;AAEAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;;;;AAxHkBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAYGA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAsG+BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACYA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;ADyZ1D,MAAOud,4BAAP,CAAmC;AA0BvCpd,cAA4CC,IAA5C,EAA4EE,SAA5E,EAA4GC,WAA5G,EAA8IC,MAA9I,EAAkLC,UAAlL,EAAwNE,SAAxN,EACMD,WADN,EAC0CG,QAD1C,EAC4D;AADhB;AAAgC;AAAgC;AAAkC;AAAoC;AAAsC;AAClN;AAAoC;AA1B1C;;;;AAGA,sBAAqB,KAArB;AACA,sBAA0B,EAA1B;AAEA,2BAA0B,EAA1B;AAEA,mCAA0B,IAAId,uDAAJ,CAAgB,EAAhB,CAA1B;AACA,sCAA6B,IAAIA,uDAAJ,EAA7B;AACA,gCAAuB,EAAvB;AACA,iCAAiDJ,yCAAE,CAAC,KAAK8B,UAAN,CAAnD;AACA,4BAAmB,IAAI1B,uDAAJ,CAAgB,EAAhB,CAAnB;AACA,+BAAsB,IAAIA,uDAAJ,CAAgB,EAAhB,CAAtB;AACA,iBAAa,IAAIuN,IAAJ,EAAb;AAEA,iCAAwB,IAAIvN,uDAAJ,CAAgB,EAAhB,CAAxB;AACA,qCAAsC,EAAtC;AAIA,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AAEA,6BAAqC;AAACe,mBAAa,EAAC,CAAf;AAAiBC,cAAQ,EAAC,CAA1B;AAA6BC,qBAAe,EAAE,EAA9C;AAAkDC,uBAAiB,EAAC,EAApE;AAAuEC,sBAAgB,EAAC,CAAxF;AAA0FC,aAAO,EAAE,CAAnG;AAAqGC,kBAAY,EAAC,CAAlH;AAAoHC,gBAAU,EAAE,CAAhI;AAAkIC,eAAS,EAAC,EAA5I;AAA+IC,iBAAW,EAAC,EAA3J;AAA8JC,eAAS,EAAC,CAAxK;AAA0K4I,gBAAU,EAAC,EAArL;AAAwL8O,wBAAkB,EAAC;AAA3M,KAArC;AAIA,uBAAc,6BAAd;AAFiE;;AAGjErX,UAAQ;AACN;AACA4B,WAAO,CAACC,GAAR,CAAY,UAAU2Z,IAAI,CAACC,SAAL,CAAe,KAAKld,IAApB,CAAtB;AACA,SAAK6B,aAAL,CAAmB,CAAnB;AACA,SAAKkX,yBAAL;AAEA,QAAG,KAAK/Y,IAAL,CAAUgN,MAAV,IAAkB,KAArB,EACA,KAAK+Q,UAAL,GAAkB,IAAlB;AACA,UAAMC,WAAW,GAAE,IAAI9Q,IAAJ,CAAS,KAAKlN,IAAL,CAAUmC,MAAnB,CAAnB;AACA,UAAMmb,UAAU,GAAC,IAAIpQ,IAAJ,CAAS,KAAKlN,IAAL,CAAUgK,UAAnB,CAAjB;AACA,SAAKwL,cAAL,GAAsB,KAAKrV,WAAL,CAAiBoB,KAAjB,CAAuB;AAC3Cb,mBAAa,EAAE,CAAC,KAAKV,IAAL,CAAUiD,EAAX,CAD4B;AAE3CyN,gBAAU,EAAE,CAAC,KAAK1Q,IAAL,CAAU0Q,UAAX,EAAuBhR,+DAAvB,CAF+B;AAG3C0U,gBAAU,EAAE,CAAC,KAAKpU,IAAL,CAAUoU,UAAV,GAAqB,GAArB,GAAyB,KAAKpU,IAAL,CAAUmU,UAAnC,GAA8C,GAA/C,EAAoDzU,+DAApD,CAH+B;AAI3C;AACA8Q,eAAS,EAAE,CAAC,KAAKxQ,IAAL,CAAUwQ,SAAX,EAAsB9Q,+DAAtB,CALgC;AAM3CwB,eAAS,EAAE,CAAC,KAAKlB,IAAL,CAAUkB,SAAX,EAAsBxB,+DAAtB,CANgC;AAO3CwC,UAAI,EAAE,CAAC,KAAKlC,IAAL,CAAUkC,IAAX,EAAiBxC,+DAAjB,CAPqC;AAQ3CyC,YAAM,EAAE,CAAC6b,WAAD,EAActe,+DAAd,CARmC;AAS3C0C,WAAK,EAAE,CAAC,KAAKpC,IAAL,CAAUoC,KAAX,EAAkB1C,+DAAlB,CAToC;AAU3CqB,aAAO,EAAE,CAAC,KAAKf,IAAL,CAAUe,OAAX,EAAoBrB,+DAApB,CAVkC;AAW3C2C,gBAAU,EAAE,CAAC,KAAKrC,IAAL,CAAUqC,UAAX,EAAuB3C,+DAAvB,CAX+B;AAY3C4C,kBAAY,EAAE,CAAC,KAAKtC,IAAL,CAAUsC,YAAX,EAAyB5C,+DAAzB,CAZ6B;AAa3CyB,iBAAW,EAAC,CAAC,KAAKnB,IAAL,CAAUmB,WAAX,EAAuBzB,+DAAvB,CAb+B;AAc3CsK,gBAAU,EAAC,CAACsT,UAAD,EAAY5d,+DAAZ,CAdgC;AAe3CoZ,wBAAkB,EAAC,CAAC,KAAK9Y,IAAL,CAAU8Y,kBAAX,EAA8BpZ,+DAA9B;AAfwB,KAAvB,CAAtB;AAiBD;;AACDqZ,2BAAyB;AAEvB,SAAKzY,WAAL,CAAiB0Y,gCAAjB,GAAoD7V,SAApD,CAA+D8V,KAAD,IAAa;AAC1E,WAAKC,yBAAL,GAA+BD,KAAK,CAACzZ,GAAN,CAAUuF,IAAI,IAAEA,IAAI,CAACoU,WAArB,CAA/B;AACC,WAAKC,oCAAL,GAA4C,KAAK5D,cAAL,CAAoB1N,GAApB,CAAwB,aAAxB,EAAuCrF,YAAvC,CAAoDC,IAApD,CAC1CjD,0DAAS,CAAC,EAAD,CADiC,EAE1CD,oDAAG,CAACmD,KAAK,IAAI,KAAK0W,kBAAL,CAAwB1W,KAAK,IAAI,EAAjC,CAAV,CAFuC,CAA5C;AAID,KAND;AAOD;;AACO0W,oBAAkB,CAAC1W,KAAD,EAAc;AACtC,UAAM8B,WAAW,GAAG9B,KAAK,CAAC+B,WAAN,EAApB;AACA;AACA,WAAO,KAAKwU,yBAAL,CAA+BjU,MAA/B,CAAsCC,MAAM,IAAIA,MAAM,CAACR,WAAP,GAAqBS,QAArB,CAA8BV,WAA9B,CAAhD,CAAP;AACD;AAED;;;AACA5C,eAAa,CAACoB,EAAD,EAAG;AACd,SAAK5C,UAAL,CAAgB+D,aAAhB,CAA8BnB,EAA9B,EAAkCE,SAAlC,CAA6CnD,IAAD,IAAc;AACxDqD,aAAO,CAACC,GAAR,CAAY,mBAAmB2Z,IAAI,CAACC,SAAL,CAAeld,IAAf,CAA/B;AACA,WAAKqB,UAAL,GAAkBrB,IAAlB,EACE,KAAKqE,qBAAL,GAA6B,KAAKC,0BAAL,CAAgC7B,YAAhC,CAC1BC,IAD0B,CAEzBjD,0DAAS,CAAS,EAAT,CAFgB,EAGzBD,oDAAG,CAAC+E,IAAI,IAAI,KAAKC,YAAL,CAAkBD,IAAlB,CAAT,CAHsB,CAD/B;;AAMA,YAAMlB,OAAO,CAACC,GAAR,CAAY,kBAAZ,CAAN;AACD,KATD;AAaD;;AAGOkB,cAAY,CAACD,IAAD,EAAa;AAC/B,UAAME,WAAW,GAAGF,IAAI,CAACG,WAAL,EAApB;AACA;AACA,SAAKE,gBAAL,GAAuB,IAAIjF,uDAAJ,CAAgB,EAAhB,CAAvB;AACA,SAAKkF,mBAAL,GAA0B,IAAIlF,uDAAJ,CAAgB,EAAhB,CAA1B;;AACA,QAAG,KAAK6V,cAAL,CAAoB7S,KAApB,CAA0ByR,UAA1B,IAAuC,IAA1C,EAA+C;AAC7C,WAAKvP,mBAAL,CAAyBlC,KAAzB,CAA+BkB,IAA/B,CAAoC,KAAK2R,cAAL,CAAoB7S,KAApB,CAA0ByR,UAA9D;AACD;;AACD,QAAIpP,YAAY,GAAG,KAAK3D,UAAL,CAAgB4D,MAAhB,CAAuBC,MAAM,IAAIA,MAAM,CAACX,IAAP,CAAYG,WAAZ,GAA0BS,QAA1B,CAAmCV,WAAW,CAACC,WAAZ,EAAnC,CAAjC,CAAnB;AACA,WAAOM,YAAP;AACD;;AAEDW,oBAAkB,CAACjC,CAAD,EAAE;AAClB;AACA,SAAKY,0BAAL,CAAgCR,UAAhC,CAA2C,EAA3C,EAFkB,CAGlB;;AACA,QAAIJ,CAAC,IAAI,IAAT,EAAe;AACb,WAAKkC,mBAAL,CAAyBC,aAAzB,CAAuCC,KAAvC;AACD;AACF;;AAEDC,mBAAiB,CAACV,KAAD,EAAM;AACrBA,SAAK,CAACW,eAAN;AACA,SAAK1B,0BAAL,CAAgCR,UAAhC,CAA2C,EAA3C;AACD;;AACDmC,iBAAe;AAEb,SAAKpB,mBAAL,GAA0B,IAAIlF,uDAAJ,CAAgB,EAAhB,CAA1B;AACA,SAAKkF,mBAAL,CAAyBlC,KAAzB,CAA+BkB,IAA/B,CAAoC,KAAK2R,cAAL,CAAoB7S,KAApB,CAA0ByR,UAA9D;AAED;;AAED/N,wBAAsB,CAACpD,EAAD,EAAW;AAC/B,WAAO,KAAK2B,gBAAL,CAAsBjC,KAAtB,CAA4B2D,IAA5B,CAAiCvB,IAAI,IAAIA,IAAI,KAAK9B,EAAlD,CAAP;AACD;;AACDsD,2BAAyB,CAAC5D,KAAD,EAAc;AACrC,WAAO,KAAKkC,mBAAL,CAAyBlC,KAAzB,CAA+B2D,IAA/B,CAAoCvB,IAAI,IAAIA,IAAI,KAAKpC,KAArD,CAAP;AACD;AACD;;;AACA6D,aAAW,CAACnB,KAAD,EAAqB;AAC9BA,SAAK,CAACW,eAAN;AACD;;AAGDS,SAAO;AACL,SAAK+O,cAAL,CAAoBrR,KAApB;AACA,SAAKqR,cAAL,CAAoBtP,QAApB,CAA6B,eAA7B,EAA8CpC,UAA9C,CAAyD,KAAK9D,IAAL,CAAUiD,EAAnE;AACA,SAAKuS,cAAL,CAAoBtP,QAApB,CAA6B,WAA7B,EAA0CpC,UAA1C,CAAqD,KAAK9D,IAAL,CAAUwQ,SAA/D;AACA,SAAKgF,cAAL,CAAoBtP,QAApB,CAA6B,YAA7B,EAA2CpC,UAA3C,CAAsD,KAAK9D,IAAL,CAAU0Q,UAAhE;AACD;;AAED5J,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf;AACD;;AAGDC,gBAAc,CAACC,OAAD,EAAUC,MAAV,EAAkBC,QAAlB,EAA4BC,KAA5B,EAAiC;AAC7C,SAAKjH,SAAL,CAAekH,IAAf,CAAoBJ,OAApB,EAA6BC,MAA7B,EAAqC;AACnCC,cAAQ,EAAE,IADyB;AAEnCG,sBAAgB,EAAE,KAFiB;AAGnCC,wBAAkB,EAAE,QAHe;AAInCC,gBAAU,EAAE,CAACJ,KAAD;AAJuB,KAArC;AAMD;;AACDsR,UAAQ;AACN;;AACK,QAAG,KAAKjD,cAAL,CAAoB7S,KAApB,CAA0BZ,uBAA1B,IAAmD,CAAtD,EAAwD;AACvD,WAAKgF,cAAL,CAAoB,oCAApB,EAAyD,MAAzD,EAAgE,MAAhE,EAAwE,cAAxE;AACA;AACD;;AAED,QAAG,KAAKyO,cAAL,CAAoB7S,KAApB,CAA0BX,sBAA1B,IAAkD,CAArD,EAAuD;AACrD,WAAK+E,cAAL,CAAoB,sCAApB,EAA2D,MAA3D,EAAkE,MAAlE,EAA0E,cAA1E;AACA;AACD;;AACD,QAAG,KAAKyO,cAAL,CAAoB7S,KAApB,CAA0BV,uBAA1B,IAAmD,CAAtD,EAAwD;AACtD,WAAK8E,cAAL,CAAoB,sBAApB,EAA2C,MAA3C,EAAkD,MAAlD,EAA0D,cAA1D;AACA;AACD;;AACD,QAAG,KAAKyO,cAAL,CAAoB7S,KAApB,CAA0BP,KAA1B,IAAiC,CAAjC,IAAsC,KAAKoT,cAAL,CAAoB7S,KAApB,CAA0BP,KAA1B,GAAgC,MAAzE,EAAgF;AAC9E,WAAK2E,cAAL,CAAoB,kDAApB,EAAuE,MAAvE,EAA8E,MAA9E,EAAsF,cAAtF;AACA;AACD;;AAED,QAAG,KAAKyO,cAAL,CAAoB7S,KAApB,CAA0B5B,OAA1B,IAAmC,CAAtC,EAAwC;AACtC,WAAKgG,cAAL,CAAoB,0CAApB,EAA+D,MAA/D,EAAsE,MAAtE,EAA8E,cAA9E;AACA;AACD;;AACD,QAAG,KAAKyO,cAAL,CAAoB7S,KAApB,CAA0BL,YAA1B,IAAwC,CAA3C,EAA6C;AAC3C,WAAKyE,cAAL,CAAoB,+CAApB,EAAoE,MAApE,EAA2E,MAA3E,EAAmF,cAAnF;AACA;AACD;;AACD,QAAG,KAAKyO,cAAL,CAAoB7S,KAApB,CAA0BN,UAA1B,GAAqC,CAAxC,EAA0C;AACxC,WAAK0E,cAAL,CAAoB,6CAApB,EAAkE,MAAlE,EAAyE,MAAzE,EAAiF,cAAjF;AACA;AACD;;AACD,QAAG,KAAKyO,cAAL,CAAoB7S,KAApB,CAA0BqH,UAA1B,IAAsC,CAAzC,EAA2C;AACzC,WAAKjD,cAAL,CAAoB,0CAApB,EAA+D,MAA/D,EAAsE,MAAtE,EAA8E,cAA9E;AACA;AACD;;AACD,QAAG,KAAKyO,cAAL,CAAoB7S,KAApB,CAA0BmW,kBAA1B,IAA8C,CAAjD,EAAmD;AACjD,WAAK/R,cAAL,CAAoB,iCAApB,EAAsD,MAAtD,EAA6D,MAA7D,EAAqE,cAArE;AACA;AACD;;AACD,QAAG6R,4DAAU,CAAC,KAAKpD,cAAL,CAAoB7S,KAApB,CAA0BqH,UAA3B,EAAuC,YAAvC,EAAqD,OAArD,CAAV,GAA0E4O,4DAAU,CAAC,KAAKU,KAAN,EAAa,YAAb,EAA2B,OAA3B,CAApF,IAA4HV,4DAAU,CAAC,KAAKpD,cAAL,CAAoB7S,KAApB,CAA0BqH,UAA3B,EAAuC,YAAvC,EAAqD,OAArD,CAAV,IAA4E4O,4DAAU,CAAC,KAAKU,KAAN,EAAa,YAAb,EAA2B,OAA3B,CAArN,EAA0P;AACxP,WAAKvS,cAAL,CAAoB,wCAApB,EAA6D,MAA7D,EAAoE,MAApE,EAA4E,cAA5E;AACA;AACD;;AAIC,QAAIU,MAAM,GAAGC,cAAc,CAACC,OAAf,CAAuB,QAAvB,CAAb;AACD;;AACC,QAAI,KAAK6N,cAAL,CAAoB5N,KAAxB,EAAgC;AAE9B,WAAKqW,iBAAL,CAAuBvd,aAAvB,GAAsC,KAAK8U,cAAL,CAAoB1N,GAApB,CAAwB,eAAxB,EAAyCnF,KAA/E;AAED;;AACC,WAAKsb,iBAAL,CAAuBtd,QAAvB,GAAiC,KAAKU,UAAL,CAAgBkY,IAAhB,CAAqBzH,CAAC,IAAEA,CAAC,CAACvN,IAAF,IAAQ,KAAKiR,cAAL,CAAoB1N,GAApB,CAAwB,YAAxB,EAAsCnF,KAAtE,EAA6EwD,QAA9G;AACA,WAAK8X,iBAAL,CAAuBrd,eAAvB,GAAyCmH,MAAM,CAAC,KAAKyN,cAAL,CAAoB1N,GAApB,CAAwB,MAAxB,EAAgCnF,KAAjC,CAA/C,EACA,KAAKsb,iBAAL,CAAuBpd,iBAAvB,GAAyC,KAAKJ,QAAL,CAAcuH,SAAd,CAAyB,KAAKwN,cAAL,CAAoB1N,GAApB,CAAwB,QAAxB,EAAkCnF,KAA3D,EAAiE,YAAjE,CADzC,EAEA,KAAKsb,iBAAL,CAAuBnd,gBAAvB,GAAyC,KAAK0U,cAAL,CAAoB1N,GAApB,CAAwB,OAAxB,EAAiCnF,KAF1E,EAIA,KAAKsb,iBAAL,CAAuBld,OAAvB,GAAgC,KAAKyU,cAAL,CAAoB1N,GAApB,CAAwB,SAAxB,EAAmCnF,KAJnE,EAKA,KAAKsb,iBAAL,CAAuBjd,YAAvB,GAAqC,KAAKwU,cAAL,CAAoB1N,GAApB,CAAwB,cAAxB,EAAwCnF,KAL7E,EAMA,KAAKsb,iBAAL,CAAuBhd,UAAvB,GAAkC,KAAKuU,cAAL,CAAoB1N,GAApB,CAAwB,YAAxB,EAAsCnF,KANxE;AAOA,WAAKsb,iBAAL,CAAuB/c,SAAvB,GAAkC,KAAKsU,cAAL,CAAoB1N,GAApB,CAAwB,WAAxB,EAAqCnF,KAAvE,EACA,KAAKsb,iBAAL,CAAuB9c,WAAvB,GAAoC,KAAKqU,cAAL,CAAoB1N,GAApB,CAAwB,aAAxB,EAAuCnF,KAD3E,EAEA,KAAKsb,iBAAL,CAAuBjU,UAAvB,GAAmC,KAAKwL,cAAL,CAAoB1N,GAApB,CAAwB,YAAxB,EAAsCnF,KAFzE,EAGA,KAAKsb,iBAAL,CAAuBnF,kBAAvB,GAA2C,KAAKtD,cAAL,CAAoB1N,GAApB,CAAwB,oBAAxB,EAA8CnF,KAHzF,EAIA,KAAKsb,iBAAL,CAAuB7c,SAAvB,GAAiC6G,MAAM,CAACR,MAAD,CAJvC;AAMApE,aAAO,CAACC,GAAR,CAAY,KAAK2a,iBAAjB;AACA,WAAK3d,WAAL,CAAiB4H,iBAAjB,CAAmC,KAAK+V,iBAAxC,EAA2D9a,SAA3D,CAAqE;AACnEgF,YAAI,EAAGC,GAAD,IAAa;AACjB,eAAK9H,WAAL,CAAiByG,cAAjB,CAAgC,sBAAhC,EAAuD,MAAvD,EAA8D,MAA9D,EAAsE,cAAtE;AACA,eAAKxG,SAAL,CAAeuG,KAAf,CAAqB,IAArB;AACD,SAJkE;AAKnEuB,aAAK,EAAGC,GAAD,IAAa;AAClB,eAAKhI,WAAL,CAAiByG,cAAjB,CAAgCuB,GAAG,CAACD,KAApC,EAA0C,MAA1C,EAAiD,MAAjD,EAAyD,cAAzD;AACD;AAPkE,OAArE;AASD;AACF;;AA3OgC;;;mBAA5B8U,8BAA4Bvd,+DAAAA,CA0BnBP,qEA1BmB,GA0BJO,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,uDAAAA,GAAAA,+DAAAA,CAAAA,oFAAAA,GAAAA,+DAAAA,CAAAA,4EAAAA,GAAAA,+DAAAA,CAAAA,kEAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,sDAAAA;AAAA;;;QA1BxBud;AAA4B1U;AAAAC;AAAA;;;;;;;;;;;;;;;;;AE/iBzC9I,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAkCA,MAAAA,0DAAAA;AAChFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAOIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAASA,MAAAA,0DAAAA;AACnDA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAgBA,MAAAA,0DAAAA;AAC1DA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AAEGA,MAAAA,4DAAAA;AACCA,MAAAA,4DAAAA;AAAqFA,MAAAA,oDAAAA;AAAaA,MAAAA,0DAAAA;AAClGA,MAAAA,4DAAAA;AAA6DA,MAAAA,wDAAAA;AAAA,eAAsB+I,8BAAtB;AAAgD,OAAhD;AACvD/I,MAAAA,4DAAAA;AACEA,MAAAA,oDAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAwCA,MAAAA,wDAAAA;AAAA,eAAW+I,uBAAX;AAA8B,OAA9B;AAAxC/I,MAAAA,0DAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,wDAAAA;;AAGAA,MAAAA,wDAAAA;;AAGJA,MAAAA,0DAAAA;AACNA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AAMJA,MAAAA,0DAAAA;AAQNA,MAAAA,0DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAiBA,MAAAA,0DAAAA;AAC3DA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAmBA,MAAAA,0DAAAA;AAC7DA,MAAAA,uDAAAA;AACAA,MAAAA,uDAAAA;AACAA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AAChDA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AAEEA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAASA,MAAAA,0DAAAA;AACnDA,MAAAA,uDAAAA;AAEJA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AAEJA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAYA,MAAAA,0DAAAA;AACtDA,MAAAA,uDAAAA;AAEJA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAcA,MAAAA,0DAAAA;AACxDA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AAEAA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA0CA,MAAAA,oDAAAA;AAAUA,MAAAA,0DAAAA;AACpDA,MAAAA,uDAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAYA,MAAAA,0DAAAA;AACxDA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;;AACJA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAOJA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA2CA,MAAAA,oDAAAA;AAAWA,MAAAA,0DAAAA;AACtDA,MAAAA,uDAAAA;AACAA,MAAAA,uDAAAA;AACAA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAmBA,MAAAA,0DAAAA;AAC/DA,MAAAA,uDAAAA;AAEJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AAGFA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACeA,MAAAA,wDAAAA;AAAA,eAAS+I,cAAT;AAAmB,OAAnB;AAAqB/I,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AAC1CA,MAAAA,4DAAAA;AAA2DA,MAAAA,wDAAAA;AAAA,eAAS+I,aAAT;AAAkB,OAAlB;AAAoB/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AACtFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;;;;;;;;;;;;AA/JMA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AA4BYA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AAK2IA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACrGA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAKrBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,SAAAA,yDAAAA;AAGgDA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,YAAAA,yDAAAA;AA8BxBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAChBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AA4C4FA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAE1DA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,YAAAA,yDAAAA;AAe1BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACVA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;;AFgqBnC,MAAOse,oBAAP,CAA2B;AAuB/Bne,cAA4CC,IAA5C,EAA6EE,SAA7E,EAA6GC,WAA7G,EAA8II,SAA9I,EAAoM4J,MAApM,EAA+N7J,WAA/N,EAAoQoV,WAApQ,EACM2B,QADN,EACgC;AADY;AAAiC;AAAgC;AAAiC;AAAsD;AAA2B;AAAqC;AAC9P;AAlBN,qBAAsB,EAAtB;AACA,+BAAsB,EAAtB;AACA,gBAAe,EAAf;AAEA,2BAAoC,EAApC;AACA,kCAAyB,IAAI1X,uDAAJ,EAAzB;AACA,mCAA0B,IAAIA,uDAAJ,EAA1B;AAEA,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AACA,yBAAsB,EAAtB;AAGA,uBAA2B;AACzBsD,QAAE,EAAE,CADqB;AAClB0S,mBAAa,EAAE,CADG;AACAC,aAAO,EAAE,EADT;AACaC,uBAAiB,EAAE,EADhC;AACoC7I,YAAM,EAAE,EAD5C;AACgDpB,cAAQ,EAAE,IAD1D;AAEzBxK,eAAS,EAAE,CAFc;AAEX6L,iBAAW,EAAE,IAAIC,IAAJ,EAFF;AAEcC,eAAS,EAAE,CAFzB;AAE4BC,iBAAW,EAAE,IAAIF,IAAJ;AAFzC,KAA3B;AAWA,6CAA6C,CAAC,UAAD,CAA7C;AACA,4BAAiC;AAAC3D,QAAE,EAAC,CAAJ;AAAMqQ,gCAA0B,EAAC,CAAjC;AAAmCC,cAAQ,EAAC,EAA5C;AAA+CC,mBAAa,EAAC,EAA7D;AAAgEC,kBAAY,EAAC,IAAI7M,IAAJ,EAA7E;AAC/B8M,UAAI,EAAC,EAD0B;AACvBC,gBAAU,EAAC,CADY;AACVpQ,cAAQ,EAAC,IADC;AACIqQ,WAAK,EAAC,KADV;AACgBC,cAAQ,EAAC,KADzB;AAC+BC,YAAM,EAAC,EADtC;AACyCC,mCAA6B,EAAC,IADvE;AAC6EC,oCAA8B,EAAC,IAD5G;AACiHC,2BAAqB,EAAC;AADvI,KAAjC;AAEA,gCAAsC,EAAtC;AACA,4BAA6B,CAAC,YAAD,EAAe,MAAf,CAA7B;AATE,SAAKhN,IAAL,GAAY,KAAKpN,WAAL,CAAiBoB,KAAjB,CAAuB;AACjCuU,aAAO,EAAE,CAAC,iBAAD,CADwB,CACH;AAC9B;;AAFiC,KAAvB,CAAZ;AAID;;AAUDrU,UAAQ;;;AACN,SAAK0c,IAAL,GAAY,KAAKne,IAAL,CAAUme,IAAtB;AACA,SAAKhI,aAAL,GAAqB,WAAKnW,IAAL,MAAS,IAAT,IAASsU,aAAT,GAAS,MAAT,GAASA,GAAE8G,WAAhC;;AACA,QAAI,KAAK+C,IAAL,IAAa,OAAjB,EAA0B;AACxB;AACA,WAAK7H,4BAAL,CAAkC,WAAKtW,IAAL,MAAS,IAAT,IAASqY,aAAT,GAAS,MAAT,GAASA,GAAE1C,aAA7C,EAA2D,KAAK3V,IAAL,CAAUiD,EAArE;AACD;;AAED,SAAKsK,IAAL,GAAY,KAAKpN,WAAL,CAAiBoB,KAAjB,CAAuB;AACjCgI,QAAE,EAAE,CAD6B;AAEjCuM,aAAO,EAAE,CAAC,IAAD,EAAO,IAAP,CAFwB;AAGjCC,uBAAiB,EAAE,CAAC,IAAD,EAAO,IAAP;AAHc,KAAvB,CAAZ;AAMA,SAAKE,UAAL,GAAkB,KAAK9V,WAAL,CAAiBoB,KAAjB,CAAuB;AACvCgI,QAAE,EAAE,CADmC;AAEvCuM,aAAO,EAAE,CAAC,IAAD,EAAO,IAAP,CAF8B;AAGvCC,uBAAiB,EAAE,CAAC,IAAD,EAAO,IAAP,CAHoB;AAIvCC,oBAAc,EAAE,CAAC,UAAD,EAAa,IAAb;AAJuB,KAAvB,CAAlB;AAMD,SAAKoI,4BAAL;AACA;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCAA,8BAA4B;AACxB,SAAK1I,WAAL,CAAiB2I,wBAAjB,CAA0C,KAAKre,IAAL,CAAUiD,EAApD,EAAwDE,SAAxD,CAAmEnD,IAAD,IAAY;AAC5E,WAAKse,2BAAL,GAAmC,IAAIhf,uEAAJ,CAAoCU,IAApC,CAAnC;AACA,WAAKse,2BAAL,CAAiC/T,SAAjC,GAA6C,KAAKA,SAAlD;AACAlH,aAAO,CAACC,GAAR,CAAY,KAAKgb,2BAAjB;AACA,KAJF;AAKD;;AACHhI,8BAA4B,CAACX,aAAD,EAAuB1S,EAAvB,EAAgC;AAC1D,SAAKyS,WAAL,CAAiBW,UAAjB,CAA4BV,aAA5B,EAA2C1S,EAA3C,EAA+CE,SAA/C,CAA0DnD,IAAD,IAA4B;AACnF,UAAIA,IAAI,CAACwD,MAAL,GAAc,CAAd,IAAmBP,EAAE,GAAG,CAA5B,EAA+B;AAC7B,YAAIsb,WAAW,GAAGve,IAAI,CAACuZ,IAAL,CAAU9B,CAAC,IAAIA,CAAC,CAAC+G,SAAjB,CAAlB;AACA,aAAKvI,UAAL,GAAkB,KAAK9V,WAAL,CAAiBoB,KAAjB,CAAuB;AACvCgI,YAAE,EAAE,CAACgV,WAAW,CAACtb,EAAb,CADmC;AAEvC6S,iBAAO,EAAE,CAAC,EAAD,EAAK,IAAL,CAF8B;AAGvCC,2BAAiB,EAAE,CAAC;AAACpT,iBAAK,EAAC4b,WAAW,CAAC1I,iBAAnB;AAAsC4I,oBAAQ,EAAC;AAA/C,WAAD,CAHoB;AAIvCzI,wBAAc,EAAE,CAACuI,WAAW,CAAChI,aAAZ,CAA0B7R,WAA1B,EAAD,EAA0C,IAA1C;AAJuB,SAAvB,CAAlB;AAMD,OARD,MASK;AACH,aAAKuR,UAAL,CAAgB/P,QAAhB,CAAyB,SAAzB,EAAoC/B,KAApC;AACD;AACF,KAbD;AAcD;;AACDsC,SAAO;AACL,SAAK8G,IAAL,CAAUpJ,KAAV;AACA,SAAK8R,UAAL,CAAgB/P,QAAhB,CAAyB,SAAzB,EAAoCpC,UAApC,CAA+C,IAA/C;AACD;;AACDgD,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf;AAED;;AACD4X,kBAAgB,CAACC,GAAD,EAAI;AAClBtb,WAAO,CAACC,GAAR,CAAY,QAAZ,EAAqBqb,GAArB;;AACA,QAAIrS,OAAO,CAAC,kCAAD,CAAX,EAAiD;AAC/C,UAAI0E,KAAK,GAAE2N,GAAG,CAACC,YAAJ,GAAiB,GAAjB,GAAqBD,GAAG,CAACzD,QAApC;AACI,WAAKxF,WAAL,CAAiBmJ,gBAAjB,CAAkC7N,KAAlC,EAAyC7N,SAAzC,CAAoDiO,KAAD,IAAa;AAC9D,YAAIpK,OAAO,GAAEoK,KAAb;AACA/N,eAAO,CAACC,GAAR,CAAY0D,OAAZ;AACA,aAAK0O,WAAL,CAAiBoJ,uBAAjB,CAAyCH,GAAG,CAACC,YAA7C,EAA2Dzb,SAA3D,CAAqE,MAAK;AACxE,eAAK7C,WAAL,CAAiByG,cAAjB,CAAgC,sBAAhC,EAAuD,MAAvD,EAA8D,MAA9D,EAAsE,cAAtE;AACA,eAAK2O,WAAL,CAAiB2I,wBAAjB,CAA0C,KAAKre,IAAL,CAAUiD,EAApD,EAAwDE,SAAxD,CAAmEnD,IAAD,IAAY;AAC5E,iBAAKse,2BAAL,GAAmC,IAAIhf,uEAAJ,CAAoCU,IAApC,CAAnC;AACA,iBAAKse,2BAAL,CAAiC/T,SAAjC,GAA6C,KAAKA,SAAlD;AACAlH,mBAAO,CAACC,GAAR,CAAY,KAAKgb,2BAAjB;AACA,WAJF;AAKD,SAPD;AAQD,OAXD;AAYL;AACD;;AACF3B,gBAAc,CAACtX,KAAD,EAAY;AACxB,UAAMuX,KAAK,GAAEvX,KAAK,CAACyF,MAAnB;AACA,SAAKiU,aAAL,GAAmB,EAAnB;;AACA,QAAGnC,KAAK,CAACjI,KAAT,EAAe;AACbqK,WAAK,CAACC,IAAN,CAAWrC,KAAK,CAACjI,KAAjB,EAAwBlR,OAAxB,CAAgCwO,IAAI,IAAE,KAAK8M,aAAL,CAAmBlb,IAAnB,CAAwBoO,IAAxB,CAAtC;AACA5O,aAAO,CAACC,GAAR,CAAY,KAAKyb,aAAjB;AACD;AACF;;AACDG,sBAAoB,CAAC7Z,KAAD,EAAY;AAC9B,SAAK0Z,aAAL,GAAmB,EAAnB;AACA,UAAMnC,KAAK,GAAEvX,KAAK,CAACyF,MAAnB;;AAEA,QAAG8R,KAAK,CAACjI,KAAT,EAAe;AACbqK,WAAK,CAACC,IAAN,CAAWrC,KAAK,CAACjI,KAAjB,EAAwBlR,OAAxB,CAAgCwO,IAAI,IAAE,KAAK8M,aAAL,CAAmBlb,IAAnB,CAAwBoO,IAAxB,CAAtC;AACA5O,aAAO,CAACC,GAAR,CAAY,KAAKyb,aAAjB;AACD;AACF;;AACDhO,cAAY,CAACT,OAAD,EAAQ;AAClB,QAAIU,KAAK,GAAEV,OAAO,CAACsO,YAAR,GAAqB,GAArB,GAAyBtO,OAAO,CAAC4K,QAA5C;AACC,SAAKxF,WAAL,CAAiByJ,aAAjB,CAA+BnO,KAA/B,EAAsC7N,SAAtC,CAAiDiO,KAAD,IAAa;AAC7D,UAAIpK,OAAO,GAAEoK,KAAb;AACA/N,aAAO,CAACC,GAAR,CAAY0D,OAAZ;AACA,WAAKqK,QAAL,CAAcrK,OAAd,EAAuBsJ,OAAO,CAAC4K,QAA/B;AACD,KAJC;AAKH;;AACD5J,qBAAmB,CAACC,MAAD,EAAY;AAC7B,QAAIC,aAAa,GAAGC,MAAM,CAACC,IAAP,CAAYH,MAAZ,CAApB;AACA,QAAII,GAAG,GAAGH,aAAa,CAAChO,MAAxB;AACA,QAAIoO,KAAK,GAAG,IAAIC,UAAJ,CAAeF,GAAf,CAAZ;;AACA,SAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,GAApB,EAAyBG,CAAC,EAA1B,EAA8B;AAC5BF,WAAK,CAACE,CAAD,CAAL,GAAWN,aAAa,CAACO,UAAd,CAAyBD,CAAzB,CAAX;AACD;;AACD,WAAOF,KAAK,CAACI,MAAb;AACD;;AACDX,UAAQ,CAACD,KAAD,EAAapR,IAAb,EAAyB;AAC/B,QAAI4R,KAAK,GAAE,KAAKN,mBAAL,CAAyBF,KAAzB,CAAX;AACA,QAAIa,IAAI,GAAG,IAAIC,IAAJ,CAAS,CAACN,KAAD,CAAT,EAAkB;AAAEO,UAAI,EAAE;AAAR,KAAlB,CAAX;AACApJ,IAAAA,uCAAM,CAACkJ,IAAD,EAAOjS,IAAP,CAAN;AACD;;AACAwW,aAAW;AAET,QAAI/O,MAAM,GAAGC,cAAc,CAACC,OAAf,CAAuB,QAAvB,CAAb;;AACA,QAAI,KAAKsO,UAAL,CAAgB/P,QAAhB,CAAyB,IAAzB,EAA+BvD,KAA/B,IAAwC,CAA5C,EAA+C;AAC7C,UAAI,CAAC,KAAKsT,UAAL,CAAgBtT,KAAhB,CAAsBmT,OAA3B,EAAoC;AAClC,aAAKxV,WAAL,CAAiByG,cAAjB,CAAgC,sBAAhC,EAAwD,MAAxD,EAAgE,MAAhE,EAAwE,cAAxE;AACA;AACD;;AACD,UAAI,KAAKkP,UAAL,CAAgBrO,KAApB,EAA2B;AACzB,aAAK6O,WAAL,CAAiBxT,EAAjB,GAAsB,KAAKgT,UAAL,CAAgB/P,QAAhB,CAAyB,IAAzB,EAA+BvD,KAArD,EACA,KAAK8T,WAAL,CAAiBd,aAAjB,GAAiC,KAAK3V,IAAL,CAAU2V,aAD3C;AAEA,aAAKc,WAAL,CAAiBb,OAAjB,GAA2B,KAAKK,UAAL,CAAgB/P,QAAhB,CAAyB,SAAzB,EAAoCvD,KAA/D;AACA,aAAK8T,WAAL,CAAiBzJ,MAAjB,GAA0B,UAA1B;AACA,aAAKyJ,WAAL,CAAiBtJ,SAAjB,GAA4BlF,MAAM,CAACR,MAAD,CAAlC;AACA,aAAKgP,WAAL,CAAiBrJ,WAAjB,GAA8B,IAAIF,IAAJ,EAA9B;AACA,aAAKuJ,WAAL,CAAiBrV,SAAjB,GAA4B6G,MAAM,CAACR,MAAD,CAAlC;AACA,aAAK2X,oBAAL,GAA0B,EAA1B,CARyB,CASzB;;AACA,aAAI,IAAItN,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,KAAKiN,aAAL,CAAmBvb,MAAjC,EAAwCsO,CAAC,EAAzC,EAA4C;AAE1C,cAAG,KAAKiN,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsC,KAAKkC,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsCrZ,MAAtC,GAA6C,CAAnF,KAAuF,MAAvF,IAAiG,KAAKub,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsC,KAAKkC,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsCrZ,MAAtC,GAA6C,CAAnF,KAAuF,KAAxL,IAAiM,KAAKub,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsC,KAAKkC,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsCrZ,MAAtC,GAA6C,CAAnF,KAAuF,KAA3R,EAAiS;AAC/R,iBAAKlD,WAAL,CAAiByG,cAAjB,CAAgC,0CAAhC,EAA4E,MAA5E,EAAoF,MAApF,EAA4F,cAA5F;AACA;AACD,WAHD,MAGK;AAEH,iBAAK+V,gBAAL,CAAsBlD,0BAAtB,GAAkD,KAAK5Z,IAAL,CAAU2V,aAA5D;AACA,iBAAKmH,gBAAL,CAAsBjD,QAAtB,GAA+B,KAAKkF,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAArD;AACA,iBAAKuY,gBAAL,CAAsBhD,aAAtB,GAAoC,KAAKiF,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsC,KAAKkC,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsCrZ,MAAtC,GAA6C,CAAnF,CAApC;AACA,iBAAKsZ,gBAAL,CAAsB5C,KAAtB,GAA4B,IAA5B;AACA,iBAAK4C,gBAAL,CAAsB3C,QAAtB,GAA+B,KAA/B;AACA,iBAAK2C,gBAAL,CAAsB7C,UAAtB,GAAiC,CAAjC;AACA,iBAAK6C,gBAAL,CAAsBvT,EAAtB,GAAyB,CAAzB;AACA,iBAAKuT,gBAAL,CAAsB9C,IAAtB,GAA2B,EAA3B;AACA,iBAAK8C,gBAAL,CAAsB1C,MAAtB,GAA6B,EAA7B;AACA,iBAAK0C,gBAAL,CAAsB/C,YAAtB,GAAmC,IAAI7M,IAAJ,EAAnC;AACA,iBAAK4P,gBAAL,CAAsBxC,8BAAtB,GAAsD,KAAKta,IAAL,CAAUiD,EAAhE;AAGA,iBAAKmc,oBAAL,CAA0Bvb,IAA1B,CAA+B;AAC7B0F,gBAAE,EAAE,KAAKuT,gBAAL,CAAsBvT,EADG;AAE7BqQ,wCAA0B,EAAC,KAAKkD,gBAAL,CAAsBlD,0BAFpB;AAG7BC,sBAAQ,EAAC,KAAKiD,gBAAL,CAAsBjD,QAHF;AAI7BC,2BAAa,EAAE,KAAKgD,gBAAL,CAAsBhD,aAJR;AAK7BjQ,sBAAQ,EAAE,IALmB;AAM7BqQ,mBAAK,EAAC,KAAK4C,gBAAL,CAAsB5C,KANC;AAO7BC,sBAAQ,EAAC,KAAK2C,gBAAL,CAAsB3C,QAPF;AAQ7BF,wBAAU,EAAE,KAAK6C,gBAAL,CAAsB7C,UARL;AAS7BD,kBAAI,EAAC,KAAK8C,gBAAL,CAAsB9C,IATE;AAU7BI,oBAAM,EAAC,KAAK0C,gBAAL,CAAsB1C,MAVA;AAW7BL,0BAAY,EAAE,KAAK+C,gBAAL,CAAsB/C,YAXP;AAY7BM,2CAA6B,EAAC,CAZD;AAa7BC,4CAA8B,EAAC,KAAKwC,gBAAL,CAAsBxC,8BAbxB;AAc7BC,mCAAqB,EAAC;AAdO,aAA/B;AAiBD;AACF;;AAED,aAAK7E,WAAL,CAAiBgB,WAAjB,CAA6B,KAAKD,WAAlC,EAA+CtT,SAA/C,CAAyD;AACvDgF,cAAI,EAAGC,GAAD,IAAa;AAEjB,iBAAI,IAAI0J,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,KAAKiN,aAAL,CAAmBvb,MAAjC,EAAwCsO,CAAC,EAAzC,EAA4C;AAC1C,mBAAKsN,oBAAL,CAA0BtN,CAA1B,EAA6BwI,8BAA7B,GAA4DlS,GAA5D;AACD;;AAED,iBAAKsN,WAAL,CAAiB2J,qBAAjB,CAAuC,KAAKD,oBAA5C,EAAkEjc,SAAlE,CAA6EnD,IAAD,IAAY;;;AACtF,kBAAGA,IAAI,IAAG,EAAV,EACE;AACE;AACE,qBAAK0V,WAAL,CAAiBsH,cAAjB,CAAgC,KAAK+B,aAArC,EAAmD,KAAKjC,gBAAL,CAAsBlD,0BAAzE,EAAqGzW,SAArG,CAAgHnD,IAAD,IAAY;AACzH,uBAAK+e,aAAL,GAAmB,EAAnB;AACD,iBAFD,EAFJ,CAKE;;AACA,sBAAMO,aAAa,GAAE3M,QAAQ,CAAC4M,gBAAT,CAA0B,oBAA1B,CAArB;AACAD,6BAAa,CAAC7b,OAAd,CAAuB6M,OAAD,IAAe;AACrCA,yBAAO,CAAC3N,KAAR,GAAc,EAAd;AACC,iBAFD;AAGA,qBAAK2T,4BAAL,CAAkC,WAAKtW,IAAL,MAAS,IAAT,IAASsU,aAAT,GAAS,MAAT,GAASA,GAAEqB,aAA7C,EAA2D,CAA3D;AACF,qBAAKrV,WAAL,CAAiByG,cAAjB,CAAgC,gCAAhC,EAAkE,MAAlE,EAA0E,MAA1E,EAAkF,cAAlF;AACJ,qBAAKxG,SAAL,CAAeuG,KAAf;AACK;AACH;;AACD,aAjBD;AAmBD,WA1BsD;AA2BvDuB,eAAK,EAAGC,GAAD,IAAa;AAClB,iBAAKhI,WAAL,CAAiByG,cAAjB,CAAgCuB,GAAG,CAACD,KAApC,EAA2C,MAA3C,EAAmD,MAAnD,EAA2D,cAA3D;AACA,iBAAK9H,SAAL,CAAeuG,KAAf;AACD;AA9BsD,SAAzD;AAiCD;AACF,KAzFD,MA0FK;AACH,UAAI,CAAC,KAAKyG,IAAL,CAAU5K,KAAV,CAAgBmT,OAArB,EAA8B;AAC5B,aAAKxV,WAAL,CAAiByG,cAAjB,CAAgC,sBAAhC,EAAwD,MAAxD,EAAgE,MAAhE,EAAwE,cAAxE;AACA;AACD;;AAED,UAAI,KAAKwG,IAAL,CAAU3F,KAAd,EAAqB;AACnB,YAAI2B,EAAJ;AACA,YAAG,KAAKgE,IAAL,CAAUrH,QAAV,CAAmB,IAAnB,EAAyBvD,KAAzB,IAAgC,IAAnC,EACE4G,EAAE,GAAC,CAAH,CADF,KAGAA,EAAE,GAAC,KAAKgE,IAAL,CAAUrH,QAAV,CAAmB,IAAnB,EAAyBvD,KAA5B;AAEA,aAAK8T,WAAL,CAAiBxT,EAAjB,GAAsBsG,EAAtB,EACA,KAAKkN,WAAL,CAAiBd,aAAjB,GAAiC,KAAK3V,IAAL,CAAUiD,EAD3C;AAEA,aAAKwT,WAAL,CAAiBb,OAAjB,GAA2B,KAAKrI,IAAL,CAAUrH,QAAV,CAAmB,SAAnB,EAA8BvD,KAAzD;AACA,aAAK8T,WAAL,CAAiBZ,iBAAjB,GAAqC,KAAKtI,IAAL,CAAUrH,QAAV,CAAmB,mBAAnB,EAAwCvD,KAA7E;AACA,aAAK8T,WAAL,CAAiBzJ,MAAjB,GAA0B,KAA1B;AACA,aAAKyJ,WAAL,CAAiBrV,SAAjB,GAA4B6G,MAAM,CAACR,MAAD,CAAlC;AACA,aAAK2X,oBAAL,GAA0B,EAA1B,CAbmB,CAcnB;;AACA,aAAI,IAAItN,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,KAAKiN,aAAL,CAAmBvb,MAAjC,EAAwCsO,CAAC,EAAzC,EAA4C;AAC1C,cAAG,KAAKiN,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsC,KAAKkC,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsCrZ,MAAtC,GAA6C,CAAnF,KAAuF,MAAvF,IAAiG,KAAKub,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsC,KAAKkC,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsCrZ,MAAtC,GAA6C,CAAnF,KAAuF,KAAxL,IAAiM,KAAKub,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsC,KAAKkC,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsCrZ,MAAtC,GAA6C,CAAnF,KAAuF,KAA3R,EAAiS;AAC/R,iBAAKlD,WAAL,CAAiByG,cAAjB,CAAgC,0CAAhC,EAA4E,MAA5E,EAAoF,MAApF,EAA4F,cAA5F;AACA;AACD,WAHD,MAGK;AAEH,iBAAK+V,gBAAL,CAAsBlD,0BAAtB,GAAkD,KAAK5Z,IAAL,CAAUiD,EAA5D;AACA,iBAAK6Z,gBAAL,CAAsBjD,QAAtB,GAA+B,KAAKkF,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAArD;AACA,iBAAKuY,gBAAL,CAAsBhD,aAAtB,GAAoC,KAAKiF,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsC,KAAKkC,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsCrZ,MAAtC,GAA6C,CAAnF,CAApC;AACA,iBAAKsZ,gBAAL,CAAsB5C,KAAtB,GAA4B,IAA5B;AACA,iBAAK4C,gBAAL,CAAsB3C,QAAtB,GAA+B,KAA/B;AACA,iBAAK2C,gBAAL,CAAsB7C,UAAtB,GAAiC,CAAjC;AACA,iBAAK6C,gBAAL,CAAsBvT,EAAtB,GAAyB,CAAzB;AACA,iBAAKuT,gBAAL,CAAsB9C,IAAtB,GAA2B,EAA3B;AACA,iBAAK8C,gBAAL,CAAsB1C,MAAtB,GAA6B,EAA7B;AACA,iBAAK0C,gBAAL,CAAsB/C,YAAtB,GAAmC,IAAI7M,IAAJ,EAAnC;AACA,iBAAKkS,oBAAL,CAA0Bvb,IAA1B,CAA+B;AAC7B0F,gBAAE,EAAE,KAAKuT,gBAAL,CAAsBvT,EADG;AAE7BqQ,wCAA0B,EAAC,KAAKkD,gBAAL,CAAsBlD,0BAFpB;AAG7BC,sBAAQ,EAAC,KAAKiD,gBAAL,CAAsBjD,QAHF;AAI7BC,2BAAa,EAAE,KAAKgD,gBAAL,CAAsBhD,aAJR;AAK7BjQ,sBAAQ,EAAE,IALmB;AAM7BqQ,mBAAK,EAAC,KAAK4C,gBAAL,CAAsB5C,KANC;AAO7BC,sBAAQ,EAAC,KAAK2C,gBAAL,CAAsB3C,QAPF;AAQ7BF,wBAAU,EAAE,KAAK6C,gBAAL,CAAsB7C,UARL;AAS7BD,kBAAI,EAAC,KAAK8C,gBAAL,CAAsB9C,IATE;AAU7BI,oBAAM,EAAC,KAAK0C,gBAAL,CAAsB1C,MAVA;AAW7BL,0BAAY,EAAE,KAAK+C,gBAAL,CAAsB/C,YAXP;AAY7BM,2CAA6B,EAAC,CAZD;AAa7BC,4CAA8B,EAAC,CAbF;AAc7BC,mCAAqB,EAAC;AAdO,aAA/B;AAiBD;AACF;;AACD,aAAK7E,WAAL,CAAiBgB,WAAjB,CAA6B,KAAKD,WAAlC,EAA+CtT,SAA/C,CAAyD;AACvDgF,cAAI,EAAGC,GAAD,IAAa;AACjB;;AACA,iBAAI,IAAI0J,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAE,KAAKsN,oBAAL,CAA0B5b,MAAzC,EAAgDsO,CAAC,EAAjD,EAAoD;AAClD,mBAAKsN,oBAAL,CAA0BtN,CAA1B,EAA6BwI,8BAA7B,GAA4DlS,GAA5D;AACD;;AACD,iBAAKsN,WAAL,CAAiB2J,qBAAjB,CAAuC,KAAKD,oBAA5C,EAAkEjc,SAAlE,CAA6EnD,IAAD,IAAY;;;AACtF,kBAAGA,IAAI,IAAG,EAAV,EACE;AACE;AACE,qBAAK0V,WAAL,CAAiBsH,cAAjB,CAAgC,KAAK+B,aAArC,EAAmD,KAAKjC,gBAAL,CAAsBlD,0BAAzE,EAAqGzW,SAArG,CAAgHnD,IAAD,IAAY;AACzH,uBAAK+e,aAAL,GAAmB,EAAnB;AACD,iBAFD,EAFJ,CAKE;;AACA,sBAAMO,aAAa,GAAE3M,QAAQ,CAAC4M,gBAAT,CAA0B,oBAA1B,CAArB;AACAD,6BAAa,CAAC7b,OAAd,CAAuB6M,OAAD,IAAe;AACrCA,yBAAO,CAAC3N,KAAR,GAAc,EAAd;AACC,iBAFD;AAGA,qBAAK2T,4BAAL,CAAkC,WAAKtW,IAAL,MAAS,IAAT,IAASsU,aAAT,GAAS,MAAT,GAASA,GAAErR,EAA7C,EAAgD,CAAhD;AACF,qBAAK3C,WAAL,CAAiByG,cAAjB,CAAgC,8BAAhC,EAAgE,MAAhE,EAAwE,MAAxE,EAAgF,cAAhF;AACJ,qBAAKxG,SAAL,CAAeuG,KAAf;AACK;AACH;;AACD,aAjBD;AAmBD,WAzBsD;AA0BvDuB,eAAK,EAAGC,GAAD,IAAa;AAClB,iBAAKhI,WAAL,CAAiByG,cAAjB,CAAgCuB,GAAG,CAACD,KAApC,EAA2C,MAA3C,EAAmD,MAAnD,EAA2D,cAA3D;AACA,iBAAK9H,SAAL,CAAeuG,KAAf;AACD;AA7BsD,SAAzD;AAgCD;AACF;AAGF;;AAjX8B;;;mBAApBoX,sBAAoBte,+DAAAA,CAuBXP,qEAvBW,GAuBIO,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,uDAAAA,GAAAA,+DAAAA,CAAAA,kEAAAA,GAAAA,+DAAAA,CAAAA,+DAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,4EAAAA;AAAA;;;QAvBxBse;AAAoBzV;AAAAC;AAAA;gEAmCpBE,sEAAYA,EAAA;;;;;;;;;;;;;;AGn1BzBhJ,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAkEA,MAAAA,oDAAAA;AAAeA,MAAAA,0DAAAA;AACnFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AAOAA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AAoDAA,MAAAA,wDAAAA;AA0FFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;;;;AAhJeA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAoDAA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;AH2mCT,MAAOub,oBAAP,CAA2B;AAiB/Bpb,cAA4CC,IAA5C,EAA6EoK,MAA7E,EAAoG7J,SAApG,EAA2JmV,WAA3J,EAA+LvL,MAA/L,EAA0N7J,WAA1N,EAAqP;AAAzM;AAAiC;AAAuB;AAAuD;AAAoC;AAA2B;AAf1N,qBAAoB,CAApB;AACA,kBAAiB,EAAjB;AACA,sBAAwC,EAAxC;AAOA,uBAA2B;AACzB2C,QAAE,EAAE,CADqB;AAClB0S,mBAAa,EAAE,CADG;AACAC,aAAO,EAAE,EADT;AACaC,uBAAiB,EAAE,EADhC;AACoC7I,YAAM,EAAE,EAD5C;AACgDpB,cAAQ,EAAE,IAD1D;AAEzBxK,eAAS,EAAE,CAFc;AAEX6L,iBAAW,EAAE,IAAIC,IAAJ,EAFF;AAEcC,eAAS,EAAE,CAFzB;AAE4BC,iBAAW,EAAE,IAAIF,IAAJ;AAFzC,KAA3B;AAKA,4BAA6B,CAAC,YAAD,EAAc,eAAd,EAA+B,iBAA/B,EAAkD,QAAlD,EAA4D,eAA5D,CAA7B;AAA0G;AAGzG;;AACDzL,UAAQ;AACN4B,WAAO,CAACC,GAAR,CAAY,KAAKtD,IAAjB;AACA,SAAKqd,MAAL,GAAc,KAAKrd,IAAL,CAAUgN,MAAxB;AACA3J,WAAO,CAACC,GAAR,CAAY,QAAM,KAAKtD,IAAL,CAAU8a,UAA5B;AACA,SAAK7O,aAAL,GAAmB,KAAKjM,IAAL,CAAU8a,UAA7B;AACA,SAAK0E,UAAL;AACAnc,WAAO,CAACC,GAAR,CAAYoE,cAAc,CAACC,OAAf,CAAuB,MAAvB,CAAZ;AACA,SAAK+C,IAAL,GAAUhD,cAAc,CAACC,OAAf,CAAuB,MAAvB,CAAV;AACD;;AAED6X,YAAU;AACR;AACA,SAAK9J,WAAL,CAAiBW,UAAjB,CAA4B,KAAKrW,IAAL,CAAUiD,EAAtC,EAA0C,CAA1C,EAA6CE,SAA7C,CAAwDnD,IAAD,IAAc;AACnE,WAAKyf,cAAL,CAAoBzf,IAApB;AACD,KAFD;AAGD;;AACD0f,eAAa,CAAC1f,IAAD,EAAU;AACrB,UAAMO,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiB8W,oBAAjB,EAAuC;AACvDle,UAAI,EAAE;AAAEiD,UAAE,EAAEjD,IAAI,CAACiD,EAAX;AAAeD,iBAAS,EAAE,KAAKhD,IAAL,CAAUgD,SAApC;AAA+CyN,iBAAS,EAAE,KAAKzQ,IAAL,CAAUyQ,SAApE;AAA+E2K,mBAAW,EAAE,KAAKpb,IAAL,CAAUob,WAAtG;AAAkHzF,qBAAa,EAAC,KAAK3V,IAAL,CAAUiD,EAA1I;AAA8IoL,kBAAU,EAAE,KAAKrO,IAAL,CAAUqO,UAApK;AAAgLgP,cAAM,EAAE,KAAKrd,IAAL,CAAUgN,MAAlM;AAA0MxE,wBAAgB,EAAE,KAAKA,gBAAjO;AAAmP2V,YAAI,EAAE;AAAzP,OADiD;AAEvDjT,YAAM,EAAE,KAF+C;AAGvDC,WAAK,EAAE;AAHgD,KAAvC,CAAlB;AAOA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAKmU,UAAL;AAED,KAHD;AAID;;AACDG,oBAAkB,CAAC3f,IAAD,EAAU;AAC1B,QAAIyH,MAAM,GAAGC,cAAc,CAACC,OAAf,CAAuB,QAAvB,CAAb;AAEA,SAAK8O,WAAL,CAAiBxT,EAAjB,GAAsBjD,IAAI,CAACiD,EAA3B,EACE,KAAKwT,WAAL,CAAiBd,aAAjB,GAAiC3V,IAAI,CAAC2V,aADxC;AAEA,SAAKc,WAAL,CAAiBb,OAAjB,GAA2B,EAA3B;AACA,SAAKa,WAAL,CAAiBZ,iBAAjB,GAAqC,EAArC;AACA,SAAKY,WAAL,CAAiBzJ,MAAjB,GAA0B,QAA1B;AACA,SAAKyJ,WAAL,CAAiBrV,SAAjB,GAA4B6G,MAAM,CAACR,MAAD,CAAlC;AACA,SAAKiO,WAAL,CAAiBgB,WAAjB,CAA6B,KAAKD,WAAlC,EAA+CtT,SAA/C,CAAyD;AACvDgF,UAAI,EAAGC,GAAD,IAAa;AACjB,aAAK9H,WAAL,CAAiByG,cAAjB,CAAgC,aAAa,KAAK0P,WAAL,CAAiBzJ,MAA9B,GAAuC,eAAvE,EAAwF,MAAxF,EAAgG,MAAhG,EAAwG,cAAxG,EADiB,CAEjB;;AACA,aAAKwS,UAAL;AACD,OALsD;AAMvDnX,WAAK,EAAGC,GAAD,IAAa;AAClB,aAAKhI,WAAL,CAAiByG,cAAjB,CAAgCuB,GAAG,CAACD,KAApC,EAA2C,MAA3C,EAAmD,MAAnD,EAA2D,cAA3D;AACD;AARsD,KAAzD,EAT0B,CAmB1B;;AACA,SAAKmX,UAAL;AACD;;AACDI,gBAAc;AACZ;AACA,UAAMrf,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiB8W,oBAAjB,EAAuC;AACvDle,UAAI,EAAE;AAAEiD,UAAE,EAAE,KAAKjD,IAAL,CAAUiD,EAAhB;AAAoBD,iBAAS,EAAE,KAAKhD,IAAL,CAAUgD,SAAzC;AAAoDyN,iBAAS,EAAE,KAAKzQ,IAAL,CAAUyQ,SAAzE;AAAoF2K,mBAAW,EAAE,KAAKpb,IAAL,CAAUob,WAA3G;AAAwH/M,kBAAU,EAAE,KAAKrO,IAAL,CAAUqO,UAA9I;AAA0JgP,cAAM,EAAE,KAAKrd,IAAL,CAAUgN,MAA5K;AAAoLxE,wBAAgB,EAAE,KAAKA,gBAA3M;AAA6N2V,YAAI,EAAE;AAAnO,OADiD;AAEvDjT,YAAM,EAAE,KAF+C;AAGvDC,WAAK,EAAE;AAHgD,KAAvC,CAAlB;AAOA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC;AACA,WAAKmU,UAAL;AAED,KAJD;AAKD;;AACDzO,cAAY,CAAC9N,EAAD,EAAIiY,QAAJ,EAAY;AACtB;AACA,QAAIlK,KAAK,GAAE/N,EAAE,GAAC,GAAH,GAAOiY,QAAlB;AACC,SAAKxF,WAAL,CAAiByJ,aAAjB,CAA+BnO,KAA/B,EAAsC7N,SAAtC,CAAiDiO,KAAD,IAAa;AAC7D,UAAIpK,OAAO,GAAEoK,KAAb;AACA/N,aAAO,CAACC,GAAR,CAAY0D,OAAZ;AACA,WAAKqK,QAAL,CAAcrK,OAAd,EAAuBkU,QAAvB;AACD,KAJC;AAKH;;AACD5J,qBAAmB,CAACC,MAAD,EAAY;AAC7B,QAAIC,aAAa,GAAGC,MAAM,CAACC,IAAP,CAAYH,MAAZ,CAApB;AACA,QAAII,GAAG,GAAGH,aAAa,CAAChO,MAAxB;AACA,QAAIoO,KAAK,GAAG,IAAIC,UAAJ,CAAeF,GAAf,CAAZ;;AACA,SAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,GAApB,EAAyBG,CAAC,EAA1B,EAA8B;AAC5BF,WAAK,CAACE,CAAD,CAAL,GAAWN,aAAa,CAACO,UAAd,CAAyBD,CAAzB,CAAX;AACD;;AACD,WAAOF,KAAK,CAACI,MAAb;AACD;;AACDX,UAAQ,CAACD,KAAD,EAAapR,IAAb,EAAyB;AAC/B,QAAI4R,KAAK,GAAE,KAAKN,mBAAL,CAAyBF,KAAzB,CAAX;AACA,QAAIa,IAAI,GAAG,IAAIC,IAAJ,CAAS,CAACN,KAAD,CAAT,EAAkB;AAAEO,UAAI,EAAE;AAAR,KAAlB,CAAX;AACApJ,IAAAA,uCAAM,CAACkJ,IAAD,EAAOjS,IAAP,CAAN;AACD;;AAEAyf,gBAAc,CAACzf,IAAD,EAAU;AACtB,SAAK6f,iBAAL,GAAyB,IAAIvgB,uEAAJ,CAA0CU,IAA1C,CAAzB;AACA,SAAK6f,iBAAL,CAAuBtV,SAAvB,GAAmC,KAAKA,SAAxC;AACAlH,WAAO,CAACC,GAAR,CAAY,KAAKuc,iBAAjB;AACD;;AACD/Y,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf;AACD;AAEF;;;;;;;;;;;;;;AAcGgZ,cAAY,CAACC,IAAD,EAAa;AAEvB,UAAMC,UAAU,GAAG/C,IAAI,CAACgD,KAAL,CAAWF,IAAX,CAAnB;AACA,QAAIG,UAAU,GAAG,EAAjB;AAEA,QAAIC,MAAM,GAAG,EAAb;;AACA,SAAI,IAAIC,GAAR,IAAeJ,UAAf,EAA2B;AACvBE,gBAAU,GAACF,UAAU,CAACI,GAAD,CAAV,CAAgBC,IAA3B,CADuB,CACS;AAEnC;;AAED,WAAOH,UAAP;AACD;;AAEDI,UAAQ,CAACC,KAAD,EAAW;AACjBld,WAAO,CAACC,GAAR,CAAY,QAAZ,EAAsBid,KAAtB;AACD;;AACHC,wBAAsB,CAAC7T,GAAD,EAAU1F,MAAV,EAAoB;AACxC,QAAGA,MAAM,IAAE,QAAX,EACA;AACE,UAAG,KAAKyD,IAAL,IAAW,kBAAX,IAAiC,KAAKA,IAAL,IAAW,iBAA/C,EACA;AACE,YAAGiC,GAAG,CAAC4J,aAAJ,IAAmB,KAAnB,IAA6B5J,GAAG,CAAC4J,aAAJ,IAAmB,UAAnD,EACE;AACE,iBAAO,KAAP;AACD,SAHH,MAKE,OAAO,IAAP;AACH;AAIF,KAdD,MAeK,IAAGtP,MAAM,IAAE,OAAX,EACL;AACE,UAAG,KAAKyD,IAAL,IAAW,kBAAX,IAAiC,KAAKA,IAAL,IAAW,iBAA/C,EACE,OAAO,IAAP;AACH;;AACL,WAAO,KAAP;AACG;;AA5K8B;;;mBAApByQ,sBAAoBvb,+DAAAA,CAiBXP,qEAjBW,GAiBIO,+DAAAA,CAAAA,oDAAAA,GAAAA,+DAAAA,CAAAA,kEAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,+DAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA;AAAA;;;QAjBxBub;AAAoB1S;AAAAC;AAAA;gEAQpBE,sEAAYA,EAAA;;;;;;;;;;;;;;AIprCrBhJ,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAEEA,MAAAA,4DAAAA;AACEA,MAAAA,oDAAAA;AAAeA,MAAAA,0DAAAA;AACnBA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AAENA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAyCA,MAAAA,oDAAAA;AAAgCA,MAAAA,0DAAAA;AAC3EA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAyCA,MAAAA,oDAAAA;AAAwCA,MAAAA,0DAAAA;AACnFA,MAAAA,0DAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACAA,MAAAA,4DAAAA;AAIEA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,mEAAAA;AAIAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAuBFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAqBFA,MAAAA,mEAAAA;AAUAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAWFA,MAAAA,mEAAAA;AAGAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAGFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AAEFA,MAAAA,0DAAAA;AAIFA,MAAAA,0DAAAA;;;;AAnHiDA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AAGAA,MAAAA,uDAAAA;AAAAA,MAAAA,gEAAAA;AAEyBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAKrDA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AA4F+BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACYA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAMdA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,oBAAAA,6DAAAA,UAA2B,UAA3B,EAA2B,CAA3B;;;;;;AJ4uC5C,MAAOib,kBAAP,CAAyB;AAiB7B9a,cAA4CC,IAA5C,EAA4EE,SAA5E,EAA4GC,WAA5G,EAA6II,SAA7I,EAAiM4J,MAAjM,EACMkN,QADN,EAC0C/W,WAD1C,EACoE;AADxB;AAAgC;AAAgC;AAAiC;AAAoD;AAC3L;AAAoC;AAX1C,4BAAiC;AAACiJ,QAAE,EAAC,CAAJ;AAAMqQ,gCAA0B,EAAC,CAAjC;AAAmCC,cAAQ,EAAC,EAA5C;AAA+CC,mBAAa,EAAC,EAA7D;AAAgEC,kBAAY,EAAC,IAAI7M,IAAJ,EAA7E;AAC/B8M,UAAI,EAAC,EAD0B;AACvBC,gBAAU,EAAC,CADY;AACVpQ,cAAQ,EAAC,IADC;AACIqQ,WAAK,EAAC,KADV;AACgBC,cAAQ,EAAC,KADzB;AAC+BC,YAAM,EAAC,EADtC;AACyCC,mCAA6B,EAAC,IADvE;AAC4EC,oCAA8B,EAAC,IAD3G;AACgHC,2BAAqB,EAAC;AADtI,KAAjC;AAEA,yBAAsB,EAAtB;AACA,gCAAsC,EAAtC;AAEA,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AACA,sCAAuC,CAAC,YAAD,EAAe,cAAf,EAA8B,UAA9B,CAAvC;AAIyE;;AAGzE9Y,UAAQ;AACN4B,WAAO,CAACC,GAAR,CAAY,KAAKtD,IAAjB;AACA,SAAKygB,qBAAL;AACApd,WAAO,CAACC,GAAR,CAAYoE,cAAc,CAACC,OAAf,CAAuB,MAAvB,CAAZ;AACA,SAAK+C,IAAL,GAAUhD,cAAc,CAACC,OAAf,CAAuB,MAAvB,CAAV;AACA,SAAKsE,aAAL,GAAmB,KAAKjM,IAAL,CAAU8a,UAA7B;AACD;;AACD2F,uBAAqB;AACnB,SAAKngB,WAAL,CAAiBogB,uBAAjB,CAAyC,KAAK1gB,IAAL,CAAUiD,EAAnD,EAAuDE,SAAvD,CAAkEnD,IAAD,IAAY;AAC3E,WAAK2gB,oBAAL,GAA4B,IAAIrhB,uEAAJ,CAAoCU,IAApC,CAA5B;AACA,WAAK2gB,oBAAL,CAA0BpW,SAA1B,GAAsC,KAAKA,SAA3C;AACAlH,aAAO,CAACC,GAAR,CAAY,KAAKqd,oBAAjB;AACA,KAJF;AAKD;;AACDhE,gBAAc,CAACtX,KAAD,EAAY;AACxB,SAAK0Z,aAAL,GAAmB,EAAnB;AACA,UAAMnC,KAAK,GAAEvX,KAAK,CAACyF,MAAnB;;AACA,QAAG8R,KAAK,CAACjI,KAAT,EAAe;AACbqK,WAAK,CAACC,IAAN,CAAWrC,KAAK,CAACjI,KAAjB,EAAwBlR,OAAxB,CAAgCwO,IAAI,IAAE,KAAK8M,aAAL,CAAmBlb,IAAnB,CAAwBoO,IAAxB,CAAtC;AACA5O,aAAO,CAACC,GAAR,CAAY,KAAKyb,aAAjB;AACD;AACF;;AACD6B,aAAW;AACT,QAAG,KAAK7B,aAAL,CAAmBvb,MAAnB,IAA2B,CAA9B,EAAgC;AAC9B,WAAK6T,QAAL,CAActQ,cAAd,CAA6B,+BAA7B,EAA6D,MAA7D,EAAoE,MAApE,EAA4E,cAA5E;AACA;AACC,KAHH,MAKE;AACI;AACA,WAAI,IAAI+K,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,KAAKiN,aAAL,CAAmBvb,MAAjC,EAAwCsO,CAAC,EAAzC,EAA4C;AAE1C,YAAG,KAAKiN,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsC,KAAKkC,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsCrZ,MAAtC,GAA6C,CAAnF,KAAuF,MAAvF,IAAiG,KAAKub,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsC,KAAKkC,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsCrZ,MAAtC,GAA6C,CAAnF,KAAuF,KAAxL,IAAiM,KAAKub,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsC,KAAKkC,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsCrZ,MAAtC,GAA6C,CAAnF,KAAuF,KAA3R,EAAiS;AAC/R,eAAK6T,QAAL,CAActQ,cAAd,CAA6B,0CAA7B,EAAyE,MAAzE,EAAiF,MAAjF,EAAyF,cAAzF;AACA;AACD,SAHD,MAGK;AACH,eAAKqY,oBAAL,GAA0B,EAA1B;AACA,eAAKtC,gBAAL,CAAsBlD,0BAAtB,GAAkD,KAAK5Z,IAAL,CAAUiD,EAA5D;AACA,eAAK6Z,gBAAL,CAAsBjD,QAAtB,GAA+B,KAAKkF,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAArD;AACA,eAAKuY,gBAAL,CAAsBhD,aAAtB,GAAoC,KAAKiF,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsC,KAAKkC,aAAL,CAAmBjN,CAAnB,EAAsBvN,IAAtB,CAA2BsY,KAA3B,CAAiC,GAAjC,EAAsCrZ,MAAtC,GAA6C,CAAnF,CAApC;AACA,eAAKsZ,gBAAL,CAAsB5C,KAAtB,GAA4B,IAA5B;AACA,eAAK4C,gBAAL,CAAsB3C,QAAtB,GAA+B,KAA/B;AACA,eAAK2C,gBAAL,CAAsB7C,UAAtB,GAAiC,CAAjC;AACA,eAAK6C,gBAAL,CAAsBvT,EAAtB,GAAyB,CAAzB;AACA,eAAKuT,gBAAL,CAAsB9C,IAAtB,GAA2B,EAA3B;AACA,eAAK8C,gBAAL,CAAsB1C,MAAtB,GAA6B,EAA7B;AACA,eAAK0C,gBAAL,CAAsB/C,YAAtB,GAAmC,IAAI7M,IAAJ,EAAnC;AACA,eAAKkS,oBAAL,CAA0Bvb,IAA1B,CAA+B;AAC7B0F,cAAE,EAAE,KAAKuT,gBAAL,CAAsBvT,EADG;AAE7BqQ,sCAA0B,EAAC,KAAKkD,gBAAL,CAAsBlD,0BAFpB;AAG7BC,oBAAQ,EAAC,KAAKiD,gBAAL,CAAsBjD,QAHF;AAI7BC,yBAAa,EAAE,KAAKgD,gBAAL,CAAsBhD,aAJR;AAK7BjQ,oBAAQ,EAAE,IALmB;AAM7BqQ,iBAAK,EAAC,KAAK4C,gBAAL,CAAsB5C,KANC;AAO7BC,oBAAQ,EAAC,KAAK2C,gBAAL,CAAsB3C,QAPF;AAQ7BF,sBAAU,EAAE,KAAK6C,gBAAL,CAAsB7C,UARL;AAS7BD,gBAAI,EAAC,KAAK8C,gBAAL,CAAsB9C,IATE;AAU7BI,kBAAM,EAAC,KAAK0C,gBAAL,CAAsB1C,MAVA;AAW7BL,wBAAY,EAAE,KAAK+C,gBAAL,CAAsB/C,YAXP;AAY7BM,yCAA6B,EAAC,CAZD;AAa7BC,0CAA8B,EAAC,CAbF;AAc7BC,iCAAqB,EAAC;AAdO,WAA/B;AAgBA,eAAKja,WAAL,CAAiByc,iBAAjB,CAAmC,KAAKqC,oBAAxC,EAA8Djc,SAA9D,CAAyEnD,IAAD,IAAY;AAClF,gBAAGA,IAAI,IAAG,EAAV,EACE;AACE;AACE,mBAAKqX,QAAL,CAAc2F,cAAd,CAA6B,KAAK+B,aAAlC,EAAgD,KAAKjC,gBAAL,CAAsBlD,0BAAtE,EAAkGzW,SAAlG,CAA6GnD,IAAD,IAAY;AACtH,qBAAK+e,aAAL,GAAmB,EAAnB;AACD,eAFD;AAGF,mBAAK1H,QAAL,CAActQ,cAAd,CAA6B,6BAA7B,EAA4D,MAA5D,EAAoE,MAApE,EAA4E,cAA5E;AACA,mBAAK0Z,qBAAL;AACA,oBAAMnB,aAAa,GAAE3M,QAAQ,CAAC4M,gBAAT,CAA0B,oBAA1B,CAArB;AACAD,2BAAa,CAAC7b,OAAd,CAAuB6M,OAAD,IAAe;AACrCA,uBAAO,CAAC3N,KAAR,GAAc,EAAd;AACC,eAFD;AAGD;AACH;;AACD,WAfD;AAgBD;AACF;AACJ;AAEJ;;AACDoO,cAAY,CAACT,OAAD,EAAQ;AAClB,QAAIU,KAAK,GAAEV,OAAO,CAACsO,YAAR,GAAqB,GAArB,GAAyBtO,OAAO,CAAC4K,QAA5C;AACC,SAAK7D,QAAL,CAAc8H,aAAd,CAA4BnO,KAA5B,EAAmC7N,SAAnC,CAA8CiO,KAAD,IAAa;AAC1D,UAAIpK,OAAO,GAAEoK,KAAb;AACA/N,aAAO,CAACC,GAAR,CAAY0D,OAAZ;AACA,WAAKqK,QAAL,CAAcrK,OAAd,EAAuBsJ,OAAO,CAAC4K,QAA/B;AACD,KAJC;AAKH;;AACD5J,qBAAmB,CAACC,MAAD,EAAY;AAC7B,QAAIC,aAAa,GAAGC,MAAM,CAACC,IAAP,CAAYH,MAAZ,CAApB;AACA,QAAII,GAAG,GAAGH,aAAa,CAAChO,MAAxB;AACA,QAAIoO,KAAK,GAAG,IAAIC,UAAJ,CAAeF,GAAf,CAAZ;;AACA,SAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,GAApB,EAAyBG,CAAC,EAA1B,EAA8B;AAC5BF,WAAK,CAACE,CAAD,CAAL,GAAWN,aAAa,CAACO,UAAd,CAAyBD,CAAzB,CAAX;AACD;;AACD,WAAOF,KAAK,CAACI,MAAb;AACD;;AACDX,UAAQ,CAACD,KAAD,EAAapR,IAAb,EAAyB;AAC/B,QAAI4R,KAAK,GAAE,KAAKN,mBAAL,CAAyBF,KAAzB,CAAX;AACA,QAAIa,IAAI,GAAG,IAAIC,IAAJ,CAAS,CAACN,KAAD,CAAT,EAAkB;AAAEO,UAAI,EAAE;AAAR,KAAlB,CAAX;AACApJ,IAAAA,uCAAM,CAACkJ,IAAD,EAAOjS,IAAP,CAAN;AACD;;AACD0e,kBAAgB,CAACC,GAAD,EAAI;AACnBtb,WAAO,CAACC,GAAR,CAAY,QAAZ,EAAqBqb,GAArB;;AACA,QAAIrS,OAAO,CAAC,kCAAD,CAAX,EAAiD;AAC/C,UAAI0E,KAAK,GAAE2N,GAAG,CAACC,YAAJ,GAAiB,GAAjB,GAAqBD,GAAG,CAACzD,QAApC;AACI,WAAK7D,QAAL,CAAcwH,gBAAd,CAA+B7N,KAA/B,EAAsC7N,SAAtC,CAAiDiO,KAAD,IAAa;AAC3D,YAAIpK,OAAO,GAAEoK,KAAb;AACA/N,eAAO,CAACC,GAAR,CAAY0D,OAAZ;AACA,aAAK1G,WAAL,CAAiBoe,gBAAjB,CAAkCC,GAAG,CAACC,YAAtC,EAAoDzb,SAApD,CAA8D,MAAK;AACjE,eAAK7C,WAAL,CAAiByG,cAAjB,CAAgC,sBAAhC,EAAuD,MAAvD,EAA8D,MAA9D,EAAsE,cAAtE;AACA,eAAK0Z,qBAAL;AACD,SAHD;AAID,OAPD;AAQL;AACD;;AACDI,YAAU;AACT,SAAKtgB,SAAL,CAAeuG,KAAf;AACD;;AA/I8B;;;mBAAlB+T,oBAAkBjb,+DAAAA,CAiBTP,qEAjBS,GAiBMO,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,uDAAAA,GAAAA,+DAAAA,CAAAA,kEAAAA,GAAAA,+DAAAA,CAAAA,+DAAAA,GAAAA,+DAAAA,CAAAA,4EAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA;AAAA;;;QAjBxBib;AAAkBpS;AAAAC;AAAA;gEAelBE,sEAAYA,EAAA;;;;;;;;;;;;;;AK33CzBhJ,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AAEEA,MAAAA,4DAAAA;AACEA,MAAAA,oDAAAA;AAAiBA,MAAAA,0DAAAA;AACrBA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,gBAAT;AAAqB,OAArB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AAEJA,MAAAA,0DAAAA;AACAA,MAAAA,wDAAAA;AAMAA,MAAAA,wDAAAA;AAMAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAIFA,MAAAA,mEAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAEFA,MAAAA,wDAAAA;AAKAA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;;;;AAzCMA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAMiDA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAOpCA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAgB+BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACYA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AASZA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,oBAAAA,6DAAAA,UAAoC,UAApC,EAAoC,CAApC;;;;;;ALu+C5C,MAAOke,YAAP,CAAmB;AAWvB/d,cAA4CC,IAA5C,EAA4EE,SAA5E,EAA4GC,WAA5G,EAA6II,SAA7I,EAAiM4J,MAAjM,EACMkN,QADN,EAC0C/W,WAD1C,EACoE;AADxB;AAAgC;AAAgC;AAAiC;AAAoD;AAC3L;AAAoC;AAT1C,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AACA,8BAA+B,CAAC,QAAD,EAAU,cAAV,EAAyB,QAAzB,EAAkC,cAAlC,EAAkD,OAAlD,CAA/B;AACA,uBAAgB,IAAhB;AAIE,6BAAgC;AAACI,mBAAa,EAAC,CAAf;AAAiBC,cAAQ,EAAC,CAA1B;AAA6BC,qBAAe,EAAE,EAA9C;AAAkDC,uBAAiB,EAAC,EAApE;AAAuEC,sBAAgB,EAAC,CAAxF;AAA0FC,aAAO,EAAE,CAAnG;AAAqGC,kBAAY,EAAC,CAAlH;AAAoHC,gBAAU,EAAE,CAAhI;AAAkIC,eAAS,EAAC,EAA5I;AAA+IC,iBAAW,EAAC,EAA3J;AAA8JC,eAAS,EAAC,CAAxK;AAA0K4I,gBAAU,EAAC,EAArL;AAAwL8O,wBAAkB,EAAC,EAA3M;AAA8MgI,uBAAiB,EAAC;AAAhO,KAAhC;AAEuE;;AAC3Erf,UAAQ;AACN4B,WAAO,CAACC,GAAR,CAAY,KAAKtD,IAAjB;AACF,SAAK+gB,aAAL;AACC;;AACDA,eAAa;AACX,SAAKzgB,WAAL,CAAiB0gB,YAAjB,GAAgC7d,SAAhC,CAA2CnD,IAAD,IAAY;AACpD,WAAKihB,YAAL,GAAoB,IAAI3hB,uEAAJ,CAA+BU,IAA/B,CAApB;AACA,WAAKihB,YAAL,CAAkB1W,SAAlB,GAA8B,KAAKA,SAAnC;AACAlH,aAAO,CAACC,GAAR,CAAY,KAAK2d,YAAjB;AACA,KAJF;AAKD;;AACDC,mBAAiB,CAACC,YAAD,EAAiB;AAChC;AACA,SAAKC,WAAL,GAAkBD,YAAlB;AACD;;AACDE,cAAY;AACV;AACAhe,WAAO,CAACC,GAAR,CAAY,KAAK8d,WAAjB;;AACA,QAAG,KAAKA,WAAL,IAAkB,IAArB,EAA0B;AACxB,WAAK9gB,WAAL,CAAiByG,cAAjB,CAAgC,mCAAhC,EAAoE,MAApE,EAA2E,MAA3E,EAAmF,cAAnF;AACA;AACD;;AACD,SAAKkX,iBAAL,CAAuBvd,aAAvB,GAAsCuH,MAAM,CAAC,KAAKjI,IAAL,CAAUiD,EAAX,CAA5C;AACA,SAAKgb,iBAAL,CAAuB6C,iBAAvB,GAA0C,KAAKM,WAAL,CAAiB3Z,MAA3D;AACA,SAAKnH,WAAL,CAAiBghB,aAAjB,CAA+B,KAAKrD,iBAApC,EAAuD9a,SAAvD,CAAiE;AAC/DgF,UAAI,EAAGC,GAAD,IAAa;AACjB,aAAK9H,WAAL,CAAiByG,cAAjB,CAAgC,2CAAhC,EAA4E,MAA5E,EAAmF,MAAnF,EAA2F,cAA3F;AACA,aAAKxG,SAAL,CAAeuG,KAAf,CAAqB,IAArB;AACD,OAJ8D;AAK/DuB,WAAK,EAAGC,GAAD,IAAa;AAClB,aAAKhI,WAAL,CAAiByG,cAAjB,CAAgCuB,GAAG,CAACD,KAApC,EAA0C,MAA1C,EAAiD,MAAjD,EAAyD,cAAzD;AACD;AAP8D,KAAjE;AASD;;AACDvB,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf;AACD;;AAjDwB;;;mBAAZgX,cAAYle,+DAAAA,CAWHP,qEAXG,GAWYO,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,uDAAAA,GAAAA,+DAAAA,CAAAA,kEAAAA,GAAAA,+DAAAA,CAAAA,+DAAAA,GAAAA,+DAAAA,CAAAA,4EAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA;AAAA;;;QAXxBke;AAAYrV;AAAAC;AAAA;gEAQZE,sEAAYA,EAAA;;;;;;;;;;;;;;AMliDzBhJ,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAkEA,MAAAA,oDAAAA;AAAwBA,MAAAA,0DAAAA;AAC5FA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AACIA,MAAAA,4DAAAA;AACIA,MAAAA,qEAAAA;AACIA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAKJA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACIA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AACFA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAEJA,MAAAA,0DAAAA;AACJA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AAEFA,MAAAA,0DAAAA;AAEFA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA4CA,MAAAA,wDAAAA;AAAA,eAAS+I,kBAAT;AAAuB,OAAvB;AAC7B/I,MAAAA,oDAAAA;AAAuBA,MAAAA,0DAAAA;AAExCA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;;;;AApCyBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAqBiCA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACYA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAKlBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,oBAAAA,6DAAAA,UAA2B,UAA3B,EAA2B,CAA3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9B7C,MAAM,iBAAiB;IAE5B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;kFALU,iBAAiB;+GAAjB,iBAAiB;QCP9B,8EAA8B;QAC9B,yEAAiB;QACf,yEAAoB;QAClB,wEAA+D;QAAA,oEAAS;QAAA,4DAAK;QAC/E,4DAAM;QAER,yEAAyB;QACvB,6EAAmC;QACrC,4DAAM;QACN,yEAA4B;QAC1B,yEAAyB;QACvB,gFAAyC;QAC3C,4DAAM;QACN,0EAA0B;QACxB,uFAAqD;QACvD,4DAAM;QAGR,4DAAM;QACN,4DAAM;QACN,4DAAW;;;;;;;;;;;;;;;;;;;;;;ACOJ,MAAM,8BAA8B;IAIzC;QACE,IAAI,CAAC,YAAY,GAAG;YAClB,MAAM,EAAE,CAAC,EAAE,EAAC,EAAE,CAAC;YACf,KAAK,EAAE;gBACL,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,KAAK;aACZ;YAED,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC;YAC5B,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;YAG9B,UAAU,EAAE;gBACV;oBACE,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE;wBACP,KAAK,EAAE;4BACL,KAAK,EAAE,GAAG;yBACX;wBACD,MAAM,EAAE;4BACN,QAAQ,EAAE,QAAQ;yBACnB;qBACF;iBACF;aACF;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,sBAAsB;aAC7B;SAEF,CAAC;IACJ,CAAC;;4GAlCU,8BAA8B;4HAA9B,8BAA8B;;;;;;QC1B3C,yEAAgB;QACd,yEAAkD;QAAA,mEAAQ;QAAA,4DAAM;QAChE,0EAMa;QACf,4DAAM;;QANF,0DAA8B;QAA9B,2FAA8B;;;;;;;;;;;;;;;;;;;;;;ACoB3B,MAAM,sBAAsB;IAIjC;QACE,IAAI,CAAC,YAAY,GAAG;YAElB,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;iBAC5B;aACF;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK;aAEZ;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,mBAAmB;aAC1B;YACD,KAAK,EAAE;gBACL,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAG,KAAK,EAAG,KAAK,EAAG,KAAK,EAAG,KAAK,CAAC;aAC3D;YACD,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;SAC/B,CAAC;IACJ,CAAC;;4FA1BU,sBAAsB;oHAAtB,sBAAsB;;;;;;QCtBnC,yEAA+B;QAC3B,0EAMa;QACf,4DAAM;;QANF,0DAA+B;QAA/B,2FAA+B;;;;;;;;;;;;;;;;;;;;;ACI9B,MAAM,mBAAmB;IAE9B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;sFALU,mBAAmB;iHAAnB,mBAAmB;QCRhC,yEAA8B;QAC1B,yEAAwB;QACtB,yEAAkB;QAChB,8EAA4B;QAAA,oEAAS;QAAA,4DAAW;QAClD,4DAAM;QACN,yEAAmB;QACjB,yEAAiB;QAAA,8DAAG;QAAA,4DAAM;QAC1B,yEAAoB;QAAA,yEAAc;QAAA,4DAAM;QAC1C,4DAAM;QACR,4DAAM;QACN,0EAAyB;QACvB,0EAAkB;QAChB,+EAA4B;QAAA,2EAAe;QAAA,4DAAW;QACxD,4DAAM;QACN,0EAAmB;QACjB,0EAAiB;QAAA,8DAAE;QAAA,4DAAM;QACzB,0EAAoB;QAAA,+DAAG;QAAA,4DAAM;QAC/B,4DAAM;QACR,4DAAM;QACN,0EAAyB;QACvB,0EAAkB;QAChB,+EAA4B;QAAA,wEAAY;QAAA,4DAAW;QACrD,4DAAM;QACN,0EAAmB;QACjB,0EAAiB;QAAA,8DAAE;QAAA,4DAAM;QACzB,0EAAoB;QAAA,qEAAS;QAAA,4DAAM;QACrC,4DAAM;QACR,4DAAM;QAUR,4DAAM;;;;;;;;;;;;;;;;;;;;;AC9BD,MAAM,yBAAyB;IAEpC,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;kGALU,yBAAyB;uHAAzB,yBAAyB;QCPtC,4EAAwC;;;;;;;;;;;;;;;;;;;ACKjC,MAAM,0BAA0B;IAQrC,YACU,OAAmB,EACnB,QAAmB;QADnB,YAAO,GAAP,OAAO,CAAY;QACnB,aAAQ,GAAR,QAAQ,CAAW;QAP7B,qBAAgB,GAAG,CAAC,CAAC;QAGrB,oBAAe,GAAG,CAAC,CAAC;QAMlB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW,CAAC,QAAuB;QACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,+BAA+B;QAC/B,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAe,IAAI,CAAC,OAAO,CAAC,aAAc,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACrI,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,gCAAgC;QAChC,MAAM,QAAQ,GAAG,kBAAkB,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;;oGAvCU,0BAA0B;wHAA1B,0BAA0B;4JAA1B,kBAAc,gGAAd,kBAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJ8C;AAEQ;;;;;;;;;;;;AAS1E,MAAM,qBAAqB;IAQhC,YAA4C,IAAgB,EAAU,WAAwB,EAAU,UAAyB,EAAS,SAA8C,EAAS,SAAsB;QAA3K,SAAI,GAAJ,IAAI,CAAY;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,eAAU,GAAV,UAAU,CAAe;QAAS,cAAS,GAAT,SAAS,CAAqC;QAAS,cAAS,GAAT,SAAS,CAAa;QAHvN,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QACtD,qBAAgB,GAAiB,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE;QAGjM,gBAAW,GAAG,6BAA6B,CAAC;IAF+K,CAAC;IAI5N,QAAQ;QACN,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAChD,YAAY,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACzC,mBAAmB,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YAChD,QAAQ,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACrC,MAAM,EAAE,CAAC,IAAI,CAAC;SACf,CAAC,CAAC;IAGL,CAAC;IAGD,OAAO;QACL,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,EAAE;YAChD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,4BAA4B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YAC5F,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,mBAAmB,EAAE;YACvD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,oCAAoC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YACpG,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC5C,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YACvF,OAAO;SACR;QACD,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;YAClC,IAAI,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;YACxF,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC;YACtG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;YAEhF,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;YAC9E,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YAG/C,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC;gBAC/D,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;oBACjB,IAAG,GAAG,IAAI,SAAS,EACnB;wBACE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,OAAO,EAAE;4BACjE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;4BACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;yBACnB,CAAC,CAAC;qBACJ;yBAED;wBACE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,8EAA8E,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;qBAC/I;oBACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACzB,CAAC;gBACD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;oBAClB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;gBAC3E,CAAC;aACF,CAAC,CAAC;SACJ;IAGH,CAAC;;0FAhFU,qBAAqB,kEAQZ,qEAAe;mHARxB,qBAAqB;QCZlC,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,4EAAiB;QAAA,4DAAK;QACpE,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,+IAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACR,4DAAM;QACN,0EAA8D;QAAtB,6IAAU,cAAU,IAAC;QAE3D,yEAAiB;QACf,yEAAwC;QACtC,qFAAgE;QAC9D,6EAAW;QAAA,yEAAa;QAAA,4DAAY;QACpC,uEAAkF;QACpF,4DAAiB;QACnB,4DAAM;QACN,0EAAwC;QACtC,qFAAiE;QAC3D,6EAAW;QAAA,iFAAqB;QAAA,4DAAY;QAC5C,uEAAkG;QACxG,4DAAiB;QACnB,4DAAM;QACR,4DAAM;QAGN,0EAAiB;QAGf,0EAAwC;QACtC,qFAAgE;QAC9D,6EAAW;QAAA,oEAAQ;QAAA,4DAAY;QAC/B,wEAAiF;QACnF,4DAAiB;QACnB,4DAAM;QACR,4DAAM;QACN,0EAAiB;QAEf,2EAAyC;QACvC,oFAAyE;QAAA,kEAAM;QAAA,4DAAe;QAChG,4DAAM;QACR,4DAAM;QAGN,iEAAI;QACJ,0EAAiB;QACf,sEAA+C;QAC/C,2EAAyC;QACvC,8EAAuE;QAApB,8IAAS,aAAS,IAAC;QAAC,iEAAK;QAAA,4DAAS;QACvF,4DAAM;QACN,2EAAkE;QAChE,8EAAmD;QAAA,kEAAM;QAAA,4DAAS;QACpE,4DAAM;QACR,4DAAM;QACR,4DAAO;;QA9CD,0DAAiC;QAAjC,8FAAiC;QA+BsB,2DAAiB;QAAjB,0EAAiB;;AD2DvE,SAAS,qBAAqB;IACnC,OAAO,CAAC,OAAwB,EAA2B,EAAE;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,0EAA0E;QAC1E,MAAM,KAAK,GAAG,yCAAyC,CAAC;QAExD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC/B,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC,CAAC,mCAAmC;IAClD,CAAC,CAAC;AACJ,CAAC;AAIM,SAAS,kCAAkC;IAChD,OAAO,CAAC,OAAwB,EAA2B,EAAE;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE5B,0DAA0D;QAC1D,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,mCAAmC;QAChF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAW,iCAAiC;QAE/E,uDAAuD;QACvD,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;SACnC;QAED,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;SACjC;QAED,OAAO,IAAI,CAAC,CAAE,mCAAmC;IACnD,CAAC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEpIwE;AAEQ;;;;;;;;;;;;AAS1E,MAAM,YAAY;IAQvB,YAA4C,IAAgB,EAAU,WAAwB,EAAU,UAAyB,EAAS,SAAqC,EAAS,SAAsB;QAAlK,SAAI,GAAJ,IAAI,CAAY;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,eAAU,GAAV,UAAU,CAAe;QAAS,cAAS,GAAT,SAAS,CAA4B;QAAS,cAAS,GAAT,SAAS,CAAa;QAH9M,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QACtD,YAAO,GAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE;QAGjJ,gBAAW,GAAG,6BAA6B,CAAC;IAFsK,CAAC;IAInN,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACvC,QAAQ,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACrC,OAAO,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACpC,MAAM,EAAE,CAAC,IAAI,CAAC;SACf,CAAC,CAAC;IAGL,CAAC;IAGD,OAAO;QACL,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE;YACnC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,wBAAwB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YACxF,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YACvF,OAAO;SACR;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACzB,IAAI,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;YAC9D,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;YAE5D,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YAGtC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;gBAC7C,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;oBACjB,IAAG,GAAG,IAAI,SAAS,EACnB;wBACE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,OAAO,EAAE;4BACvD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;4BAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;4BACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;yBACnB,CAAC,CAAC;qBACJ;yBAED;wBACE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;qBACtF;oBACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACzB,CAAC;gBACD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;oBAClB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;gBAC3E,CAAC;aACF,CAAC,CAAC;SACJ;IAGH,CAAC;;wEAzEU,YAAY,kEAQH,qEAAe;0GARxB,YAAY;QCZzB,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,kEAAO;QAAA,4DAAK;QAC1D,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,sIAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACR,4DAAM;QACN,0EAAqD;QAAtB,oIAAU,cAAU,IAAC;QAElD,yEAAiB;QACf,yEAAwC;QACtC,qFAAgE;QAC9D,6EAAW;QAAA,qEAAS;QAAA,4DAAY;QAChC,uEAA0E;QAC5E,4DAAiB;QACnB,4DAAM;QACN,0EAAwC;QACtC,qFAAiE;QAC3D,6EAAW;QAAA,oEAAQ;QAAA,4DAAY;QAC/B,uEAAyE;QAC/E,4DAAiB;QACnB,4DAAM;QACR,4DAAM;QAEN,0EAAiB;QAEf,2EAAyC;QACvC,oFAAyE;QAAA,kEAAM;QAAA,4DAAe;QAChG,4DAAM;QACR,4DAAM;QAGN,iEAAI;QACJ,0EAAiB;QACf,sEAA+C;QAC/C,2EAAyC;QACvC,8EAAuE;QAApB,qIAAS,aAAS,IAAC;QAAC,iEAAK;QAAA,4DAAS;QACvF,4DAAM;QACN,2EAAkE;QAChE,8EAAmD;QAAA,kEAAM;QAAA,4DAAS;QACpE,4DAAM;QACR,4DAAM;QACR,4DAAO;;QAnCD,0DAAwB;QAAxB,qFAAwB;QAoB+B,2DAAiB;QAAjB,0EAAiB;;AD+DvE,SAAS,qBAAqB;IACnC,OAAO,CAAC,OAAwB,EAA2B,EAAE;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,0EAA0E;QAC1E,MAAM,KAAK,GAAG,yCAAyC,CAAC;QAExD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC/B,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC,CAAC,mCAAmC;IAClD,CAAC,CAAC;AACJ,CAAC;AAIM,SAAS,kCAAkC;IAChD,OAAO,CAAC,OAAwB,EAA2B,EAAE;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE5B,0DAA0D;QAC1D,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,mCAAmC;QAChF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAW,iCAAiC;QAE/E,uDAAuD;QACvD,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;SACnC;QAED,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;SACjC;QAED,OAAO,IAAI,CAAC,CAAE,mCAAmC;IACnD,CAAC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AE7HwE;AAEQ;;;;;;;;;;;;AAY1E,MAAM,sBAAsB;IAQjC,YAA4C,IAAkB,EAAU,WAAwB,EAAU,UAAyB,EAAS,SAA+C,EAAS,SAAsB;QAA9K,SAAI,GAAJ,IAAI,CAAc;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,eAAU,GAAV,UAAU,CAAe;QAAS,cAAS,GAAT,SAAS,CAAsC;QAAS,cAAS,GAAT,SAAS,CAAa;QAH1N,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QACtD,qBAAgB,GAAiB,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE;QAGjM,gBAAW,GAAG,6BAA6B,CAAC;IAFkL,CAAC;IAI/N,QAAQ;QACN,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACjD,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,+DAAmB,CAAC;YAC3D,mBAAmB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,+DAAmB,CAAC;YACzE,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,+DAAmB,CAAC;YACnD,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC7B,CAAC,CAAC;IAGL,CAAC;IAGD,OAAO;QACL,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,YAAY,EAAE;YACjD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,4BAA4B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YAC5F,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,mBAAmB,EAAE;YACxD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,oCAAoC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YACpG,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC7C,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YACvF,OAAO;SACR;QACD,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE;YACnC,IAAI,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;YACzF,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC;YACvG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;YAEjF,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;YAC/E,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YAG/C,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC;gBAChE,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;oBACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,OAAO,EAAE;wBACjE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;qBACnB,CAAC,CAAC;oBACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACzB,CAAC;gBACD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;oBAClB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;gBAC3E,CAAC;aACF,CAAC,CAAC;SACJ;IAGH,CAAC;;4FAzEU,sBAAsB,kEAQb,qEAAe;oHARxB,sBAAsB;QCfnC,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,6EAAkB;QAAA,4DAAK;QACrE,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,gJAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACR,4DAAM;QACN,0EAA+D;QAAtB,8IAAU,cAAU,IAAC;QAE5D,yEAAiB;QACf,yEAAwC;QACtC,qFAAgE;QAC9D,6EAAW;QAAA,yEAAa;QAAA,4DAAY;QACpC,uEAA2F;QAC7F,4DAAiB;QACnB,4DAAM;QACN,0EAAwC;QACtC,qFAAiE;QAC3D,6EAAW;QAAA,iFAAqB;QAAA,4DAAY;QAC5C,uEAAkG;QACxG,4DAAiB;QACnB,4DAAM;QACR,4DAAM;QAGN,0EAAiB;QAGf,0EAAwC;QACtC,qFAAgE;QAC9D,6EAAW;QAAA,oEAAQ;QAAA,4DAAY;QAC/B,wEAA0F;QAC5F,4DAAiB;QACnB,4DAAM;QACR,4DAAM;QACN,0EAAiB;QAEf,2EAAyC;QACvC,oFAAuD;QAAA,kEAAM;QAAA,4DAAe;QAC9E,4DAAM;QACR,4DAAM;QAGN,iEAAI;QACJ,0EAAiB;QACf,sEAA+C;QAC/C,2EAAyC;QACvC,8EAAuE;QAApB,+IAAS,aAAS,IAAC;QAAC,iEAAK;QAAA,4DAAS;QACvF,4DAAM;QACN,2EAAkE;QAChE,8EAAmD;QAAA,kEAAM;QAAA,4DAAS;QACpE,4DAAM;QACR,4DAAM;QACR,4DAAO;;QA9CD,0DAAkC;QAAlC,+FAAkC;;ADsFjC,SAAS,qBAAqB;IACnC,OAAO,CAAC,OAAwB,EAA2B,EAAE;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,0EAA0E;QAC1E,MAAM,KAAK,GAAG,yCAAyC,CAAC;QAExD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC/B,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC,CAAC,mCAAmC;IAClD,CAAC,CAAC;AACJ,CAAC;AAIM,SAAS,kCAAkC;IAChD,OAAO,CAAC,OAAwB,EAA2B,EAAE;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE5B,0DAA0D;QAC1D,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,mCAAmC;QAChF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAW,iCAAiC;QAE/E,uDAAuD;QACvD,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;SACnC;QAED,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;SACjC;QAED,OAAO,IAAI,CAAC,CAAE,mCAAmC;IACnD,CAAC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEhIwE;AAEQ;;;;;;;;;;;;AAY1E,MAAM,aAAa;IAQxB,YAA4C,IAAS,EAAU,WAAwB,EAAU,UAAyB,EAAS,SAAsC,EAAS,SAAsB;QAA5J,SAAI,GAAJ,IAAI,CAAK;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,eAAU,GAAV,UAAU,CAAe;QAAS,cAAS,GAAT,SAAS,CAA6B;QAAS,cAAS,GAAT,SAAS,CAAa;QAHxM,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QACtD,YAAO,GAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE;QAGjJ,gBAAW,GAAG,6BAA6B,CAAC;IAFgK,CAAC;IAI7M,QAAQ;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACxC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,+DAAmB,CAAC;YACnD,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,+DAAmB,CAAC;YACjD,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC7B,CAAC,CAAC;IAGL,CAAC;IACD,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE;YACpC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,wBAAwB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YACxF,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;YACnC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YACvF,OAAO;SACR;QACD,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YAC1B,IAAI,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;YAC/D,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;YAE7D,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YAGtC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;gBAC9C,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;oBACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,OAAO,EAAE;wBACvD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;wBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;wBACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;qBACnB,CAAC,CAAC;oBACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBACzB,CAAC;gBACD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;oBAClB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;gBAC3E,CAAC;aACF,CAAC,CAAC;SACJ;IAGH,CAAC;;0EAhEU,aAAa,kEAQJ,qEAAe;2GARxB,aAAa;QCf1B,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,mEAAQ;QAAA,4DAAK;QAC3D,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,uIAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACR,4DAAM;QACN,gEAAI;QACJ,0EAAsD;QAAtB,qIAAU,cAAU,IAAC;QAEnD,yEAAiB;QACf,0EAAwC;QACxC,qFAAgE;QAC9D,6EAAW;QAAA,qEAAS;QAAA,4DAAY;QAChC,uEAAkF;QACpF,4DAAiB;QACnB,4DAAM;QACN,0EAAwC;QACtC,qFAAiE;QAC3D,6EAAW;QAAA,oEAAQ;QAAA,4DAAY;QAC/B,uEAAiF;QACvF,4DAAiB;QACnB,4DAAM;QACN,4DAAM;QAEN,0EAAiB;QAEf,2EAAyC;QACvC,oFAAuD;QAAA,kEAAM;QAAA,4DAAe;QAC9E,4DAAM;QACR,4DAAM;QAGN,iEAAI;QACJ,0EAAiB;QACf,sEAA+C;QAC/C,2EAAyC;QACvC,8EAAuE;QAApB,sIAAS,aAAS,IAAC;QAAC,iEAAK;QAAA,4DAAS;QACvF,4DAAM;QACN,2EAAkE;QAChE,8EAAmD;QAAA,kEAAM;QAAA,4DAAS;QACpE,4DAAM;QACR,4DAAM;QACR,4DAAO;;QAnCD,0DAAyB;QAAzB,sFAAyB;;AD4ExB,SAAS,qBAAqB;IACnC,OAAO,CAAC,OAAwB,EAA2B,EAAE;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,0EAA0E;QAC1E,MAAM,KAAK,GAAG,yCAAyC,CAAC;QAExD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC/B,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC,CAAC,mCAAmC;IAClD,CAAC,CAAC;AACJ,CAAC;AAIM,SAAS,kCAAkC;IAChD,OAAO,CAAC,OAAwB,EAA2B,EAAE;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE5B,0DAA0D;QAC1D,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,mCAAmC;QAChF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAW,iCAAiC;QAE/E,uDAAuD;QACvD,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;SACnC;QAED,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;SACjC;QAED,OAAO,IAAI,CAAC,CAAE,mCAAmC;IACnD,CAAC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEvHmF;AACvB;AACF;AAMK;AACE;;;;;;;;;;;;;;ICkB5D,yEAAgE;IAAA,wEAAa;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGzF,yEAAgE;IAAA,gFAAqB;IAAA,4DAAK;;;IAC1F,yEAA+D;IAAC,uDAAgC;IAAA,4DAAK;;;IAArC,0DAAgC;IAAhC,2GAAgC;;;IAKhG,yEAAgE;IAAC,qEAAS;IAAA,4DAAK;;;IAC/E,yEAA+D;IAAC,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAGrF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAiD;IAAA,4DAAK;;;IAAtD,0DAAiD;IAAjD,gIAAiD;;;IAIjH,yEAAgE;IAAA,+DAAI;IAAA,4DAAK;;;;IACzE,yEAA+D;IAC7D,6EAC4B;IADJ,mZAAqC;IAE3D,2EAAU;IAAA,+DAAI;IAAA,4DAAW;IAC3B,4DAAS;IACX,4DAAK;;;IAEP,oEAAsF;;;IACtF,oEAA0F;;;ADrCvF,MAAM,yBAAyB;IAepC,YAA4C,IAAwB,EAAU,WAAwB,EAAS,MAAiB,EAAU,MAA0B,EAAS,SAAkD,EAAS,UAAwB;QAApN,SAAI,GAAJ,IAAI,CAAoB;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,WAAM,GAAN,MAAM,CAAoB;QAAS,cAAS,GAAT,SAAS,CAAyC;QAAS,eAAU,GAAV,UAAU,CAAc;QAbhQ,eAAU,GAAS,EAAE,CAAC;QACtB,mBAAc,GAAW,CAAC,CAAC;QAC3B,qBAAgB,GAAa,CAAC,cAAc,EAAC,qBAAqB,EAAE,UAAU,EAAE,UAAU,EAAC,kBAAkB,CAAC,CAAC;QAE/G,SAAI,GAAG,EAAE,CAAC;QAKV,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;IAG8M,CAAC;IAErQ,QAAQ;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,mBAAmB;QACjB,IAAI,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAE,CAAC,WAAgB,EAAE,EAAE;YACpE,IAAI,CAAC,sBAAsB,GAAG,IAAI,uEAAkB,CAAe,WAAW,CAAC,CAAC;YAChF,IAAI,CAAC,sBAAsB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxE,CAAC;IACD,cAAc;QAEZ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yEAAqB,EAAE;YACxD,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,OAAO;SAEf,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAE,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,kBAAkB,CAAC,IAAQ;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2EAAsB,EAAE;YACzD,IAAI,EAAE;gBACJ,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAC,IAAI,CAAC,QAAQ;aAC7I;YACD,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,OAAO;SAEf,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAE,EAAE,CAAC;QAEtB,CAAC,CAAC,CAAC;IACL,CAAC;;kGApEU,yBAAyB,kEAehB,qEAAe;uHAfxB,yBAAyB;kEAQzB,qEAAY;;;;;QC3BzB,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,gFAAqB;QAAA,4DAAK;QACxE,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD1B,mJAAS,aAAS,IAAC;QACO,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACR,4DAAM;QACN,yEAAiB;QACjB,yEAAwC;QACpC,oFAAsC;QAEpC,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B,+EAA6F;QAA7E,uJAAS,uBAAmB,IAAC;QAA7C,4DAA6F;QAC/F,4DAAiB;QACnB,4DAAM;QACN,0EAAwC;QACtC,8EAA+E;QAA3B,kJAAS,oBAAgB,IAAC;QAAC,6EAAiB;QAAA,4DAAS;QAC3G,4DAAM;QACR,4DAAM;QAIN,2EAA6B;QAC3B,6EAC6C;QAC3C,6EAA0C;QACxC,sHAAkF;QAClF,sHAA8F;QAChG,qEAAe;QACf,6EAAiD;QAC/C,sHAA0F;QAC1F,sHAAqG;QACvG,qEAAe;QAGf,6EAAsC;QACpC,sHAA+E;QAC/E,sHAA0F;QAC5F,qEAAe;QACf,6EAAsC;QACpC,sHAAmF;QACnF,sHAAsH;QACxH,qEAAe;QAEf,6EAA8C;QAC5C,sHAAyE;QACzE,sHAKK;QACP,qEAAe;QACf,sHAAsF;QACtF,sHAA0F;QAC5F,4DAAQ;QACV,4DAAM;QACN,uEAAK;QACH,gFACgB;QAClB,4DAAM;;QAhDoE,2DAAwB;QAAxB,mFAAwB;QAW/E,0DAAqC;QAArC,kGAAqC;QA8BN,2DAAiC;QAAjC,iGAAiC;QACtB,0DAA0B;QAA1B,kGAA0B;QAItE,0DAA+B;QAA/B,kJAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3DoC;AACvB;AACF;AAQb;AACE;;;;;;;;;;;;;;ICgB1C,yEAAgE;IAAA,oEAAS;IAAA,4DAAK;;;IAC9E,yEAA+D;IAAC,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAGrF,yEAAgE;IAAA,mEAAQ;IAAA,4DAAK;;;IAC7E,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAIpF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAiD;IAAA,4DAAK;;;IAAtD,0DAAiD;IAAjD,gIAAiD;;;IAIjH,yEAAgE;IAAA,+DAAI;IAAA,4DAAK;;;;IACzE,yEAA+D;IAC7D,6EAC4B;IADJ,iYAA4B;IAElD,2EAAU;IAAA,+DAAI;IAAA,4DAAW;IAC3B,4DAAS;IACX,4DAAK;;;IAEP,oEAAsF;;;IACtF,oEAA0F;;;AD9BvF,MAAM,gBAAgB;IAe3B,YAA4C,IAAS,EAAU,WAAwB,EAAS,MAAiB,EAAU,MAA0B,EAAS,SAAyC,EAAS,UAAwB;QAA5L,SAAI,GAAJ,IAAI,CAAK;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,WAAM,GAAN,MAAM,CAAoB;QAAS,cAAS,GAAT,SAAS,CAAgC;QAAS,eAAU,GAAV,UAAU,CAAc;QAbxO,eAAU,GAAS,EAAE,CAAC;QACtB,mBAAc,GAAW,CAAC,CAAC;QAC3B,qBAAgB,GAAa,CAAC,UAAU,EAAC,SAAS,EAAE,UAAU,EAAC,SAAS,CAAC,CAAC;QAE1E,SAAI,GAAG,EAAE,CAAC;QAKV,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;IAGsL,CAAC;IAE7O,QAAQ;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,UAAU;QACR,IAAI,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAE,CAAC,WAAgB,EAAE,EAAE;YACnE,IAAI,CAAC,aAAa,GAAG,IAAI,uEAAkB,CAAM,WAAW,CAAC,CAAC;YAC9D,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/D,CAAC;IACD,cAAc;QAEZ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uDAAY,EAAE;YAC/C,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,OAAO;SAEf,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,GAAE,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,SAAS,CAAC,IAAQ;QAEhB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yDAAa,EAAE;YAChD,IAAI,EAAE;gBACJ,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAC,IAAI,CAAC,QAAQ;aACpF;YACD,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,OAAO;SAEf,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,GAAE,EAAE,CAAC;QAEtB,CAAC,CAAC,CAAC;IACL,CAAC;;gFApEU,gBAAgB,kEAeP,qEAAe;8GAfxB,gBAAgB;kEAQhB,qEAAY;;;;;QC7BzB,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,sEAAW;QAAA,4DAAK;QAC9D,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD1B,0IAAS,aAAS,IAAC;QACO,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACR,4DAAM;QACN,yEAAiB;QACjB,yEAAwC;QACpC,oFAAsC;QAEpC,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B,+EAA6F;QAA7E,8IAAS,uBAAmB,IAAC;QAA7C,4DAA6F;QAC/F,4DAAiB;QACnB,4DAAM;QACN,0EAAwC;QACtC,8EAA+E;QAA3B,yIAAS,oBAAgB,IAAC;QAAC,mEAAO;QAAA,4DAAS;QACjG,4DAAM;QACR,4DAAM;QAIN,2EAA6B;QAC3B,6EAC6C;QAC3C,6EAAsC;QACpC,6GAA8E;QAC9E,6GAA0F;QAC5F,qEAAe;QACf,6EAAqC;QACnC,6GAA6E;QAC7E,6GAAyF;QAC3F,qEAAe;QAEf,6EAAsC;QACpC,6GAAmF;QACnF,6GAAsH;QACxH,qEAAe;QAEf,6EAAqC;QACnC,6GAAyE;QACzE,6GAKK;QACP,qEAAe;QACf,6GAAsF;QACtF,6GAA0F;QAC5F,4DAAQ;QACV,4DAAM;QACN,uEAAK;QACH,gFACgB;QAClB,4DAAM;;QA3CoE,2DAAwB;QAAxB,mFAAwB;QAW/E,0DAA4B;QAA5B,yFAA4B;QAyBG,2DAAiC;QAAjC,iGAAiC;QACtB,0DAA0B;QAA1B,kGAA0B;QAItE,0DAA+B;QAA/B,kJAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtDhD;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACLEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAoFA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAoCA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;AAAoBA,IAAAA,uDAAAA;AAChKA,IAAAA,4DAAAA;AAA2EA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAqCA,IAAAA,oDAAAA;AAA6BA,IAAAA,0DAAAA;AAC/IA,IAAAA,0DAAAA;;;;;;;;AAyBIA,IAAAA,4DAAAA;AACAA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAwEA,IAAAA,oDAAAA;AAAkBA,IAAAA,4DAAAA;AAAWA,IAAAA,oDAAAA;AAAOA,IAAAA,0DAAAA;AAAWA,IAAAA,0DAAAA;;;;;;;;AACvHA,IAAAA,4DAAAA;AACIA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAwFA,IAAAA,oDAAAA;AAAoBA,IAAAA,4DAAAA;AAAWA,IAAAA,oDAAAA;AAAOA,IAAAA,0DAAAA;AAAWA,IAAAA,0DAAAA;;;;;;;;AA1BjJA,IAAAA,4DAAAA;AAGEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAmBA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA,OAA+B,eAA/B,EAA+B;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA,KAA/B;AAAnBA,IAAAA,0DAAAA;AAECA,IAAAA,uDAAAA;AACDA,IAAAA,4DAAAA;AAA+BA,IAAAA,oDAAAA;AAA6BA,IAAAA,0DAAAA;AAC5DA,IAAAA,uDAAAA;AAAIA,IAAAA,uDAAAA;AACNA,IAAAA,0DAAAA;AACAA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAA0BA,IAAAA,wDAAAA;AAAAA,MAAAA,2DAAAA;AAAA;AAAA;AAAA;AAAsEA,IAAAA,oDAAAA;AAAMA,IAAAA,0DAAAA;AACxGA,IAAAA,0DAAAA;AASAA,IAAAA,4DAAAA;AAEEA,IAAAA,wDAAAA;AAEAA,IAAAA,wDAAAA;AAGFA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;;;;;AAzBiEA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAmBlCA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;AAEAA,IAAAA,uDAAAA;AAAAA,IAAAA,wDAAAA;;;;;;AAwBzBA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAeA,IAAAA,0DAAAA;;;;;;AAChFA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAuBA,IAAAA,0DAAAA;;;;;AAAvBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIhEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;;AACrFA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAyBA,IAAAA,0DAAAA;;;;;AAAzBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIhEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;AACrEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAgBA,IAAAA,0DAAAA;;;;;AAAhBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAaA,IAAAA,0DAAAA;;;;;;AAC7EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAyBA,IAAAA,0DAAAA;;;;;AAAzBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAShEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAWA,IAAAA,0DAAAA;;;;;;AAC5EA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAsBA,IAAAA,0DAAAA;;;;;AAAtBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIhEA,IAAAA,4DAAAA;AAAiEA,IAAAA,oDAAAA;AAAOA,IAAAA,0DAAAA;;;;;;AACxEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAmBA,IAAAA,0DAAAA;;;;;AAAnBA,IAAAA,uDAAAA;AAAAA,IAAAA,gEAAAA;;;;;;AAIhEA,IAAAA,4DAAAA;AAAgEA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;;;;;;;;AACpEA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAwBA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEtBA,IAAAA,4DAAAA;AAAUA,IAAAA,oDAAAA;AAAIA,IAAAA,0DAAAA;AAChBA,IAAAA,0DAAAA;AACFA,IAAAA,0DAAAA;;;;;;AAIAA,IAAAA,4DAAAA;AAA6EA,IAAAA,oDAAAA;AAAOA,IAAAA,0DAAAA;;;;;;;;AACpFA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAwBA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEtBA,IAAAA,4DAAAA;AAAUA,IAAAA,oDAAAA;AAAMA,IAAAA,0DAAAA;AAClBA,IAAAA,0DAAAA;AAEFA,IAAAA,0DAAAA;;;;;;AAEFA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,uDAAAA;;;;;;AACAA,IAAAA,4DAAAA;AACEA,IAAAA,4DAAAA;AAAiCA,IAAAA,oDAAAA;AAA2BA,IAAAA,0DAAAA;AAC9DA,IAAAA,0DAAAA;;;;;;;;;;;;ACtFMA,IAAAA,4DAAAA;AAA+IA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyCA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;AAAzFA,IAAAA,wDAAAA;AAAqEA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;;;AAmBxLA,IAAAA,4DAAAA;AAA4JA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqDA,IAAAA,oDAAAA;AAAiCA,IAAAA,0DAAAA;;;;;AAArHA,IAAAA,wDAAAA;AAAoFA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;;;ACjBjNA,IAAAA,4DAAAA;AAA8IA,IAAAA,oDAAAA;AAAoBA,IAAAA,0DAAAA;;;;;AAA/CA,IAAAA,wDAAAA;AAA2BA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;;;;;AAU9IA,IAAAA,4DAAAA;AAA6JA,IAAAA,wDAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqDA,IAAAA,oDAAAA;AAAiCA,IAAAA,0DAAAA;;;;;AAArHA,IAAAA,wDAAAA;AAAoFA,IAAAA,uDAAAA;AAAAA,IAAAA,+DAAAA;;;;AHexN,MAAO8hB,iBAAP,CAAwB;AAwB5B3hB,cAAmBoK,MAAnB,EAA8CjK,SAA9C,EAA8EyhB,UAA9E,EAAuG;AAApF;AAA2B;AAAgC;AAhB9E,oBAAmB,EAAnB;AACA,sBAAqB,EAArB;AACA,mCAA6C,EAA7C;AAEA,4BAA6B,EAA7B;AACA,gCAAiC,EAAjC;AACA,wBAAsB,EAAtB;AACA,yBAAsB,KAAtB;AACA,+BAA2B,GAA3B;AAEA,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AACA,sBAAkC,EAAlC;AACA,qBAA+B;AAAE1e,QAAE,EAAE,CAAN;AAAS2e,eAAS,EAAE,EAApB;AAAwBC,wBAAkB,EAAE,EAA5C;AAA+CC,cAAQ,EAAC,EAAxD;AAA4DC,SAAG,EAAE,EAAjE;AAAqEC,kBAAY,EAAE,EAAnF;AAAuFC,oBAAc,EAAE,CAAvG;AAA0GxM,eAAS,EAAE;AAArH,KAA/B;AACA,kCAAkD,EAAlD;AAGA,4BAA6B,CAAC,aAAD,EAAgB,oBAAhB,EAAsC,KAAtC,EAA6C,cAA7C,EAA6D,WAA7D,EAA0E,QAA1E,EAAoF,cAApF,EAAoG,gBAApG,CAA7B;AAEA,kCAAiC,CAAjC;AAEA,4BAA0B,EAA1B;AAEA,0BAAwB,KAAxB;AAP4G;;AAU5GhU,UAAQ;AACN,SAAKygB,gBAAL;AACA,SAAKC,mBAAL;AACA,SAAKC,kBAAL;AACD;;AACDA,oBAAkB;AAEhB,SAAKT,UAAL,CAAgBU,kBAAhB,GAAqClf,SAArC,CAAgDmf,OAAD,IAAiB;AAC9D;AACA,WAAKC,eAAL,GAAuBD,OAAO,CAACrd,MAAR,CAAewS,CAAC,IAAIA,CAAC,CAAC7L,QAAF,IAAc,IAAlC,CAAvB;AACD,KAHD;AAID;;AACDsW,kBAAgB;AACd,SAAKP,UAAL,CAAgBa,eAAhB,GAAkCrf,SAAlC,CAA6Csf,GAAD,IAAa;AACvD,WAAKC,YAAL,GAAoBD,GAApB;AACA,WAAKE,eAAL,CAAqBF,GAArB;AACD,KAHD;AAID;;AAEYG,mBAAiB,CAACC,IAAD,EAA4BC,aAA5B,EAAkDC,oBAAlD,EAAsFT,OAAtF,EAAmG;AAAA;;AAAA;AAE/H,YAAMU,QAAQ,GAAG,IAAIzB,iEAAJ,EAAjB;AACA,YAAM2B,KAAK,GAAGF,QAAQ,CAACG,YAAT,CAAsB,MAAtB,CAAd;AACA,YAAMC,MAAM,GAAGJ,QAAQ,CAACG,YAAT,CAAsB,OAAtB,EAA+B;AAAEE,aAAK,EAAE;AAAT,OAA/B,CAAf;AACA,YAAMC,MAAM,GAAGN,QAAQ,CAACG,YAAT,CAAsB,OAAtB,EAA+B;AAAEE,aAAK,EAAE;AAAT,OAA/B,CAAf;AACAD,YAAM,CAACpW,MAAP,GAAc,MAAd;AACAkW,WAAK,CAACK,OAAN,GAAgB,CACd;AAAEC,cAAM,EAAE,WAAV;AAAuBpD,WAAG,EAAE;AAA5B,OADc,EAEd;AAAEoD,cAAM,EAAE,oBAAV;AAAgCpD,WAAG,EAAE;AAArC,OAFc,EAGd;AAAEoD,cAAM,EAAE;AAAV,OAHc,EAId;AAAEA,cAAM,EAAE;AAAV,OAJc,EAKd;AAAEA,cAAM,EAAE,WAAV;AAAuBpD,WAAG,EAAE;AAA5B,OALc,CAAhB;AAOAgD,YAAM,CAACG,OAAP,GAAe,CAAC;AACdC,cAAM,EAAE,cADM;AACUpD,WAAG,EAAE;AADf,OAAD,EAEf;AAACoD,cAAM,EAAE,qBAAT;AAAgCpD,WAAG,EAAE;AAArC,OAFe,CAAf;AAGAkD,YAAM,CAACC,OAAP,GAAe,CAAC;AACdC,cAAM,EAAE,UADM;AACMpD,WAAG,EAAE;AADX,OAAD,CAAf;AAEA,UAAIqD,CAAC,GAAG,CAAR;AACA,UAAIC,WAAW,GAAG,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,EAAa,EAAb,EAAiB,EAAjB,CAAlB;AACAR,WAAK,CAACK,OAAN,CAAc9f,OAAd,CAAsBkgB,MAAM,IAAG;AAC7B,cAAMC,OAAO,GAAGD,MAAM,CAACE,MAAP,CAAcrkB,GAAd,CAAkBgc,CAAC,IAAIA,CAAC,CAACsI,QAAF,GAAatgB,MAApC,CAAhB,CAD6B,CAE7B;;AACA,cAAMugB,SAAS,GAAGL,WAAW,CAACD,CAAD,CAA7B;AACAA,SAAC,IAAI,CAAL;AACAE,cAAM,CAACxY,KAAP,GAAe4Y,SAAf;AACD,OAND;;AAOA,WAAK,IAAIjS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiR,oBAAoB,CAACvf,MAAzC,EAAiDsO,CAAC,EAAlD,EAAsD;AACpD,cAAMkS,OAAO,GAAGjB,oBAAoB,CAACjR,CAAD,CAApC;AACAsR,cAAM,CAACa,MAAP,CAAcD,OAAd;AACD;;AACD,WAAK,IAAIlS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwQ,OAAO,CAAC9e,MAA5B,EAAoCsO,CAAC,EAArC,EAAyC;AACvC,cAAMkS,OAAO,GAAG1B,OAAO,CAACxQ,CAAD,CAAvB;AACAwR,cAAM,CAACW,MAAP,CAAcD,OAAd;AACD;;AACD;;AACA,WAAK,IAAIlS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+Q,IAAI,CAACrf,MAAzB,EAAiCsO,CAAC,EAAlC,EAAsC;AACpC,cAAMkS,OAAO,GAAGnB,IAAI,CAAC/Q,CAAD,CAApB;AACAoR,aAAK,CAACe,MAAN,CAAaD,OAAb;AAEA,YAAIE,gBAAgB,GAAG,oBAAkBnB,oBAAoB,CAACvf,MAArB,GAA4B,CAA9C,CAAvB;AAEA,YAAI2gB,WAAW,GAAG,oBAAkB7B,OAAO,CAAC9e,MAAR,GAAe,CAAjC,CAAlB;AACA;;;;;AAIA0f,aAAK,CAACkB,OAAN,CAAc,IAAItS,CAAC,GAAG,CAAC,EAAvB,EAA2BuS,cAA3B,GAA4C;AAC1ClS,cAAI,EAAE,MADoC;AAE1CmS,kBAAQ,EAAE,CAACJ,gBAAD;AAFgC,SAA5C;AAIAhB,aAAK,CAACkB,OAAN,CAAc,IAAItS,CAAC,GAAG,CAAC,EAAvB,EAA2BuS,cAA3B,GAA4C;AAC1ClS,cAAI,EAAE,MADoC;AAE1CmS,kBAAQ,EAAE,CAACH,WAAD;AAFgC,SAA5C;AAID;;AAGD,YAAMnS,MAAM,SAASgR,QAAQ,CAACuB,IAAT,CAAcC,WAAd,EAArB;;AACA,WAAI,CAACC,eAAL,CAAqBzS,MAArB,EAA6B8Q,aAA7B;AA5D+H;AA6DhI;;AACO2B,iBAAe,CAACzS,MAAD,EAAckJ,QAAd,EAA8B;AACnD,UAAMwJ,UAAU,GACd,iFADF;AAEA,UAAMC,eAAe,GAAG,OAAxB;AACA,UAAM3kB,IAAI,GAAS,IAAIkS,IAAJ,CAAS,CAACF,MAAD,CAAT,EAAmB;AACpCG,UAAI,EAAEuS;AAD8B,KAAnB,CAAnB;AAGA3b,IAAAA,uCAAM,CACJ/I,IADI,EAEJkb,QAAQ,GAAGyJ,eAFP,CAAN;AAID;;AACDC,eAAa;AAEX,SAAKjD,UAAL,CAAgBQ,mBAAhB,GAAsChf,SAAtC,CAAiD0hB,WAAD,IAAqB;AACnE;AACA,WAAKC,gBAAL,GAAwBD,WAAW,CAAC5f,MAAZ,CAAmBwS,CAAC,IAAIA,CAAC,CAAC7L,QAAF,IAAc,IAAtC,CAAxB;AACA,WAAKmZ,gBAAL,GAAwB,KAAKD,gBAAL,CAAsBtlB,GAAtB,CAA0BwlB,CAAC,IAAIA,CAAC,CAACC,YAAjC,CAAxB;AACA,WAAKC,YAAL,GAAoB,KAAK3C,eAAL,CAAqB/iB,GAArB,CAAyB8P,CAAC,IAAIA,CAAC,CAAC6V,QAAhC,CAApB;AACA,WAAKC,SAAL,CAAetD,QAAf,GAA0B,KAAKoD,YAAL,CAAkBjgB,MAAlB,CAAyBwS,CAAC,IAAIA,CAAC,IAAI,EAAnC,CAA1B;AACA,WAAK2N,SAAL,CAAepD,YAAf,GAA8B,KAAK+C,gBAAL,CAAsB9f,MAAtB,CAA6BwS,CAAC,IAAIA,CAAC,IAAI,EAAvC,CAA9B;AACA,WAAK2N,SAAL,CAAepD,YAAf,GAA8B,KAAKoD,SAAL,CAAepD,YAAf,CAA4BzJ,KAA5B,CAAkC,CAAlC,EAAqC,EAArC,CAA9B;;AACA,WAAK,IAAIzG,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,IAArB,EAA2BA,CAAC,EAA5B,EAAgC;AAC9B,aAAKuT,UAAL,CAAgBxhB,IAAhB,CAAqB,KAAKuhB,SAA1B;AACD;;AACD,WAAKxC,iBAAL,CAAuB,KAAKyC,UAA5B,EAAwC,qBAAxC,EAA8D,KAAKP,gBAAnE,EAAoF,KAAKvC,eAAzF;AAED,KAbD;AAeD;;AACDJ,qBAAmB;AACjB,SAAKR,UAAL,CAAgBQ,mBAAhB,GAAsChf,SAAtC,CAAiD0hB,WAAD,IAAqB;AACnE,WAAKC,gBAAL,GAAwBD,WAAW,CAAC5f,MAAZ,CAAmBwS,CAAC,IAAIA,CAAC,CAAC7L,QAAF,IAAc,IAAtC,CAAxB;AACD,KAFD;AAGD;;AACD0Z,2BAAyB;AAEvB,SAAKC,wBAAL;AAED;;AACDC,kBAAgB,CAACngB,KAAD,EAAU;AAExB;AACA,SAAKogB,mBAAL,GAA2BpgB,KAAK,CAAC1C,KAAjC;AACA,SAAK+iB,sBAAL,GAA8B,EAA9B;AACD;;AACDC,kBAAgB,CAACtgB,KAAD,EAAU;AAE5B,SAAKugB,aAAL,GAAoB,CAAC,KAAKA,aAA1B;AACA,SAAKH,mBAAL,GAA0B,GAA1B;AACG;;AACDF,0BAAwB;AACxB,SAAK5D,UAAL,CAAgBkE,yBAAhB,GAA4C1iB,SAA5C,CAAuDsf,GAAD,IAAY;AAChE;AACA,WAAKqD,uBAAL,GAA6B,IAAIxmB,uEAAJ,CAA2CmjB,GAA3C,CAA7B;AACA,YAAMsD,WAAW,GAAE,KAAKD,uBAAL,CAA6B/K,YAA7B,CAA0Cvb,GAA1C,CAA8CmN,GAAG,IAAE,CAACA,GAAG,CAACqZ,cAAL,EAAoBrZ,GAAG,CAACsZ,YAAxB,EAAsCtZ,GAAG,CAACuZ,GAA1C,EAA+CvZ,GAAG,CAACsV,cAAnD,EAAmEtV,GAAG,CAACwZ,SAAvE,CAAnD,CAAnB;AACA,YAAMC,WAAW,GAAC,CAChB,CAAC,YAAD,EAAc,oBAAd,EAAmC,KAAnC,EAAyC,cAAzC,EAAwD,YAAxD,CADgB,EAEhB,GAAGL,WAFa,CAAlB;AAIA,YAAMM,iBAAiB,GAAmBrd,oDAAA,CAAwBod,WAAxB,CAA1C;AACAC,uBAAiB,CAAC,OAAD,CAAjB,GAA2B,CAAC;AAAClb,aAAK,EAAC;AAAP,OAAD,EAAY;AAACA,aAAK,EAAC;AAAP,OAAZ,EAAuB;AAACA,aAAK,EAAC;AAAP,OAAvB,EAAkC;AAACA,aAAK,EAAC;AAAP,OAAlC,EAA6C;AAACA,aAAK,EAAC;AAAP,OAA7C,EAAwD;AAACA,aAAK,EAAC;AAAP,OAAxD,EAAmE;AAACA,aAAK,EAAC;AAAP,OAAnE,EAA8E;AAACA,aAAK,EAAC;AAAP,OAA9E,CAA3B;AAEA,YAAMob,WAAW,GAAEvd,gDAAA,EAAnB;AACAA,MAAAA,yDAAA,CAA6Bud,WAA7B,EAA0CF,iBAA1C,EAA6D,SAA7D;AACArd,MAAAA,2CAAA,CAAeud,WAAf,EAA2B,uBAA3B;AACD,KAdD;AAeC;;AACDC,mBAAiB,CAACC,kBAAD,EAA2BphB,KAA3B,EAAoC;AAEnD;AAEA,SAAKqgB,sBAAL,GAA8B,KAAKgB,cAAN,GAAsB,KAAKhB,sBAA3B,GAAkD,EAA/E;;AACA,QAAG,KAAKA,sBAAL,CAA4BliB,MAA5B,IAAsC,CAAzC,EACE;AACE,WAAKme,UAAL,CAAgB5a,cAAhB,CAA+B,oCAA/B,EAAqE,MAArE,EAA6E,MAA7E,EAAqF,cAArF;AACA,WAAK4f,QAAL,GAAgB,EAAhB;AACA,WAAKD,cAAL,GAAqB,KAArB;AACA;AACD,KANH,MAQE;AAEM,WAAK/E,UAAL,CAAgBiF,iBAAhB,CAAkC,KAAKlB,sBAAvC,EAA+DviB,SAA/D,CAA0Esf,GAAD,IAAa;AACpF,YAAG,CAACoE,KAAK,CAACpE,GAAD,CAAT,EAAe;AACb,cAAIA,GAAG,IAAI,GAAX,EACE;AACE,gBAAIqE,OAAO,GAAC,EAAZ;AACA,gBAAGL,kBAAkB,IAAE,GAAvB,EACEK,OAAO,GAACrE,GAAG,GAAG,gCAAd,CADF,KAGAqE,OAAO,GAACrE,GAAG,GAAG,+BAAd;;AAEF,iBAAKviB,SAAL,CAAekH,IAAf,CAAoB0f,OAApB,EAA8B,OAA9B,EAAuC;AACvCxf,gCAAkB,EAAE,KAAKA,kBADc;AAEvCD,8BAAgB,EAAE,KAAKA,gBAFgB;AAGvCH,sBAAQ,EAAE,IAAI;AAHyB,aAAvC;AAKH,WAbC,MAcE;AACF,iBAAKya,UAAL,CAAgB5a,cAAhB,CAA+B,0CAA/B,EAA2E,MAA3E,EAAmF,MAAnF,EAA2F,cAA3F;AACD;AAEF,SAnBC,MAqBA;AACE,eAAK4a,UAAL,CAAgB5a,cAAhB,CAA+B0b,GAA/B,EAAoC,MAApC,EAA4C,MAA5C,EAAoD,cAApD;AACD;;AAID,aAAKP,gBAAL;AACA,aAAKyE,QAAL,GAAgB,EAAhB;AACA,aAAKD,cAAL,GAAqB,KAArB;AACD,OA/BD;AAkCX;AAGI;;AAEHhS,cAAY,CAACrP,KAAD,EAAW;AACrB;AACA,SAAK0hB,gBAAL,GAAwB,EAAxB;AACA,SAAKL,cAAL,GAAsB,IAAtB;AACA,UAAM5b,MAAM,GAAgCzF,KAAK,CAACyF,MAAlD;AACA,UAAMmH,IAAI,GAAS5M,KAAK,CAACyF,MAAN,CAAa6J,KAAb,CAAmB,CAAnB,CAAnB;;AAEA,QAAI1C,IAAJ,EAAU;AACR,YAAM+U,eAAe,GAAG/U,IAAI,CAACgV,IAA7B;AACA,YAAMC,YAAY,GAAGF,eAAe,GAAG,IAAvC;AACA,YAAMG,YAAY,GAAGD,YAAY,GAAG,IAApC;AACA7jB,aAAO,CAACC,GAAR,CAAY6jB,YAAZ;;AACA,UAAIA,YAAY,GAAG,CAAnB,EAAsB;AACpB,aAAKxF,UAAL,CAAgB5a,cAAhB,CAA+B,6BAA/B,EAA8D,MAA9D,EAAsE,MAAtE,EAA8E,cAA9E;AACA,cAAMuY,aAAa,GAAG3M,QAAQ,CAAC4M,gBAAT,CAA0B,oBAA1B,CAAtB;AACAD,qBAAa,CAAC7b,OAAd,CAAuB6M,OAAD,IAAiB;AACrCA,iBAAO,CAAC3N,KAAR,GAAgB,EAAhB;AACD,SAFD;AAGD;AACF;;AACJ,SAAKykB,YAAL,GAAmBnV,IAAnB;;AACA,QAAG,KAAKmV,YAAL,CAAkB7iB,IAAlB,CAAuBsY,KAAvB,CAA6B,GAA7B,EAAkC,KAAKuK,YAAL,CAAkB7iB,IAAlB,CAAuBsY,KAAvB,CAA6B,GAA7B,EAAkCrZ,MAAlC,GAAyC,CAA3E,KAA+E,MAA/E,IAAyF,KAAK4jB,YAAL,CAAkB7iB,IAAlB,CAAuBsY,KAAvB,CAA6B,GAA7B,EAAkC,KAAKuK,YAAL,CAAkB7iB,IAAlB,CAAuBsY,KAAvB,CAA6B,GAA7B,EAAkCrZ,MAAlC,GAAyC,CAA3E,KAAgF,KAAzK,IAAkL,KAAK4jB,YAAL,CAAkB7iB,IAAlB,CAAuBsY,KAAvB,CAA6B,GAA7B,EAAkC,KAAKuK,YAAL,CAAkB7iB,IAAlB,CAAuBsY,KAAvB,CAA6B,GAA7B,EAAkCrZ,MAAlC,GAAyC,CAA3E,KAAgF,KAArQ,EAA2Q;AAC1Q,WAAKme,UAAL,CAAgB5a,cAAhB,CAA+B,0CAA/B,EAA2E,MAA3E,EAAmF,MAAnF,EAA2F,cAA3F;AACA,WAAK4f,QAAL,GAAgB,EAAhB;AACA,WAAKD,cAAL,GAAqB,KAArB;AACA;AACD;;AACG,QAAI5b,MAAM,CAAC6J,KAAP,CAAanR,MAAb,KAAwB,CAA5B,EAA+B,MAAM,IAAI6jB,KAAJ,CAAU,2BAAV,CAAN;AAC/B,UAAMC,MAAM,GAAe,IAAIC,UAAJ,EAA3B;;AAEAD,UAAM,CAACE,MAAP,GAAiB9jB,CAAD,IAAW;;;AACzB,YAAM+jB,SAAS,GAAW/jB,CAAC,CAACoH,MAAF,CAASO,MAAnC;AACA,YAAM2X,QAAQ,GAAkBha,sCAAA,CAAUye,SAAV,EAAqB;AAAEtV,YAAI,EAAE;AAAR,OAArB,CAAhC;AAEA,YAAMwV,cAAc,GAAW3E,QAAQ,CAAC4E,UAAT,CAAoB,CAApB,CAA/B;AACA,YAAMC,SAAS,GAAmB7E,QAAQ,CAAC8E,MAAT,CAAgBH,cAAhB,CAAlC;AAEA,WAAKZ,gBAAL,GAAwB/d,qDAAA,CAAyB6e,SAAzB,EAAoC;AAAErE,cAAM,EAAE;AAAV,OAApC,CAAxB;AACA,WAAKuD,gBAAL,CAAsBiB,KAAtB;AACA,WAAKtC,sBAAL,GAA8B,EAA9B;AACA;;AACA,WAAK,IAAIpW,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKyX,gBAAL,CAAsBvjB,MAA1C,EAAkD8L,CAAC,EAAnD,EAAuD;AACrD,YAAK,KAAKyX,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,KAA+B,EAAhC,IAAsC,KAAKyX,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,EAA4BnK,QAA5B,CAAqC,KAArC,CAA1C,EACA;AACE,cAAI,CAAC,KAAK4hB,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAAL,EAAkC;AAChC,iBAAKqS,UAAL,CAAgB5a,cAAhB,CAA+B,qDAAqD,KAAKggB,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAApF,EAAiH,MAAjH,EAAyH,MAAzH,EAAiI,cAAjI;AACA,iBAAKqX,QAAL,GAAgB,EAAhB;AACA,iBAAKD,cAAL,GAAqB,KAArB;AACA;AACD;;AACD,cAAI,CAAC,KAAKK,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,EAA4BwU,QAA5B,GAAuC/Y,IAAvC,EAAL,EAAoD;AAClD,iBAAK4W,UAAL,CAAgB5a,cAAhB,CAA+B,qDAAqD,KAAKggB,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAApF,EAAiH,MAAjH,EAAyH,MAAzH,EAAiI,cAAjI;AACA,iBAAKqX,QAAL,GAAgB,EAAhB;AACA,iBAAKD,cAAL,GAAqB,KAArB;AACA;AACD;;AACD,cAAI,CAAC,KAAKK,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAAL,EAAkC;AAChC,iBAAKqS,UAAL,CAAgB5a,cAAhB,CAA+B,qCAAqC,KAAKggB,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAApE,EAAiG,MAAjG,EAAyG,MAAzG,EAAiH,cAAjH;AACA,iBAAKqX,QAAL,GAAgB,EAAhB;AACA,iBAAKD,cAAL,GAAqB,KAArB;AACA;AACD;;AAED,cAAI,CAAC,KAAKK,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,EAA4BwU,QAA5B,GAAuC/Y,IAAvC,EAAL,EAAoD;AAClD,iBAAK4W,UAAL,CAAgB5a,cAAhB,CAA+B,qCAAqC,KAAKggB,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAApE,EAAiG,MAAjG,EAAyG,MAAzG,EAAiH,cAAjH;AACA,iBAAKqX,QAAL,GAAgB,EAAhB;AACA,iBAAKD,cAAL,GAAqB,KAArB;AACA;AACD;;AACD,cAAI,KAAKnE,eAAL,CAAqBtd,MAArB,CAA4BwS,CAAC,IAAIA,CAAC,CAAC0N,QAAF,IAAc,KAAK4B,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAA/C,CAAD,CAA8E9L,MAA9E,IAAuF,CAA1F,EACE;AACE,iBAAKme,UAAL,CAAgB5a,cAAhB,CAA+B,6CAA6C,KAAKggB,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAA5E,EAAyG,MAAzG,EAAiH,MAAjH,EAAyH,cAAzH;AACA,iBAAKqX,QAAL,GAAgB,EAAhB;AACA,iBAAKD,cAAL,GAAqB,KAArB;AACA;AACD;;AACH,cAAI,CAAC,KAAKK,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAAL,EAAkC;AAChC,iBAAKqS,UAAL,CAAgB5a,cAAhB,CAA+B,+CAA+C,KAAKggB,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAA9E,EAA2G,MAA3G,EAAmH,MAAnH,EAA2H,cAA3H;AACA,iBAAKqX,QAAL,GAAgB,EAAhB;AACA,iBAAKD,cAAL,GAAqB,KAArB;AACA;AACD;;AACD,cAAI,CAAC,KAAKK,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,EAA4BwU,QAA5B,GAAuC/Y,IAAvC,EAAL,EAAoD;AAClD,iBAAK4W,UAAL,CAAgB5a,cAAhB,CAA+B,+CAA+C,KAAKggB,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAA9E,EAA2G,MAA3G,EAAmH,MAAnH,EAA2H,cAA3H;AACA,iBAAKqX,QAAL,GAAgB,EAAhB;AACA,iBAAKD,cAAL,GAAqB,KAArB;AACA;AACD;;AACD,cAAG,KAAK5B,gBAAL,CAAsB7f,MAAtB,CAA6BwS,CAAC,IAAIA,CAAC,CAACwN,YAAF,IAAkB,KAAK8B,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAApD,EAAiF9L,MAAjF,IAA0F,CAA7F,EACE;AACE,iBAAKme,UAAL,CAAgB5a,cAAhB,CAA+B,uDAAuD,KAAKggB,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAAtF,EAAmH,MAAnH,EAA2H,MAA3H,EAAmI,cAAnI;AACA,iBAAKqX,QAAL,GAAgB,EAAhB;AACA,iBAAKD,cAAL,GAAqB,KAArB;AACA;AACD;;AACH,cAAI,CAAC,KAAKK,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAAD,IAAgC,YAAKyX,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,OAA2B,IAA3B,IAA2BgF,aAA3B,GAA2B,MAA3B,GAA2BA,GAAEwP,QAAF,EAA3B,KAA2C,GAA/E,EAAoF;AAClF,iBAAKnC,UAAL,CAAgB5a,cAAhB,CAA+B,4CAA4C,KAAKggB,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAA3E,EAAwG,MAAxG,EAAgH,MAAhH,EAAwH,cAAxH;AACA,iBAAKqX,QAAL,GAAgB,EAAhB;AACA,iBAAKD,cAAL,GAAqB,KAArB;AACA;AACD;;AACD,cAAI,CAAC,KAAKK,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,EAA4BwU,QAA5B,GAAuC/Y,IAAvC,EAAD,IAAkD,KAAKgc,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,EAA4BwU,QAA5B,MAA0C,GAAhG,EAAqG;AACnG,iBAAKnC,UAAL,CAAgB5a,cAAhB,CAA+B,4CAA4C,KAAKggB,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAA3E,EAAwG,MAAxG,EAAgH,MAAhH,EAAwH,cAAxH;AACA,iBAAKqX,QAAL,GAAgB,EAAhB;AACA,iBAAKD,cAAL,GAAqB,KAArB;AACA;AACD;;AACD,cAAI,KAAKK,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,IAA8B,CAA9B,IAAmCuX,KAAK,CAAC,KAAKE,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAAD,CAA5C,EAA2E;AACzE,iBAAKqS,UAAL,CAAgB5a,cAAhB,CAA+B,mDAAmD,KAAKggB,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAAlF,EAA+G,MAA/G,EAAuH,MAAvH,EAA+H,cAA/H;AACA,iBAAKqX,QAAL,GAAgB,EAAhB;AACA,iBAAKD,cAAL,GAAqB,KAArB;AACA;AACD;;AACD,eAAKuB,uBAAL,CAA6BrG,SAA7B,GAAyC,KAAKmF,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAAzC;AACA,eAAK2Y,uBAAL,CAA6BpG,kBAA7B,GAAkD,KAAKkF,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAAlD;AACA,eAAK2Y,uBAAL,CAA6BlG,GAA7B,GAAmC,KAAKgF,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAAnC;AACA,eAAK2Y,uBAAL,CAA6BjG,YAA7B,GAA4C,KAAK+E,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAA5C;AACA,eAAK2Y,uBAAL,CAA6BhG,cAA7B,GAA8C,KAAK6C,gBAAL,CAAsBvL,IAAtB,CAA2B9B,CAAC,IAAIA,CAAC,CAACwN,YAAF,IAAkB,KAAK8B,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,CAAlD,EAA+ErM,EAA7H,EACE,KAAKglB,uBAAL,CAA6BxS,SAA7B,GAAyC,KAAKsR,gBAAL,CAAsBzX,CAAtB,EAAyB,CAAzB,EAA4BwU,QAA5B,GAAuC/Y,IAAvC,EAD3C;AAGA,eAAK2a,sBAAL,CAA4B7hB,IAA5B,CAAiC;AAC/BZ,cAAE,EAAE,CAD2B;AAE/BilB,0BAAc,EAAE,KAAKD,uBAAL,CAA6BrG,SAA7B,CAAuCkC,QAAvC,EAFe;AAG/BqE,wBAAY,EAAE,KAAKF,uBAAL,CAA6BpG,kBAHZ;AAI/BC,oBAAQ,EAAE,KAAKmG,uBAAL,CAA6BnG,QAJR;AAK/BC,eAAG,EAAE,KAAKkG,uBAAL,CAA6BlG,GALH;AAM/BC,wBAAY,EAAE,KAAKiG,uBAAL,CAA6BjG,YANZ;AAO/BC,0BAAc,EAAE,KAAKgG,uBAAL,CAA6BhG,cAPd;AAQ/BxM,qBAAS,EAAE,KAAKwS,uBAAL,CAA6BxS,SART;AAS/BrU,qBAAS,EAAE6G,MAAM,CAACP,cAAc,CAACC,OAAf,CAAuB,QAAvB,CAAD,CATc;AAU/BsF,uBAAW,EAAE,IAAIC,IAAJ,EAVkB;AAUNC,qBAAS,EAAElF,MAAM,CAACP,cAAc,CAACC,OAAf,CAAuB,QAAvB,CAAD,CAVX;AAW/ByF,uBAAW,EAAE,IAAIF,IAAJ,EAXkB;AAY/BuZ,8BAAkB,EAAC,KAAKhB;AAZO,WAAjC;AAcD;AACF;;AAED,UAAG,KAAKC,sBAAL,CAA4BliB,MAA5B,IAAsC,CAAzC,EACA;AACE,aAAKme,UAAL,CAAgB5a,cAAhB,CAA+B,oCAA/B,EAAqE,MAArE,EAA6E,MAA7E,EAAqF,cAArF;AACA,aAAK4f,QAAL,GAAgB,EAAhB;AACA,aAAKD,cAAL,GAAqB,KAArB;AACA;AACD;AACF,KAlHD;;AAmHAY,UAAM,CAACc,kBAAP,CAA0Btd,MAAM,CAAC6J,KAAP,CAAa,CAAb,CAA1B;AACD;;AACD0T,uBAAqB;AACnB,UAAM9nB,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiBoa,iFAAjB,EAA4C;AAC5DxhB,UAAI,EAAE,EADsD;AAE5DkL,YAAM,EAAE,OAFoD;AAG5DC,WAAK,EAAE;AAHqD,KAA5C,CAAlB;AAOA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAK6W,gBAAL;AACA,WAAKoG,UAAL,GAAkB,EAAlB;AAED,KAJD;AAKD;;AACDzd,aAAW,CAACxF,KAAD,EAAa;AACtB,UAAMZ,WAAW,GAAIY,KAAK,CAACyF,MAAN,CAAkCnI,KAAvD;AACA,SAAK4lB,kBAAL,CAAwBtjB,MAAxB,GAAiCR,WAAW,CAACsG,IAAZ,GAAmBrG,WAAnB,EAAjC;AACD;;AACD8jB,kBAAgB,CAACxoB,IAAD,EAAU;AACxB,QAAIsM,OAAO,CAAC,2DAA2DtM,IAAI,CAACgmB,cAAjE,CAAX,EAA6F;AAC3F,WAAKrE,UAAL,CAAgB8G,cAAhB,CAA+BzoB,IAA/B,EAAqCmD,SAArC,CAAgDsf,GAAD,IAAa;AAE1D,aAAKP,gBAAL;AACA,aAAKoG,UAAL,GAAkB,EAAlB;AAED,OALD;AAQD;AACF;;AACD3F,iBAAe,CAAC3iB,IAAD,EAAU;AACvB,SAAKuoB,kBAAL,GAA0B,IAAIjpB,uEAAJ,CAA2CU,IAA3C,CAA1B;AACA,SAAKuoB,kBAAL,CAAwBhe,SAAxB,GAAoC,KAAKA,SAAzC;AACD;;AAEDme,eAAa;AACX;AACA,UAAMnoB,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiBuhB,iBAAjB,EAAoC;AACpD3oB,UAAI,EAAE,EAD8C;AAEpDkL,YAAM,EAAE,OAF4C;AAGpDC,WAAK,EAAE;AAH6C,KAApC,CAAlB;AAOA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAK6W,gBAAL;AACA,WAAKoG,UAAL,GAAkB,EAAlB;AAED,KAJD;AAKD;;AACDM,gBAAc,CAAC5oB,IAAD,EAAU;AACtB;AACA,UAAMO,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiByhB,kBAAjB,EAAqC;AACrD7oB,UAAI,EAAE;AACJiD,UAAE,EAAEjD,IAAI,CAACiD,EADL;AACS+iB,sBAAc,EAAEhmB,IAAI,CAAC8oB,UAD9B;AAC0C7C,oBAAY,EAAEjmB,IAAI,CAACimB,YAD7D;AAC2EC,WAAG,EAAElmB,IAAI,CAACkmB,GADrF;AAC0FjE,sBAAc,EAAEjiB,IAAI,CAACiiB,cAD/G;AAC+HrW,gBAAQ,EAAG5L,IAAI,CAACgN,MAAL,IAAe,QAAhB,GAA4B,IAA5B,GAAmC,KAD5K;AAEJ;AACAmZ,iBAAS,EAAEnmB,IAAI,CAACmmB;AAHZ,OAD+C;AAMrDjb,YAAM,EAAE,OAN6C;AAOrDC,WAAK,EAAE;AAP8C,KAArC,CAAlB;AAWA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAK6W,gBAAL;AACA,WAAKoG,UAAL,GAAkB,EAAlB;AAGD,KALD;AAMD;;AArc2B;;;mBAAjB5G,mBAAiB9hB,+DAAAA,CAAAA,+DAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,mEAAAA;AAAA;;;QAAjB8hB;AAAiBjZ;AAAAC;AAAA;gEAIjBE,sEAAYA,EAAA;;;;;;;;;;;;;;AChEzBhJ,MAAAA,4DAAAA;AAEEA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAiBA,MAAAA,0DAAAA;AAC7DA,MAAAA,4DAAAA;AAAoDA,MAAAA,wDAAAA;AAAA,eAAU+I,4BAAV;AAAkC,OAAlC;AAClD/I,MAAAA,4DAAAA;AAAqCA,MAAAA,oDAAAA;AAAuBA,MAAAA,0DAAAA;AAC9DA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACAA,MAAAA,wDAAAA;AAIFA,MAAAA,0DAAAA;AACEA,MAAAA,wDAAAA;AA+BAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAEEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAOA,MAAAA,0DAAAA;AAClBA,MAAAA,4DAAAA;AAAgBA,MAAAA,wDAAAA;AAAA,eAAS+I,uBAAT;AAA4B,OAA5B,EAA6B,eAA7B,EAA6B;AAAA;AAAA,OAA7B;AAAhB/I,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAmDA,MAAAA,wDAAAA;AAAA,eAAS+I,mBAAT;AAAwB,OAAxB;AAA0B/I,MAAAA,oDAAAA;AAAgBA,MAAAA,0DAAAA;AAC/FA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAIEA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEEA,MAAAA,qEAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAOAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAMFA,MAAAA,mEAAAA;AAEAA,MAAAA,qEAAAA;AACEA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAOFA,MAAAA,mEAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AACAA,MAAAA,wDAAAA;AAIFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;;;;AAxHkDA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAK9BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAoCwDA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAQvDA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AA2D+BA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACWA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAQ5CA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA,oBAAAA,6DAAAA;;;;;;ADmab,MAAO+oB,iBAAP,CAAwB;AAe5B5oB,cAA4CC,IAA5C,EAA8E2hB,UAA9E,EAAiHzhB,SAAjH,EAAiJC,WAAjJ,EAAkLI,SAAlL,EAAqO4J,MAArO,EAAsP;AAA1M;AAAkC;AAAmC;AAAgC;AAAiC;AAAmD;AAPrO,qCAA4B,IAAIxK,wDAAJ,EAA5B;AACA,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AAEA,2BAAsC;AACpCsD,QAAE,EAAE,CADgC;AAC7B+iB,oBAAc,EAAE,EADa;AACTC,kBAAY,EAAE,EADL;AACShE,oBAAc,EAAE,CADzB;AAC4BiE,SAAG,EAAE,EADjC;AACqCC,eAAS,EAAE,EADhD;AACoDva,cAAQ,EAAE,IAD9D;AACoExK,eAAS,EAAE,CAD/E;AACkF6L,iBAAW,EAAE,IAAIC,IAAJ,EAD/F;AAC2GC,eAAS,EAAE,CADtH;AACyHC,iBAAW,EAAE,IAAIF,IAAJ;AADtI,KAAtC;AAKA,4BAA6B,CAAC,YAAD,EAAe,YAAf,EAA6B,MAA7B,EAAqC,QAArC,EAA+C,aAA/C,EAA8D,oBAA9D,EAAoF,KAApF,EAA2F,WAA3F,EAAwG,OAAxG,EAAiH,WAAjH,EAA8H,YAA9H,EAA4I,YAA5I,EAA0J,cAA1J,CAA7B;AAEA,uBAAc,6BAAd;AAJ2P;;AAM3PzL,UAAQ;AACN,SAAKsnB,eAAL;AACA,SAAKC,MAAL;AACA,SAAKC,eAAL,GAAuB,KAAK9oB,WAAL,CAAiBoB,KAAjB,CAAuB;AAC5CykB,oBAAc,EAAE,CAAC,IAAD,EAAOtmB,gEAAP,CAD4B;AAE5CumB,kBAAY,EAAE,CAAC,IAAD,EAAOvmB,gEAAP,CAF8B;AAG5CwmB,SAAG,EAAE,CAAC,IAAD,EAAOxmB,gEAAP,CAHuC;AAI5CwpB,+BAAyB,EAAE,CAAC,IAAD,EAAOxpB,gEAAP,CAJiB;AAK5C;AACA;AACAymB,eAAS,EAAE,CAAC,IAAD,EAAO,CAACzmB,gEAAD,EAAsBA,+DAAA,CAAmB,KAAK0pB,WAAxB,CAAtB,CAAP,CAPiC;AAQ5CC,YAAM,EAAE,CAAC,IAAD;AARoC,KAAvB,CAAvB;AAWD;;AACDL,QAAM;AAEJ,SAAKrH,UAAL,CAAgBU,kBAAhB,GAAqClf,SAArC,CAAgDmf,OAAD,IAAiB;AAC9D;AACA,WAAKC,eAAL,GAAuBD,OAAO,CAACrd,MAAR,CAAewS,CAAC,IAAIA,CAAC,CAAC7L,QAAF,IAAc,IAAlC,CAAvB;AACD,KAHD;AAID;;AACDmd,iBAAe;AACb,SAAKpH,UAAL,CAAgBQ,mBAAhB,GAAsChf,SAAtC,CAAiD0hB,WAAD,IAAqB;AACnE;AACA,WAAKC,gBAAL,GAAwBD,WAAW,CAAC5f,MAAZ,CAAmBwS,CAAC,IAAIA,CAAC,CAAC7L,QAAF,IAAc,IAAtC,CAAxB;AACD,KAHD;AAID;;AACD0d,WAAS;AACP,UAAM/oB,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiBqa,+DAAjB,EAAmC;AACnDzhB,UAAI,EAAE,EAD6C;AAEnDkL,YAAM,EAAE,OAF2C;AAGnDC,WAAK,EAAE;AAH4C,KAAnC,CAAlB;AAOA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAK2d,MAAL;AACD,KAFD;AAGD;;AACDO,oBAAkB;AAChB,UAAMhpB,SAAS,GAAG,KAAK4J,MAAL,CAAY/C,IAAZ,CAAiBoa,iFAAjB,EAA4C;AAC5DxhB,UAAI,EAAE,EADsD;AAE5DkL,YAAM,EAAE,OAFoD;AAG5DC,WAAK,EAAE;AAHqD,KAA5C,CAAlB;AAOA5K,aAAS,CAAC6K,WAAV,GAAwBjI,SAAxB,CAAkCkI,MAAM,IAAG;AACzC,WAAK0d,eAAL;AACD,KAFD;AAGD;;AACDS,uBAAqB,CAACvmB,EAAD,EAAW;;;AAC9B,eAAKgmB,eAAL,CAAqBnhB,GAArB,CAAyB,2BAAzB,OAAqD,IAArD,IAAqDwM,aAArD,GAAqD,MAArD,GAAqDA,GAAEmV,QAAF,CAAWxmB,EAAX,CAArD;AACA,SAAKymB,sBAAL,GAA8BzmB,EAA9B;AACD;;AACD0mB,cAAY,CAACzD,GAAD,EAAW;;;AAErB,eAAK+C,eAAL,CAAqBnhB,GAArB,CAAyB,KAAzB,OAA+B,IAA/B,IAA+BwM,aAA/B,GAA+B,MAA/B,GAA+BA,GAAEmV,QAAF,CAAWvD,GAAX,CAA/B;AACD;;AACD0D,gBAAc;AACZ,QAAI,CAAC,KAAKX,eAAL,CAAqBtmB,KAArB,CAA2BqjB,cAAhC,EAAgD;AAC9C,WAAKrE,UAAL,CAAgB5a,cAAhB,CAA+B,6BAA/B,EAA8D,MAA9D,EAAsE,MAAtE,EAA8E,cAA9E;AACA;AACD;;AACD,QAAI,CAAC,KAAKkiB,eAAL,CAAqBtmB,KAArB,CAA2BsjB,YAAhC,EAA8C;AAC5C,WAAKtE,UAAL,CAAgB5a,cAAhB,CAA+B,kCAA/B,EAAmE,MAAnE,EAA2E,MAA3E,EAAmF,cAAnF;AACA;AACD;;AACD,QAAI,KAAKkiB,eAAL,CAAqBtmB,KAArB,CAA2BujB,GAA3B,IAAmC,IAAvC,EAA6C;AAC3C,WAAKvE,UAAL,CAAgB5a,cAAhB,CAA+B,mBAA/B,EAAoD,MAApD,EAA4D,MAA5D,EAAoE,cAApE;AACA;AACD;;AACD,QAAI,CAAC,KAAKkiB,eAAL,CAAqBtmB,KAArB,CAA2BwjB,SAAhC,EAA2C;AACzC,WAAKxE,UAAL,CAAgB5a,cAAhB,CAA+B,yBAA/B,EAA0D,MAA1D,EAAkE,MAAlE,EAA0E,cAA1E;AACA;AACD;;AACD,QAAI,KAAKkiB,eAAL,CAAqBtmB,KAArB,CAA2BwjB,SAA3B,GAAuC,CAA3C,EAA8C;AAC5C,WAAKxE,UAAL,CAAgB5a,cAAhB,CAA+B,+BAA/B,EAAgE,MAAhE,EAAwE,MAAxE,EAAgF,cAAhF;AACA;AACD;;AACD,SAAK8iB,QAAL,CAAc,KAAKZ,eAAL,CAAqBtmB,KAArB,CAA2BwjB,SAAzC;;AACA,QAAI,KAAK8C,eAAL,CAAqBtmB,KAArB,CAA2BumB,yBAA3B,IAAwD,IAA5D,EAAkE;AAChE,WAAKvH,UAAL,CAAgB5a,cAAhB,CAA+B,6BAA/B,EAA8D,MAA9D,EAAsE,MAAtE,EAA8E,cAA9E;AACA;AACD;;AACD,QAAI,KAAKkiB,eAAL,CAAqBrhB,KAAzB,EAAgC;AAC9B,WAAKkiB,eAAL,CAAqB7mB,EAArB,GAA0B,CAA1B,EACE,KAAK6mB,eAAL,CAAqB9D,cAArB,GAAsC,KAAKiD,eAAL,CAAqB/iB,QAArB,CAA8B,gBAA9B,EAAgDvD,KADxF,EAEE,KAAKmnB,eAAL,CAAqB7D,YAArB,GAAoC,KAAKgD,eAAL,CAAqB/iB,QAArB,CAA8B,cAA9B,EAA8CvD,KAFpF,EAGE,KAAKmnB,eAAL,CAAqB5D,GAArB,GAA2B,KAAK+C,eAAL,CAAqB/iB,QAArB,CAA8B,KAA9B,EAAqCvD,KAHlE,EAIE,KAAKmnB,eAAL,CAAqB7H,cAArB,GAAsC,KAAKgH,eAAL,CAAqBnhB,GAArB,CAAyB,2BAAzB,EAAsDnF,KAJ9F,EAKE,KAAKmnB,eAAL,CAAqBle,QAArB,GAAgC,KAAKqd,eAAL,CAAqB/iB,QAArB,CAA8B,QAA9B,EAAwCvD,KAL1E,EAME,KAAKmnB,eAAL,CAAqB3D,SAArB,GAAiC,KAAK8C,eAAL,CAAqB/iB,QAArB,CAA8B,WAA9B,EAA2CvD,KAN9E,EAOE,KAAKmnB,eAAL,CAAqB1oB,SAArB,GAAiC6G,MAAM,CAACP,cAAc,CAACC,OAAf,CAAuB,QAAvB,CAAD,CAPzC,EASE,KAAKga,UAAL,CAAgBoI,WAAhB,CAA4B,KAAKD,eAAjC,EAAkD3mB,SAAlD,CAA6Dsf,GAAD,IAAa;AACvE;;AACA,YAAGA,GAAG,IAAI,SAAV,EACA;AACE,eAAKviB,SAAL,CAAekH,IAAf,CAAoB,+BAApB,EAAqD,OAArD,EAA8D;AAC5DE,8BAAkB,EAAE,KAAKA,kBADmC;AAE5DD,4BAAgB,EAAE,KAAKA,gBAFqC;AAG5DH,oBAAQ,EAAE,IAAI;AAH8C,WAA9D;;AAKA,eAAK3G,SAAL,CAAeuG,KAAf,CAAqB;AAAEzB,iBAAK,EAAE,IAAT;AAAerF,gBAAI,EAAEyiB;AAArB,WAArB;AACD,SARD,MASI;AACF,eAAKd,UAAL,CAAgB5a,cAAhB,CAA+B,yEAA/B,EAA0G,MAA1G,EAAkH,MAAlH,EAA0H,cAA1H;AACA;AACD;AAGF,OAjBD,CATF;AA2BD;AACF;;AACDD,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf;AACD;;AACD+iB,UAAQ,CAACG,GAAD,EAAW;;;AAEjB,QAAG,UAAG,CAAClG,QAAJ,GAAejH,KAAf,CAAqB,GAArB,EAA0B,CAA1B,OAA4B,IAA5B,IAA4BvI,aAA5B,GAA4B,MAA5B,GAA4BA,GAAE9Q,MAA9B,IAAuC,CAA1C,EACA;AACE,WAAKme,UAAL,CAAgB5a,cAAhB,CAA+B,8DAA/B,EAA+F,MAA/F,EAAuG,MAAvG,EAA+G,cAA/G;AACA;AACD;AAEF;;AACDN,SAAO;AACL,SAAKwiB,eAAL,CAAqB9kB,KAArB;AACA,SAAK8kB,eAAL,CAAqB/iB,QAArB,CAA8B,QAA9B,EAAwCujB,QAAxC,CAAiD,IAAjD;AACD;;AAxJ2B;;;mBAAjBd,mBAAiB/oB,+DAAAA,CAeRP,qEAfQ,GAeOO,+DAAAA,CAAAA,mEAAAA,GAAAA,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,wDAAAA,GAAAA,+DAAAA,CAAAA,kEAAAA,GAAAA,+DAAAA,CAAAA,+DAAAA;AAAA;;;QAfxB+oB;AAAiBlgB;AAAAqH;AAAAC;AAAAC;AAAAC;AAAA;AE/hB9BrQ,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAqBA,MAAAA,0DAAAA;AACnEA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAEEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAcA,MAAAA,0DAAAA;AACzBA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAmBA,MAAAA,0DAAAA;AAC9BA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAGA,MAAAA,0DAAAA;AACdA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AAEFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA8BA,MAAAA,wDAAAA;AAAA,eAAS+I,eAAT;AAAoB,OAApB;AAAsB/I,MAAAA,oDAAAA;AAAOA,MAAAA,0DAAAA;AACzDA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAKJA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAaA,MAAAA,0DAAAA;AACxBA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AACLA,MAAAA,4DAAAA;AAEUA,MAAAA,4DAAAA;AAA8BA,MAAAA,wDAAAA;AAAA,eAAS+I,wBAAT;AAA6B,OAA7B;AAA+B/I,MAAAA,oDAAAA;AAAiBA,MAAAA,0DAAAA;AAC/EA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AAKNA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAASA,MAAAA,0DAAAA;AACpBA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAMIA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACFA,MAAAA,4DAAAA;AAAyEA,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AAC7EA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEFA,MAAAA,uDAAAA;AAKJA,MAAAA,0DAAAA;AACAA,MAAAA,uDAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAmDA,MAAAA,wDAAAA;AAAA,eAAS+I,aAAT;AAAkB,OAAlB;AAAoB/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC9EA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAmDA,MAAAA,wDAAAA;AAAA,eAAS+I,oBAAT;AAAyB,OAAzB;AAA2B/I,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AACtFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;;;;AA5FMA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAwBsEA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAmBSA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AA8BtBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;AF8mBzD,MAAOipB,kBAAP,CAAyB;AAa7B9oB,cAA4CC,IAA5C,EAA8EE,SAA9E,EAA8GC,WAA9G,EAA+II,SAA/I,EAAkM4J,MAAlM,EAA6NwX,UAA7N,EAAsP;AAA1M;AAAkC;AAAgC;AAAiC;AAAmD;AAA2B;AAN7N,qCAA4B,IAAIhiB,wDAAJ,EAA5B;AACA,8BAAoD,QAApD;AACA,4BAAgD,KAAhD;AACA,4BAAuC;AACrCsD,QAAE,EAAE,CADiC;AAC9B+iB,oBAAc,EAAE,EADc;AACVC,kBAAY,EAAE,EADJ;AACQhE,oBAAc,EAAE,CADxB;AAC2BiE,SAAG,EAAE,EADhC;AACoCC,eAAS,EAAE,EAD/C;AACmDva,cAAQ,EAAE,IAD7D;AACmExK,eAAS,EAAE,CAD9E;AACiF6L,iBAAW,EAAE,IAAIC,IAAJ,EAD9F;AAC0GC,eAAS,EAAE,CADrH;AACwHC,iBAAW,EAAE,IAAIF,IAAJ;AADrI,KAAvC;AAKA,4BAA6B,CAAC,YAAD,EAAe,YAAf,EAA6B,MAA7B,EAAqC,QAArC,EAA+C,aAA/C,EAA8D,oBAA9D,EAAoF,KAApF,EAA2F,WAA3F,EAAwG,OAAxG,EAAiH,WAAjH,EAA8H,YAA9H,EAA4I,YAA5I,EAA0J,cAA1J,CAA7B;AAEA,uBAAc,6BAAd;AAJ2P;;AAM3PzL,UAAQ;AACN,SAAKsnB,eAAL;AACA,SAAK3G,kBAAL;AACA;AACA,SAAK6H,gBAAL,GAAwB,KAAK9pB,WAAL,CAAiBoB,KAAjB,CAAuB;AAC7C0B,QAAE,EAAE,KAAKjD,IAAL,CAAUiD,EAD+B;AAE7C+iB,oBAAc,EAAE,CAAC,KAAKhmB,IAAL,CAAUgmB,cAAX,CAF6B;AAG7CC,kBAAY,EAAE,CAAC,KAAKjmB,IAAL,CAAUimB,YAAX,CAH+B;AAI7CC,SAAG,EAAE,CAAC,KAAKlmB,IAAL,CAAUkmB,GAAX,EAAexmB,gEAAf,CAJwC;AAK7CwpB,+BAAyB,EAAE,CAAC,KAAKlpB,IAAL,CAAUiiB,cAAX,CALkB;AAM7CkE,eAAS,EAAE,CAAC,KAAKnmB,IAAL,CAAUmmB,SAAX,EAAsB,CAACzmB,gEAAD,EAAsBA,+DAAA,CAAmB,KAAK0pB,WAAxB,CAAtB,CAAtB,CANkC;AAO7CC,YAAM,EAAE,CAAC,KAAKrpB,IAAL,CAAU4L,QAAX;AAPqC,KAAvB,CAAxB;AASA,SAAKqe,gBAAL,CAAsB/jB,QAAtB,CAA+B,KAA/B,EAAsCpC,UAAtC,CAAiD,KAAK9D,IAAL,CAAUkmB,GAA3D;AACA,SAAK+D,gBAAL,CAAsB/jB,QAAtB,CAA+B,2BAA/B,EAA4DpC,UAA5D,CAAuE,KAAK9D,IAAL,CAAUiiB,cAAjF;AAED;;AACDnb,OAAK;AACH,SAAKvG,SAAL,CAAeuG,KAAf;AACD;;AACD0iB,uBAAqB,CAACvmB,EAAD,EAAW;;;AAC9B,eAAKgnB,gBAAL,CAAsBniB,GAAtB,CAA0B,2BAA1B,OAAsD,IAAtD,IAAsDwM,aAAtD,GAAsD,MAAtD,GAAsDA,GAAEmV,QAAF,CAAWxmB,EAAX,CAAtD;AACD;;AACDinB,cAAY,CAAC/E,QAAD,EAAiB;;;AAC3B,eAAK8E,gBAAL,CAAsBniB,GAAtB,CAA0B,KAA1B,OAAgC,IAAhC,IAAgCwM,aAAhC,GAAgC,MAAhC,GAAgCA,GAAEmV,QAAF,CAAWtE,QAAX,CAAhC;AACD;;AACD/C,oBAAkB;AAEhB,SAAKT,UAAL,CAAgBU,kBAAhB,GAAqClf,SAArC,CAAgDmf,OAAD,IAAiB;AAC9D;AACA,WAAKC,eAAL,GAAuBD,OAAO,CAACrd,MAAR,CAAewS,CAAC,IAAIA,CAAC,CAAC7L,QAAF,IAAc,IAAlC,CAAvB;AACD,KAHD;AAID;;AACDmd,iBAAe;AACb,SAAKpH,UAAL,CAAgBQ,mBAAhB,GAAsChf,SAAtC,CAAiD0hB,WAAD,IAAqB;AACnE,WAAKC,gBAAL,GAAwBD,WAAxB;AACD,KAFD;AAGD;;AACDsF,cAAY;AACV;AACA,SAAKF,gBAAL,CAAsB/jB,QAAtB,CAA+B,QAA/B,EAAyCujB,QAAzC,CAAkD,KAAlD;AACA,SAAKQ,gBAAL,CAAsB/jB,QAAtB,CAA+B,KAA/B,EAAsCujB,QAAtC,CAA+C,IAA/C;AACA,SAAKQ,gBAAL,CAAsB/jB,QAAtB,CAA+B,WAA/B,EAA4CujB,QAA5C,CAAqD,IAArD;AACD;;AACDW,aAAW;AACT;;AACA,QAAI,CAAC,KAAKH,gBAAL,CAAsBtnB,KAAtB,CAA4BqjB,cAAjC,EAAiD;AAC/C,WAAKrE,UAAL,CAAgB5a,cAAhB,CAA+B,6BAA/B,EAA8D,MAA9D,EAAsE,MAAtE,EAA8E,cAA9E;AACA;AACD;;AACD,QAAI,CAAC,KAAKkjB,gBAAL,CAAsBtnB,KAAtB,CAA4BsjB,YAAjC,EAA+C;AAC7C,WAAKtE,UAAL,CAAgB5a,cAAhB,CAA+B,kCAA/B,EAAmE,MAAnE,EAA2E,MAA3E,EAAmF,cAAnF;AACA;AACD;;AACD,QAAI,KAAKkjB,gBAAL,CAAsBtnB,KAAtB,CAA4BujB,GAA5B,IAAmC,IAAvC,EAA6C;AAC3C,WAAKvE,UAAL,CAAgB5a,cAAhB,CAA+B,mBAA/B,EAAoD,MAApD,EAA4D,MAA5D,EAAoE,cAApE;AACA;AACD;;AACD,QAAI,CAAC,KAAKkjB,gBAAL,CAAsBtnB,KAAtB,CAA4BwjB,SAAjC,EAA4C;AAC1C,WAAKxE,UAAL,CAAgB5a,cAAhB,CAA+B,yBAA/B,EAA0D,MAA1D,EAAkE,MAAlE,EAA0E,cAA1E;AACA;AACD;;AACD,QAAI,KAAKkjB,gBAAL,CAAsBtnB,KAAtB,CAA4BwjB,SAA5B,GAAwC,CAA5C,EAA+C;AAC7C,WAAKxE,UAAL,CAAgB5a,cAAhB,CAA+B,+BAA/B,EAAgE,MAAhE,EAAwE,MAAxE,EAAgF,cAAhF;AACA;AACD;;AACD,QAAI,KAAKkjB,gBAAL,CAAsBtnB,KAAtB,CAA4BumB,yBAA5B,IAAyD,IAA7D,EAAmE;AACjE,WAAKvH,UAAL,CAAgB5a,cAAhB,CAA+B,6BAA/B,EAA8D,MAA9D,EAAsE,MAAtE,EAA8E,cAA9E;AACA;AACD;;AACD,SAAK8iB,QAAL,CAAc,KAAKI,gBAAL,CAAsBtnB,KAAtB,CAA4BwjB,SAA1C;;AACA,QAAI,KAAK8D,gBAAL,CAAsBriB,KAA1B,EAAiC;AAC/B,WAAKyiB,gBAAL,CAAsBpnB,EAAtB,GAA2B,KAAKjD,IAAL,CAAUiD,EAArC,EACE,KAAKonB,gBAAL,CAAsBrE,cAAtB,GAAuC,KAAKiE,gBAAL,CAAsB/jB,QAAtB,CAA+B,gBAA/B,EAAiDvD,KAD1F,EAEE,KAAK0nB,gBAAL,CAAsBpE,YAAtB,GAAqC,KAAKgE,gBAAL,CAAsB/jB,QAAtB,CAA+B,cAA/B,EAA+CvD,KAFtF,EAGE,KAAK0nB,gBAAL,CAAsBnE,GAAtB,GAA4B,KAAK+D,gBAAL,CAAsB/jB,QAAtB,CAA+B,KAA/B,EAAsCvD,KAHpE,EAIE,KAAK0nB,gBAAL,CAAsBpI,cAAtB,GAAuC,KAAKgI,gBAAL,CAAsB/jB,QAAtB,CAA+B,2BAA/B,EAA4DvD,KAJrG,EAKE,KAAK0nB,gBAAL,CAAsBze,QAAtB,GAAiC,KAAKqe,gBAAL,CAAsB/jB,QAAtB,CAA+B,QAA/B,EAAyCvD,KAL5E,EAME,KAAK0nB,gBAAL,CAAsBlE,SAAtB,GAAkC,KAAK8D,gBAAL,CAAsB/jB,QAAtB,CAA+B,WAA/B,EAA4CvD,KANhF,EAOE,KAAK0nB,gBAAL,CAAsBld,SAAtB,GAAkClF,MAAM,CAACP,cAAc,CAACC,OAAf,CAAuB,QAAvB,CAAD,CAP1C,EAQE,KAAK0iB,gBAAL,CAAsBjd,WAAtB,GAAoC,IAAIF,IAAJ,EARtC;AASA,WAAKmd,gBAAL,CAAsBjpB,SAAtB,GAAkC6G,MAAM,CAACP,cAAc,CAACC,OAAf,CAAuB,QAAvB,CAAD,CAAxC,EACE,KAAK0iB,gBAAL,CAAsBpd,WAAtB,GAAoC,IAAIC,IAAJ,EADtC;AAGA,WAAKyU,UAAL,CAAgB2I,cAAhB,CAA+B,KAAKD,gBAApC,EAAsDlnB,SAAtD,CAAiEsf,GAAD,IAAa;AAC3E,aAAKviB,SAAL,CAAekH,IAAf,CAAoB,+BAApB,EAAqD,OAArD,EAA8D;AAC5DE,4BAAkB,EAAE,KAAKA,kBADmC;AAE5DD,0BAAgB,EAAE,KAAKA,gBAFqC;AAG5DH,kBAAQ,EAAE,IAAI;AAH8C,SAA9D;;AAKA,aAAK3G,SAAL,CAAeuG,KAAf,CAAqB;AAAEzB,eAAK,EAAE,IAAT;AAAerF,cAAI,EAAEyiB;AAArB,SAArB;AAGD,OATD;AAUD;AAEF;;AACDoH,UAAQ,CAACG,GAAD,EAAW;;;AAEjB,QAAG,UAAG,CAAClG,QAAJ,GAAejH,KAAf,CAAqB,GAArB,EAA0B,CAA1B,OAA4B,IAA5B,IAA4BvI,aAA5B,GAA4B,MAA5B,GAA4BA,GAAE9Q,MAA9B,IAAuC,CAA1C,EACA;AACE,WAAKme,UAAL,CAAgB5a,cAAhB,CAA+B,8DAA/B,EAA+F,MAA/F,EAAuG,MAAvG,EAA+G,cAA/G;AACA;AACD;AAEF;;AA5H4B;;;mBAAlB8hB,oBAAkBjpB,+DAAAA,CAaTP,qEAbS,GAaMO,+DAAAA,CAAAA,qEAAAA,GAAAA,+DAAAA,CAAAA,wDAAAA,GAAAA,+DAAAA,CAAAA,kEAAAA,GAAAA,+DAAAA,CAAAA,+DAAAA,GAAAA,+DAAAA,CAAAA,mEAAAA;AAAA;;;QAbxBipB;AAAkBpgB;AAAAqH;AAAAC;AAAAC;AAAAC;AAAA;AG9rB7BrQ,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAA4CA,MAAAA,oDAAAA;AAAsBA,MAAAA,0DAAAA;AACpEA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAUA,MAAAA,wDAAAA;AAAA,eAAS+I,WAAT;AAAgB,OAAhB;AAC2C/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AAC5DA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAEEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAcA,MAAAA,0DAAAA;AACzBA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAmBA,MAAAA,0DAAAA;AAC9BA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAGA,MAAAA,0DAAAA;AACdA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AAEFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAAaA,MAAAA,0DAAAA;AACxBA,MAAAA,4DAAAA;AACEA,MAAAA,wDAAAA;AAEFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACAA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAMFA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAWA,MAAAA,oDAAAA;AAASA,MAAAA,0DAAAA;AACpBA,MAAAA,uDAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;AAIAA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AAQEA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAwDA,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AAChEA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AAEFA,MAAAA,0DAAAA;AAEAA,MAAAA,uDAAAA;AAAIA,MAAAA,uDAAAA;AAEJA,MAAAA,4DAAAA;AACEA,MAAAA,uDAAAA;AAGAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAsCA,MAAAA,wDAAAA;AAAA,eAAS+I,kBAAT;AAAuB,OAAvB;AAAyB/I,MAAAA,oDAAAA;AAAKA,MAAAA,0DAAAA;AACtEA,MAAAA,0DAAAA;AACAA,MAAAA,4DAAAA;AACEA,MAAAA,4DAAAA;AAAmDA,MAAAA,wDAAAA;AAAA,eAAS+I,iBAAT;AAAsB,OAAtB;AAAwB/I,MAAAA,oDAAAA;AAAMA,MAAAA,0DAAAA;AACnFA,MAAAA,0DAAAA;AACAA,MAAAA,uDAAAA;AAGFA,MAAAA,0DAAAA;AACFA,MAAAA,0DAAAA;;;;AAxFMA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AAwBsEA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AASgCA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;AACtBA,MAAAA,uDAAAA;AAAAA,MAAAA,wDAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5CF;AACvB;AACF;AAGsB;AAW5C;AACR;;;;;;;;;;;;;;;;;;;;;;;;ICCrB,yEAAgE;IAAA,qEAAU;IAAA,4DAAK;;;IAC/E,yEAA+G;IAAC,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAGrI,yEAAgE;IAAA,4EAAiB;IAAA,4DAAK;;;IACtF,yEAAgH;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAWvI,yEAAgE;IAAA,4EAAiB;IAAA,4DAAK;;;IACtF,yEAA+D;IAAC,uDAAiB;IAAA,4DAAK;;;IAAtB,0DAAiB;IAAjB,4FAAiB;;;IAGjF,yEAAgE;IAAA,+EAAoB;IAAA,4DAAK;;;IACzF,yEAA+D;IAAC,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,8FAAmB;;;IAGnF,yEAAgE;IAAA,uEAAY;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,6FAAkB;;;IAIlF,yEAAgE;IAAA,oEAAS;IAAA,4DAAK;;;IAC9E,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAGpF,yEAAgE;IAAA,yEAAc;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGzF,yEAAgE;IAAA,uEAAY;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGvF,yEAAgE;IAAA,qEAAU;IAAA,4DAAK;;;IAC/E,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAGtF,yEAAgE;IAAA,uEAAY;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAGxF,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;IAC5E,yEAA+D;IAAC,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,6FAAkB;;;IAIlF,yEAA4F;IAAA,kEAAO;IAAA,4DAAK;;;;;IACxG,yEAA+D;IAC7D,wEAAO;IACL,qEAAI;IACF,qEAAI;IACF,6EAC+E;IAD5B,wZAAiC;IAElF,2EAAU;IAAA,qEAAU;IAAA,4DAAW;IACjC,4DAAS;IACX,4DAAK;IACL,qEAAI;IACF,6EAC+E;IADpB,8YAAuB;IAEhF,2EAAU;IAAA,sEAAU;IAAA,4DAAW;IACjC,4DAAS;IACX,4DAAK;IACL,sEAAI;IACF,8EAE4B;IAD1B,gaAAwC;IAExC,gFAAwC;IAAA,iEAAK;IAAA,4DAAW;IAC1D,4DAAS;IACX,4DAAK;IACP,4DAAK;IACP,4DAAQ;IACV,4DAAK;;;;IARgD,2DAAuD;IAAvD,kLAAuD;IAGxF,0DAA6B;IAA7B,kGAA6B;;;IAOnD,oEAAsF;;;IACtF,oEAA0F;;;IAe1F,0EAA8E;IAE5E,0EAAyG;IACvG,uEAAM;IAAA,uDAAwB;IAAA,4DAAO;IACvC,4DAAM;IACR,4DAAM;;;IAHC,0DAAmC;IAAnC,yGAAmC;IAChC,0DAAwB;IAAxB,yFAAwB;;;IATtC,sEAAgD;IAC9C,yEAAwD;IACtD,iFAAqB;IAAA,4DAAK;IAC5B,sEAAK;IAGH,sIAKM;IAER,4DAAM;IAEN,iEAGM;IAGR,4DAAM;;;IAfuB,0DAA2B;IAA3B,qGAA2B;;;;IAgBxD,0EAAoF;IAAA,qEAAI;IAAA,yGAA8C;IAAA,4DAAK;IACzI,sFAA+C;IAC7C,uFACsC;IAApC,yWAAmC;IAAC,+DAAI;IAAA,4DAAmB;IAAC,kEAAa;IAC3E,uFACsC;IAApC,yWAAmC;IAAE,8DAAE;IAAA,4DAAmB;IAC9D,4DAAkB;IACpB,4DAAM;;;IACN,0EAA6F;IAC3F,8GACF;IAAA,4DAAM;;;IAEJ,yEAA4D;IAC1D,qFAAgE;IAC9D,4EAAW;IAAA,kEAAO;IAAA,4DAAY;IAC9B,0EACkE;IACpE,4DAAiB;IACnB,4DAAM;;;IAHQ,0DAAwB;IAAxB,yFAAwB;;;;IAMlC,6EAC+D;IAArB,4UAAoB;IAAC,iEAAM;IAAA,4DAAS;;;;;IChI9E,yEAAgE;IAAA,6EAAkB;IAAA,4DAAK;;;IACvF,yEAAgH;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAGvI,oEAAqE;;;IACrE,oEAA0F;;;IAG1F,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIzF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGvF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGzF,yEAAgE;IAAC,gEAAI;IAAA,4DAAK;;;IAC1E,yEAA+D;IAAC,uDAAgB;IAAA,4DAAK;;;IAArB,0DAAgB;IAAhB,2FAAgB;;;IAGhF,yEAAgE;IAAC,qEAAS;IAAA,4DAAK;;;IAC/E,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAIpF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAItF,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAIzF,oEAAsF;;;IACtF,oEAA0F;;;IAExF,yEAA2D;IAAA,2EAAgB;IAAA,4DAAK;;;IAChF,yEAA2D;IAAA,sFAA2B;IAAA,4DAAK;;;IAF7F,yEAAkC;IAChC,gIAAgF;IAChF,gIAA2F;IAC7F,4DAAK;;;IAFgC,0DAAsB;IAAtB,2FAAsB;IACtB,0DAAsB;IAAtB,2FAAsB;;;IAgBzD,yEAA0F;IAAA,6EAAkB;IAAA,4DAAK;;;IACjH,yEAA+G;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGvI,oEAAqE;;;IACrE,oEAA0F;;;IAG1F,yEAA0F;IAAC,yEAAa;IAAA,4DAAK;;;IAC7G,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIzF,yEAA0F;IAAC,uEAAW;IAAA,4DAAK;;;IAC3G,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGvF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGzF,yEAA0F;IAAC,gEAAI;IAAA,4DAAK;;;IACpG,yEAA+D;IAAC,uDAAgB;IAAA,4DAAK;;;IAArB,0DAAgB;IAAhB,2FAAgB;;;IAGhF,yEAA0F;IAAC,qEAAS;IAAA,4DAAK;;;IACzG,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAIpF,yEAA0F;IAAC,uEAAW;IAAA,4DAAK;;;IAC3G,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAItF,yEAA0F;IAAC,wEAAY;IAAA,4DAAK;;;IAC5G,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAIzF,oEAAsF;;;IACtF,oEAA0F;;;IAExF,yEAA2D;IAAA,2EAAgB;IAAA,4DAAK;;;IAChF,yEAA2D;IAAA,sFAA2B;IAAA,4DAAK;;;IAF7F,yEAAkC;IAChC,gIAAgF;IAChF,gIAA2F;IAC7F,4DAAK;;;IAFgC,0DAAsB;IAAtB,2FAAsB;IACtB,0DAAsB;IAAtB,2FAAsB;;;;ICjHjC,2EAAgB;;;IAoClC,yEAAgE;IAAA,mEAAQ;IAAA,4DAAK;;;;IAC7E,yEAA+D;IAAC,uDAC9D;IAAA,+EAAqF;IAAhC,sYAA+B;IAAC,kEAAO;IAAA,4DAAW;IAExG,4DAAK;;;IAH0D,0DAC9D;IAD8D,+FAC9D;;;IAIJ,oEAAuG;;;IACvG,oEAA4G;;;IC5BhH,yEAA6F;IAAC,qEAAS;IAAA,4DAAK;;;IAC5G,yEAA8J;IAC5J,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,kGACF;;;IAMA,yEAA8F;IAAC,2EAAe;IAAA,4DAAK;;;;IAavG,+EAAuM;IAAtD,ieAAqD;IAAC,kEAAO;IAAA,4DAAW;;;IAAhL,0HAA2C;;;IAFtF,qEAAyD;IACvD,2EAAoF;IAAC,uDAAkC;IAAA,4DAAO;IAC9H,kJAAyN;IAC3N,4DAAK;;;IAFkD,0DAA6B;IAA7B,mGAA6B;IAAG,0DAAkC;IAAlC,6GAAkC;IAC5G,0DAA4B;IAA5B,6FAA4B;;;IAR/C,qEAA0D;IACxD,uDACA;IAAA,gEAAI;IACJ,2EAAqD;IAAE,uDAAiC;IAAA,4DAAO;IAAA,gEAAI;IACnG,2EAAqD;IAAC,uDAAoC;IAAA,4DAAO;IACjG,qEAAK;IACD,iIAGK;IACT,4DAAK;IACP,4DAAK;;;IAVH,0DACA;IADA,2GACA;IACuD,0DAAiC;IAAjC,4GAAiC;IAClC,0DAAoC;IAApC,+GAAoC;IAE7D,0DAA4B;IAA5B,kGAA4B;;;IAV/D,yEAAiK;IAE/J,qEAAO;IACL,qEAAK;IACL,6HAWK;IACL,2EAAuE;IAAC,uDAA2B;IAAA,4DAAO;IAAA,gEAAI;IAC9G,2EAAuE;IAAC,uDAA6B;IAAA,4DAAO;IAE9G,4DAAK;IACL,4DAAK;IAEP,4DAAK;;;IAlB6B,0DAAwB;IAAxB,8FAAwB;IAYkB,0DAA2B;IAA3B,sGAA2B;IAC3B,0DAA6B;IAA7B,wGAA6B;;;IAQzG,yEAA6F;IAAC,4EAAgB;IAAA,4DAAK;;;;IAYvG,+EAAuM;IAAtD,ieAAqD;IAAC,kEAAO;IAAA,4DAAW;;;IAA/K,0HAA2C;;;IAFvF,qEAA4D;IAC1D,2EAAoF;IAAA,uDAAkC;IAAA,4DAAO;IAC7H,kJAAyN;IAC3N,4DAAK;;;IAFkD,0DAA6B;IAA7B,mGAA6B;IAAE,0DAAkC;IAAlC,mGAAkC;IAC3G,0DAA4B;IAA5B,6FAA4B;;;IAR/C,qEAA0D;IACxD,uDACA;IAAA,gEAAI;IACJ,2EAAqD;IAAC,uDAAmC;IAAA,4DAAO;IAAA,gEAAI;IACpG,2EAAqD;IAAC,uDAAoC;IAAA,4DAAO;IACjG,qEAAI;IACA,iIAGK;IACT,4DAAK;IACP,4DAAK;;;IAVH,0DACA;IADA,+GACA;IACsD,0DAAmC;IAAnC,8GAAmC;IACnC,0DAAoC;IAApC,+GAAoC;IAE7D,0DAA+B;IAA/B,qGAA+B;;;IATlE,yEAA+J;IAC7J,qEAAI;IACF,qEAAI;IACJ,6HAWK;IACP,4DAAK;IACL,4DAAK;IAGP,4DAAK;;;IAhB6B,0DAAwB;IAAxB,8FAAwB;;;IA4B1D,yEAA8G;IAAC,mEAAQ;IAAA,4DAAK;;;IAC5H,yEAA8G;IAAC,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,qGAA2B;;;IAG1I,yEAA8G;IAAC,mEAAQ;IAAA,4DAAK;;;;IAE1H,wEACyE;IAAzE,8aAAiC;IAAwC,kEAAO;IAAA,4DAAI;;;;IADwB,wLAA6D;;;IAD3K,yEAA6G;IAC3G,0HACoF;IAEtF,4DAAK;;;;IAHE,0DAAqG;IAArG,6KAAqG;;;IAO9G,oEAAsF;;;IACtF,oEAA2F;;;;;ICrGjG,sEAAyB;IACvB,4EAAmJ;IAA7F,8UAAiC;IAAvF,4DAAmJ;IAEnJ,gEAAI;IACJ,2EAAiD;IAAA,sFAA2B;IAAA,4DAAO;IACnF,gEAAI;IAAA,gEAAI;IACV,4DAAM;;;;IAEJ,6EACe;IADkD,wUAAuB;IACzE,iEAAM;IAAA,4DAAS;;;IAFhC,0EAAsF;IACpF,8HAC8B;IAChC,4DAAM;;;IAFyC,0DAAgB;IAAhB,mFAAgB;;;IAOzD,yEAAgE;IAAA,4EAAiB;IAAA,4DAAK;;;IACtF,yEAA+H;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAGtJ,oEAAqE;;;IACrE,oEAA0F;;;IAG1F,yEAAgE;IAAA,mEAAQ;IAAA,4DAAK;;;;IAG3E,+EAA0L;IAAhL,wbAAmC;IAA6I,gEAAK;IAAA,4DAAW;;;;IAF5M,yEAA+D;IAAC,uDAC9D;IAAA,+EAAqF;IAAhC,2YAA+B;IAAC,kEAAO;IAAA,4DAAW;IACvG,kIAA0M;IAC3M,4DAAK;;;IAH0D,0DAC9D;IAD8D,gGAC9D;IAC+C,0DAAuC;IAAvC,yGAAuC;;;IAG1F,oEAAgG;;;IAChG,oEAAqG;;;IAEvG,yEAAkC;IAChC,yEAAiC;IAAA,2EAAsD;IACrF,qFACF;IAAA,4DAAO;IAAA,4DAAK;IACd,4DAAK;;ALiEA,MAAM,kCAAkC;IA6C7C,YAAoB,WAAwB,EAAS,MAAiB,EAAU,MAA0B,EAEhG,QAA2B,EAAU,KAAqB,EAAU,MAAc;QAFxE,gBAAW,GAAX,WAAW,CAAa;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,WAAM,GAAN,MAAM,CAAoB;QAEhG,aAAQ,GAAR,QAAQ,CAAmB;QAAU,UAAK,GAAL,KAAK,CAAgB;QAAU,WAAM,GAAN,MAAM,CAAQ;QArC5F,mBAAc,GAAW,CAAC,CAAC;QAC3B,qBAAgB,GAAa,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QAK7K,SAAI,GAAG,EAAE,CAAC;QAEV,qBAAgB,GAAW,EAAE,CAAC;QAE9B,8DAA8D;QAC9D,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QAWtD,qBAAgB,GAAqB,EAAE,CAAC;QACxC,eAAU,GAAY,KAAK,CAAC;QAC5B,sBAAiB,GAAa,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAC/D,6BAAwB,GAAU,EAAE,CAAC;QACrC,eAAU,GAAG,IAAI,uEAAkB,CAAM,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACxE,qBAAgB,GAAW,GAAG,CAAC;IAU3B,CAAC;IATL,eAAe;QACb,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACrC,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE9B,CAAC,CAAC,CAAC;IACL,CAAC;IAMD,QAAQ;QACN,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACrC,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACvC,OAAO,EAAE,CAAC,IAAI,CAAC;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,gDAAgD;IAClD,CAAC;IACD,UAAU;QACR,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;;YACpG,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,8DAA8D;gBAC9D,UAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,0CAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;aAChD;iBACI;gBACH,UAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,0CAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;aAChD;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,6BAA6B;QAC3B,wEAAwE;QACxE,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC9G,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;YAErC,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,GAAG,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YAC7F,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,wBAAwB,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,qBAAqB;QACnB,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YAC/G,IAAI,CAAC,wBAAwB,GAAG,IAAI,uEAAkB,CAAuB,IAAI,CAAC,CAAC;YACnF,IAAI,CAAC,wBAAwB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC;YACjG,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,OAAO,EAAE;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aAAE;iBAAM;gBAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aAAE;YAC1E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACxE,IAAI,CAAC,wBAAwB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAC3D,CAAC;IACD,SAAS;QACP,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,cAAc,CAAC,KAAY,EAAE,OAAO;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;QAC/C,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACzC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,IAAI,MAAM,EAAE;gBACjE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,8BAA8B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBAC7F,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;gBACjB,OAAO;aACR;iBAAM;gBACL,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC7B,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;gBACnF,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClC;SACF;IACH,CAAC;IACD,gBAAgB,CAAC,KAAU;QACzB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC;IACtC,CAAC;IACD,cAAc,CAAC,IAAI;QACjB,QAAQ,CAAC;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACxD,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YAChD,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAqD,EAAE,EAAE;YAC1F,IAAI,MAAM,EAAE;gBACV,QAAQ,CAAC;gBACT,MAAM,IAAI,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC;gBAC/F,IAAI,IAAI,EAAE;oBACR,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACtC,IAAI,IAAI,CAAC,QAAQ,EAAE;4BACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;yBACxC;wBAED,IAAI,IAAI,CAAC,aAAa,EAAE;4BACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;yBAClD;qBACF;iBACF;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,cAAc,CAAC,OAAO;QACpB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QACxC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,IAAI,OAAO,CAAC,QAAQ,IAAI,SAAS,EAAE;YAC3D,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;SAC5B;IACH,CAAC;IACD,gBAAgB,CAAC,OAAO;QACtB,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;QAC7C,OAAO,CAAC,QAAQ,GAAG,EAAE;YACnB,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC;QAC7B,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,QAAQ;QACN,IAAI,OAAO,CAAC,mCAAmC,CAAC,EAAE;YAChD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;gBAC3G,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;gBAChD,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe;gBAC/C,MAAM,sBAAsB,GAAE,IAAI,CAAC,CAAC,CAAC,CAAC,sBAAsB;gBAE5D,IAAI,kBAAkB,GAAC,EAAE,CAAC;gBAE1B,IAAG,eAAe,IAAE,EAAE,IAAI,sBAAsB,IAAE,EAAE,EACpD;oBACE,kBAAkB,GAAC,eAAe,GAAC,GAAG,GAAC,sBAAsB;iBAC9D;qBACI,IAAG,eAAe,IAAE,EAAE,EACzB;oBACE,kBAAkB,GAAC,eAAe;iBACnC;qBACI,IAAI,sBAAsB,IAAE,EAAE,EACjC;oBACE,kBAAkB,GAAC,sBAAsB;iBAC1C;gBAEL,IAAI,CAAC,eAAe,EAAE;oBACpB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,mDAAmD,GAAG,kBAAkB,EAAG,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;oBACxI,OAAO;iBACR;qBACI;oBACH,IAAI,IAAI,CAAC,gBAAgB,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;wBAC1F,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,4CAA4C,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;wBAC3G,OAAO;qBACR;oBACD,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;oBAC3B,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;;wBACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAC7C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;gCACzB,EAAE,EAAE,UAAI,CAAC,YAAY,CAAC,CAAC,CAAC,mCAAI,CAAC;gCAC7B,0BAA0B,EAAE,IAAI,CAAC,QAAQ;gCACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gCAC1B,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gCACpC,YAAY,EAAE,IAAI,IAAI,EAAE;gCACxB,IAAI,EAAE,EAAE;gCACR,QAAQ,EAAE,IAAI;gCACd,UAAU,EAAE,CAAC;gCACb,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gCAC1G,QAAQ,EAAE,IAAI;gCACd,KAAK,EAAE,KAAK;gCACZ,6BAA6B,EAAE,CAAC;gCAChC,8BAA8B,EAAE,CAAC;gCACjC,qBAAqB,EAAE,EAAE;6BAC1B,CAAC;yBACH;oBACH,CAAC,CAAC,CAAC;oBACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAEnC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;wBAChF,IAAI,IAAI,IAAI,EAAE,EAAE;4BACd,qCAAqC;4BACrC,iFAAiF;4BACjF,oCAAoC;4BACpC,gCAAgC;4BAChC,UAAU;4BACV,IAAI;4BACJ,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;4BACvF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;yBACzB;wBACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC7B,6BAA6B;oBAC/B,CAAC,CAAC,CAAC;iBACJ;YAGH,CAAC,CAAC,CAAC;SACJ;IAMH,CAAC;IACD;;UAEM;IAEN,IAAI,CAAC,OAAY;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;YAElE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;YACzF,MAAM,EAAE,KAAK;YAChB,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAG/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB,CAAC,IAAS;QAC7B,QAAQ,CAAC;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YAC9D,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAC9L,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IAEL,CAAC;IAGD,aAAa;IAKb,CAAC;IACD,OAAO;QACL,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IACD,gBAAgB,CAAC,GAAQ;QACvB,IAAI,GAAG,CAAC,MAAM,IAAI,WAAW,IAAI,GAAG,CAAC,eAAe,IAAI,IAAI,EAAE;YAC5D,OAAO,IAAI,CAAC;SACb;;YAEC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,QAAQ,CAAC,GAAQ;QACf,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;;YAEC,OAAO,OAAO,CAAC;IACnB,CAAC;;oHAjTU,kCAAkC;gIAAlC,kCAAkC;kEAmBlC,sEAAY;;;;;QCpIzB,8EAA8B;QAC5B,yEAAiB;QACf,yEAA2C;QAEzC,wEAA8E;QAC5E,2EAAe;QAAA,4DAAK;QACxB,4DAAM;QACN,yEAAwC;QACtC,4EACwB;QAAtB,0JAAS,eAAW,IAAC;QAAC,2EAAU;QAAA,qEAAU;QAAA,4DAAW;QACrD,uEAAM;QAAA,gEAAI;QAAA,4DAAO;QAAA,4DAAS;QAC9B,4DAAM;QAER,4DAAM;QAEN,0EAA6B;QAC3B,4EAC6C;QAC3C,4EAA2D;QACzD,8HAA+E;QAC/E,+HAA0I;QAC5I,qEAAe;QACf,6EAAkE;QAChE,8HAAsF;QACtF,+HAA4I;QAC9I,qEAAe;QASf,6EAAkC;QAChC,8HAAsF;QACtF,+HAAsF;QACxF,qEAAe;QACf,6EAAoC;QAClC,8HAAyF;QACzF,+HAAwF;QAC1F,qEAAe;QACf,6EAAmC;QACjC,8HAAiF;QACjF,+HAAuF;QACzF,qEAAe;QAEf,6EAAqC;QACnC,8HAA8E;QAC9E,+HAAyF;QAC3F,qEAAe;QACf,6EAA0C;QACxC,8HAAmF;QACnF,+HAA8F;QAChG,qEAAe;QACf,6EAAwC;QACtC,8HAAiF;QACjF,+HAA4F;QAC9F,qEAAe;QACf,6EAAuC;QACrC,8HAA+E;QAC/E,+HAA2F;QAC7F,qEAAe;QACf,6EAAyC;QACvC,8HAAiF;QACjF,+HAA6F;QAC/F,qEAAe;QACf,6EAAoC;QAClC,8HAA4E;QAC5E,+HAAuF;QACzF,qEAAe;QAEf,6EAA0C;QACxC,+HAAwG;QACxG,gIAwBK;QACP,qEAAe;QACf,+HAAsF;QACtF,+HAA0F;QAG5F,4DAAQ;QACV,4DAAM;QACN,uEAAK;QACH,gFACgE;QAClE,4DAAM;QACN,iIAqBM;QACN,iIAOM;QACN,iIAEM;QACN,4EAAuD;QACrD,iIAMM;QACN,2EAAwB;QACtB,2EAAsD;QACpD,uIAC8E;QAChF,4DAAM;QACR,4DAAM;QACR,4DAAO;QAGT,4DAAW;;QAhJU,2DAAuC;QAAvC,oGAAuC;QAoFR,2DAAiC;QAAjC,iGAAiC;QACtB,0DAA0B;QAA1B,kGAA0B;QAMvC,0DAAoC;QAApC,mJAAoC;QAG9E,0DAAwC;QAAxC,yJAAwC;QAsBJ,0DAAwC;QAAxC,yGAAwC;QAQ5E,0DAAmE;QAAnE,wIAAmE;QAGnE,0DAAwB;QAAxB,qFAAwB;QACV,0DAAwC;QAAxC,yGAAwC;QAS7C,0DAAwC;QAAxC,yGAAwC;;AD8QzD,oIAAoI;AAQ7H,MAAM,+BAA+B;IAY1C,YAA4C,IAAsB,EAAU,SAAsB,EAAU,MAA0B,EAAS,SAAwD,EAC7L,QAA2B;QADO,SAAI,GAAJ,IAAI,CAAkB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,WAAM,GAAN,MAAM,CAAoB;QAAS,cAAS,GAAT,SAAS,CAA+C;QAC7L,aAAQ,GAAR,QAAQ,CAAmB;QARrC,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QAKtD,qBAAgB,GAAa,CAAC,QAAQ,EAAC,cAAc,EAAC,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAC,cAAc,EAAE,SAAS,EAAE,cAAc,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAM/K,gBAAW,GAAW,EAAE,CAAC;QAEzB,gBAAW,GAAG,6BAA6B,CAAC;IANH,CAAC;IAO1C,QAAQ;QACN,IAAI,CAAC,oCAAoC,EAAE,CAAC;IAC9C,CAAC;IACD,oCAAoC;QAClC,IAAI,CAAC,QAAQ,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YACnI,IAAI,CAAC,sBAAsB,GAAG,IAAI,uEAAkB,CAA2B,IAAI,CAAC,CAAC;YACrF,IAAI,CAAC,uBAAuB,GAAG,IAAI,uEAAkB,CAA2B,IAAI,CAAC,CAAC;YACtF,IAAI,CAAC,sBAAsB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,QAAQ;IAER,CAAC;IACD,WAAW;QACT,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACtE,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzE,CAAC;IACD,QAAQ;QACN,IAAI,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE;YACvC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;gBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,OAAO,EAAE;oBAClE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;oBACvC,QAAQ,EAAE,CAAC,GAAG,IAAI;iBACnB,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aACxB;SACF;IACH,CAAC;IACD,aAAa;;QACX,IAAI,EAAE,GAAmB,uDAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7E,EAAE,CAAC,OAAO,CAAC,GAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,CAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,CAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,CAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,CAAC,CAAC;QACpI,MAAM,EAAE,GAAkB,iDAAmB,EAAE,CAAC;QAEhD,0DAA4B,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE/C,kBAAkB;QAClB,QAAQ,CAAC;QACT,IAAG,CAAC,WAAI,CAAC,IAAI,CAAC,SAAS,0CAAE,MAAM,KAAG,UAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,MAAM,EAAC,GAAC,GAAG;YACjE,4CAAc,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,GAAI,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC;;YAErI,4CAAc,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAE,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC;IAE3G,CAAC;;8GA3EU,+BAA+B,kEAYtB,qEAAe;6HAZxB,+BAA+B;kEAO/B,sEAAY;;;;;;;QEtbzB,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,iFAAsB;QAAA,4DAAK;QACzE,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,yJAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACN,yEAAiB;QACf,yEAAoB;QAClB,oFAAsC;QAEpC,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B,+EAAoE;QAApD,6JAAS,uBAAmB,IAAC;QAA7C,4DAAoE;QACtE,4DAAiB;QACnB,4DAAM;QACN,0EAAmB;QACjB,yEAA6G;QAA/E,mJAAS,iBAAa,IAAC;QACnD,4EAA6B;QAAA,yEAAa;QAAA,4DAAO;QACnD,4DAAI;QACN,4DAAM;QACR,4DAAM;QACN,2EAA6B;QAC3B,6EAC6C;QAC3C,6EAA8D;QAC5D,4HAAuF;QACvF,4HAA4I;QAC9I,qEAAe;QACf,6EAA0C;QACxC,4HAAqE;QACrE,4HAA0F;QAC5F,qEAAe;QACf,6EAA0C;QACxC,4HAAmF;QACnF,4HAA8F;QAEhG,qEAAe;QACf,6EAAwC;QACtC,4HAAiF;QACjF,4HAA4F;QAC9F,qEAAe;QACf,6EAA0C;QACxC,4HAAmF;QACnF,4HAA8F;QAChG,qEAAe;QACf,6EAAiC;QAC/B,4HAA0E;QAC1E,4HAAqF;QACvF,qEAAe;QACf,6EAAqC;QACnC,4HAA+E;QAC/E,4HAAyF;QAC3F,qEAAe;QAEf,6EAAuC;QACrC,4HAAiF;QACjF,4HAA2F;QAC7F,qEAAe;QAEf,6EAAwC;QACtC,4HAAkF;QAClF,4HAA4F;QAC9F,qEAAe;QAGf,4HAAsF;QACtF,4HAA0F;QAC1F,4HAGK;QAEP,4DAAQ;QACV,4DAAM;QACN,uEAAK;QACH,gFAAgK;QAClK,4DAAM;QAKN,+EAA2C;QACzC,iFACoD;QAClD,6EAA8E;QAC5E,4HAAiH;QACjH,4HAA4I;QAC9I,qEAAe;QACf,6EAA0C;QACxC,4HAAqE;QACrE,4HAA0F;QAC5F,qEAAe;QACf,6EAA0C;QACxC,4HAA6G;QAC7G,4HAA8F;QAEhG,qEAAe;QACf,6EAAwC;QACtC,4HAA2G;QAC3G,4HAA4F;QAC9F,qEAAe;QACf,6EAA0C;QACxC,4HAAmF;QACnF,4HAA8F;QAChG,qEAAe;QACf,6EAAiC;QAC/B,4HAAoG;QACpG,4HAAqF;QACvF,qEAAe;QACf,6EAAqC;QACnC,4HAAyG;QACzG,4HAAyF;QAC3F,qEAAe;QAEf,6EAAuC;QACrC,4HAA2G;QAC3G,4HAA2F;QAC7F,qEAAe;QAEf,6EAAwC;QACtC,4HAA4G;QAC5G,4HAA4F;QAC9F,qEAAe;QAGf,4HAAsF;QACtF,4HAA0F;QAC1F,4HAGK;QAEP,4DAAQ;QACV,4DAAM;QACR,4DAAM;;QAhHe,2DAAqC;QAArC,kGAAqC;QA2CN,2DAAiC;QAAjC,iGAAiC;QACtB,0DAA0B;QAA1B,kGAA0B;QASvC,0DAAoC;QAApC,kJAAoC;QAOjE,0DAAsC;QAAtC,mGAAsC;QA2CP,2DAAiC;QAAjC,iGAAiC;QACtB,0DAA0B;QAA1B,kGAA0B;;AFkYzF,oHAAoH;AAQ7G,MAAM,qBAAqB;IAiBhC,YAA4C,IAAuB,EAAU,SAAsB,EAAU,WAAwB,EAAS,SAAuD,EAAS,MAAiB,EAAU,WAA2B,EAAU,WAA2B;QAA7P,SAAI,GAAJ,IAAI,CAAmB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAS,cAAS,GAAT,SAAS,CAA8C;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,gBAAW,GAAX,WAAW,CAAgB;QAAU,gBAAW,GAAX,WAAW,CAAgB;QAZzS,cAAS,GAAa,EAAE,CAAC;QACzB,wBAAmB,GAAG,EAAE,CAAC;QACzB,oBAAe,GAAqB,EAAE,CAAC;QACvC,2BAAsB,GAAG,IAAI,uDAAW,EAAE,CAAC;QAC3C,4BAAuB,GAAG,IAAI,uDAAW,EAAE,CAAC;QAE5C,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QACtD,gBAAW,GAAgB;YACzB,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI;YACvF,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE;SAC7E;QAOD,kBAAa,GAAW,EAAE,CAAC;QAE3B,sCAAiC,GAAa,CAAC,UAAU,CAAC,CAAC;QAC3D,qBAAgB,GAAmB;YACjC,EAAE,EAAE,CAAC,EAAE,0BAA0B,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE;YAC/F,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI;SAC3L;QACD,yBAAoB,GAAqB,EAAE,CAAC;QAC5C,qBAAgB,GAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAblD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,yBAAyB;YACvD,yBAAyB;SAC1B,CAAC,CAAC;IACL,CAAC;IAeD,QAAQ;;QACN,QAAQ,CAAC;QACT,qCAAqC;QACrC,IAAI,CAAC,aAAa,GAAG,UAAI,CAAC,IAAI,0CAAE,WAAW,CAAC;QAC5C,IAAI,CAAC,sBAAsB,CAAC,UAAI,CAAC,IAAI,0CAAE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACjC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YACrB,iBAAiB,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;SAC/C,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IACD,4BAA4B,CAAC,KAAY;QACvC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;QAE/C,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACjC;IACH,CAAC;IACD,qBAAqB;QACnB,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YAC9E,QAAQ,CAAC;YACT,IAAI,CAAC,2BAA2B,GAAG,IAAI,uEAAkB,CAAc,IAAI,CAAC,CAAC;YAC7E,IAAI,CAAC,2BAA2B,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IACD,YAAY,CAAC,OAAO;QAClB,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC1D,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;YAC7D,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB,CAAC,MAAW;QAC7B,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;QAC/B,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACxC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,QAAQ,CAAC,KAAU,EAAE,IAAY;QAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,uCAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,gBAAgB,CAAC,GAAG;QAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC;QAC1B,IAAI,OAAO,CAAC,kCAAkC,CAAC,EAAE;YAC/C,IAAI,KAAK,GAAG,GAAG,CAAC,YAAY,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;gBAChE,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrB,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;oBACxE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;oBACxF,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;wBAC9E,IAAI,CAAC,2BAA2B,GAAG,IAAI,uEAAkB,CAAc,IAAI,CAAC,CAAC;wBAC7E,IAAI,CAAC,2BAA2B,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;oBAChD,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,YAAY,CAAC,SAAS,EAAE,EAAE;QAExB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YACvE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAE1B,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;QAEpC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YACnE,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,sBAAsB,CAAC,aAAqB,EAAE,EAAU;QACtD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YACrE,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,YAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,IAAG,CAAC,EAAE;gBAEvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;oBACjC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;oBACpB,uBAAuB,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,+DAAmB,CAAC;oBAClE,sBAAsB,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,+DAAmB,CAAC;oBACxE,OAAO,EAAE,CAAC,EAAC,KAAK,EAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAC,IAAI,EAAC,CAAC;oBACzE,iBAAiB,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;oBAC7B,cAAc,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC;iBACnC,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;aACjD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;YACtC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,iCAAiC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YAClG,OAAO;SACR;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK;gBAClD,IAAI,CAAC,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC;YACrF,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YAE1C,iBAAiB;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAElD,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,EAAE;oBAC7S,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,0CAA0C,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;oBAC5G,OAAO;iBACR;qBAAM;oBAEL,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;oBAC3E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC5D,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC9H,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC;oBACpC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACtC,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC;oBACrC,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC7B,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC;oBAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,EAAE,CAAC;oBAClC,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;oBAChD,IAAI,CAAC,gBAAgB,CAAC,8BAA8B,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;wBAC7B,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;wBAC5B,0BAA0B,EAAE,IAAI,CAAC,gBAAgB,CAAC,0BAA0B;wBAC5E,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ;wBACxC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa;wBAClD,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK;wBAClC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ;wBACxC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU;wBAC5C,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI;wBAChC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM;wBACpC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY;wBAChD,6BAA6B,EAAE,CAAC;wBAChC,8BAA8B,EAAE,IAAI,CAAC,gBAAgB,CAAC,8BAA8B;wBACpF,qBAAqB,EAAE,UAAU;qBAClC,CAAC,CAAC;iBACJ;aACF;YACD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC;gBACvD,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;oBAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAClD,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,8BAA8B,GAAG,GAAG,CAAC;qBACnE;oBAED,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;wBACxF,IAAI,IAAI,IAAI,EAAE,EAAE;4BACd,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;gCAC5H,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;4BAC1B,CAAC,CAAC,CAAC;4BACH,8FAA8F;4BAC9F,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;4BACtE,aAAa,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gCACrC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;4BACrB,CAAC,CAAC,CAAC;4BACH,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,+BAA+B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;4BAChG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;yBAC5B;wBACD,6BAA6B;oBAC/B,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;oBAClB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;gBAC5E,CAAC;aACF,CAAC,CAAC;SAEJ;IACH,CAAC;;0FAnOU,qBAAqB,kEAiBZ,qEAAe;mHAjBxB,qBAAqB;kEAiCrB,sEAAY;;;;;QG1iBzB,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,0EAAe;QAAA,4DAAK;QAClE,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,+IAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QAON,uFAAsB;QACpB,2EAAU;QAER,mIAAwD;QACxD,2EAAkD;QAAzB,8IAAU,iBAAa,IAAC;QAI/C,0EAAiB;QACf,0EAA2C;QACzC,qFAAgE;QAC9D,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC,gFAC4D;QACxD;QAAA,4DAAW;QACjB,4DAAiB;QACnB,4DAAM;QAGR,4DAAM;QACN,0EAAiB;QAEf,0EAA2C;QACzC,qFAAgE;QAC9D,6EAAW;QAAA,4EAAgB;QAAA,4DAAY;QACvC,2EAC8D;QAChE,4DAAiB;QACnB,4DAAM;QACR,4DAAM;QACN,0EAAiB;QACf,6EAAqI;QAA/E,qJAAU,wCAAoC,IAAC;QAArG,4DAAqI;QACrI,iEAAI;QACJ,4EAA+B;QAAA,uFAA2B;QAAA,4DAAO;QACjE,iEAAI;QAAA,iEAAI;QACV,4DAAM;QACN,2EAA6B;QAC3B,6EAAsJ;QACpJ,6EAAsC;QACpC,kHAA6E;QAC7E,kHAGM;QACR,qEAAe;QACf,kHAAuG;QACvG,kHAA4G;QAE9G,4DAAQ;QACR,uEAAK;QACH,gFAAgK;QAClK,4DAAM;QACR,4DAAM;QACN,2EAAwB;QACtB,2EAAuD;QACrD,8EACe;QAAA,kEAAM;QAAA,4DAAS;QAC9B,8EAA+E;QAApB,8IAAS,aAAS,IAAC;QAAC,iEAAK;QAAA,4DAAS;QAC/F,4DAAM;QACR,4DAAM;QACR,4DAAO;QAET,4DAAW;QACb,4DAAc;QAEhB,4DAAM;;QA7DM,2DAAkB;QAAlB,+EAAkB;QAiCH,2DAA0C;QAA1C,uGAA0C;QAQX,0DAAkD;QAAlD,kHAAkD;QACtC,0DAA2C;QAA3C,mHAA2C;QAIvD,0DAAoC;QAApC,kJAAoC;;AHsrBvF,MAAM,2BAA2B;IActC,YAA4C,IAAuB,EAAU,MAAc,EAAS,SAAoD,EAAU,WAA2B,EAAS,MAAiB,EAAU,WAA2B;QAAhN,SAAI,GAAJ,IAAI,CAAmB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAS,cAAS,GAAT,SAAS,CAA2C;QAAU,gBAAW,GAAX,WAAW,CAAgB;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,gBAAW,GAAX,WAAW,CAAgB;QAZ5P,cAAS,GAAW,CAAC,CAAC;QACtB,WAAM,GAAW,EAAE,CAAC;QACpB,eAAU,GAA8B,EAAE,CAAC;QAE3C,gBAAW,GAAgB;YACzB,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI;YACvF,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE;SAC7E;QAID,qBAAgB,GAAa,CAAC,YAAY,EAAC,eAAe,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAG,iBAAiB;IAG9H,CAAC;IACD,QAAQ;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7C,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YACnE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,cAAc,CAAC,IAAS;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACxD,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1Q,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,UAAU,EAAE,CAAC;QAEpB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,IAAY;QAGvB,IAAI,UAAU,GAAG,EAAE,CAAC;QAGpB,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,mFAAkF;QAI5H,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,cAAc,CAAC,IAAS;QACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,uEAAkB,CAAoB,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACpD,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,YAAY,CAAC,EAAE,EAAE,QAAQ;QACvB,QAAQ,CAAC;QACT,IAAI,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,QAAQ,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;YAC7D,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB,CAAC,MAAW;QAC7B,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;QAC/B,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACxC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,QAAQ,CAAC,KAAU,EAAE,IAAY;QAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,uCAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,sBAAsB,CAAC,GAAQ;QAC7B,IAAI,GAAG,CAAC,aAAa,IAAI,KAAK,IAAI,GAAG,CAAC,aAAa,IAAI,UAAU,EAAE;YACjE,OAAO,IAAI,CAAC;SACb;;YAEC,OAAO,KAAK,CAAC;IACjB,CAAC;;sGA7FU,2BAA2B,kEAclB,qEAAe;yHAdxB,2BAA2B;kEAU3B,sEAAY;;;;;QI/vBrB,yEAAiB;QACb,yEAA2C;QAEzC,wEAA+E;QAC7E,2EAAe;QAAA,4DAAK;QACxB,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,qJAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QAER,4DAAM;QAEZ,gEAAI;QAEA,yEAAiB;QACf,yEAAuE;QACrE,gFAAyC;QAAA,wDAAgC;QAAA,4DAAY;QACvF,4DAAM;QACN,0EAAuE;QACrE,gFAAyC;QAAA,wDAAwC;QAAA,4DAAY;QAC/F,4DAAM;QACR,4DAAM;QAEV,+EAA8B;QAC5B,0EAAqE;QACnE,4EAAuI;QAIrI,6EAAwC;QACtC,wHAA4G;QAC5G,wHAEK;QACP,qEAAe;QAIf,6EAA2C;QACzC,wHAAmH;QACnH,wHAsBK;QACP,qEAAe;QACf,6EAA6C;QAC3C,wHAAmH;QACnH,wHAmBK;QACP,qEAAe;QAUf,6EAAoC;QAClC,wHAA4H;QAC5H,wHAA+I;QACjJ,qEAAe;QACf,6EAA2C;QACzC,wHAA4H;QAC5H,wHAIK;QACP,qEAAe;QAGf,wHAAsF;QACtF,wHAA2F;QAG7F,4DAAQ;QACV,4DAAM;QACN,uEAAK;QACH,gFAAuJ;QAEzJ,4DAAM;QACR,4DAAW;;QAxGsC,2DAAgC;QAAhC,yGAAgC;QAGhC,0DAAwC;QAAxC,iHAAwC;QAMpE,0DAAgC;QAAhC,6FAAgC;QAqFD,2DAAiC;QAAjC,iGAAiC;QACrB,0DAA0B;QAA1B,kGAA0B;QAMxC,0DAA2B;QAA3B,kJAA2B;;AJ8vBtE,MAAM,qBAAqB;IAehC,YAA4C,IAA0B,EAAU,SAAsB,EAAU,WAAwB,EAAS,SAA8C,EAAS,MAAiB,EAC/M,QAA2B,EAAU,WAA2B;QAD9B,SAAI,GAAJ,IAAI,CAAsB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAS,cAAS,GAAT,SAAS,CAAqC;QAAS,WAAM,GAAN,MAAM,CAAW;QAC/M,aAAQ,GAAR,QAAQ,CAAmB;QAAU,gBAAW,GAAX,WAAW,CAAgB;QAf1E;;WAEG;QACH,eAAU,GAAY,KAAK,CAAC;QAI5B,qBAAgB,GAAW,EAAE,CAAC;QAC9B,kBAAa,GAAkD,EAAE,CAAC;QAElE,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QACtD,+BAA0B,GAAa,CAAC,YAAY,EAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACjF,qBAAgB,GAAqB,EAAE,CAAC;IAEsC,CAAC;IAG/E,QAAQ;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,WAAW;YACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YACnH,IAAI,CAAC,oBAAoB,GAAG,IAAI,uEAAkB,CAAc,IAAI,CAAC,CAAC;YACtE,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACzC,CAAC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,cAAc,CAAC,KAAY;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;QAE/C,IAAI,KAAK,CAAC,KAAK,EAAE;YAEf,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3C,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;YACrC,CAAC,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAEjC;IACH,CAAC;IACD,WAAW;QAET,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,+BAA+B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YAC7F,OAAO;SACR;aACI;YACH,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAElD,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,EAAE;oBACrU,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;iBACnB;aACF;YAED,IAAI,KAAK,GAAG,CAAC,EAAE;gBACb,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,0CAA0C,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBACzG,OAAO;aACR;iBACI;gBACH,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAClD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;wBACzB,EAAE,EAAE,CAAC;wBACL,0BAA0B,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;wBACxC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ;wBACxC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa;wBAClD,YAAY,EAAE,IAAI,IAAI,EAAE;wBACxB,IAAI,EAAE,EAAE;wBACR,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,CAAC;wBACb,MAAM,EAAE,EAAE;wBACV,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,KAAK;wBACZ,8BAA8B,EAAE,CAAC;wBACjC,6BAA6B,EAAE,CAAC;wBAChC,qBAAqB,EAAE,EAAE;qBAC1B,CAAC;iBACH;gBAED,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;oBAChF,IAAI,IAAI,IAAI,EAAE,EAAE;wBACd,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE;4BACjC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;gCACxF,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;gCAC3B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;gCAC3B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;4BAC1B,CAAC,CAAC,CAAC;yBACJ;wBACD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;wBAEtF,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;4BACnH,IAAI,CAAC,oBAAoB,GAAG,IAAI,uEAAkB,CAAc,IAAI,CAAC,CAAC;4BACtE,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;4BACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;4BACvC,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;4BACtE,aAAa,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gCACrC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;4BACrB,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC;qBACH;oBACD,6BAA6B;gBAC/B,CAAC,CAAC,CAAC;aACJ;SACF;IAEH,CAAC;IACD,gBAAgB,CAAC,GAAG;QAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC;QAC1B,IAAI,OAAO,CAAC,kCAAkC,CAAC,EAAE;YAC/C,IAAI,KAAK,GAAG,GAAG,CAAC,YAAY,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;gBAC7D,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;oBACjE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;oBACxF,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;wBACnH,IAAI,CAAC,oBAAoB,GAAG,IAAI,uEAAkB,CAAc,IAAI,CAAC,CAAC;wBACtE,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBACzC,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SAEJ;IACH,CAAC;IACD,YAAY,CAAC,OAAO;QAClB,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;YAC1D,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB,CAAC,MAAW;QAC7B,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;QAC/B,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACxC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,QAAQ,CAAC,KAAU,EAAE,IAAY;QAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,uCAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;0FA7JU,qBAAqB,kEAeZ,qEAAe;mHAfxB,qBAAqB;kEAMrB,sEAAY;;;;;QK33BzB,yEAAiB;QACf,yEAA2C;QAEzC,wEAAqG;QACnG,6EAAiB;QAAA,4DAAK;QAC1B,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,+IAAS,gBAAY,IAAC;QACqB,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QAER,4DAAM;QACN,iHAMM;QACN,iHAGM;QAEN,yEAA6B;QAC3B,4EAA+I;QAC7I,4EAAkF;QAChF,kHAAsF;QACtF,kHAA2J;QAC7J,qEAAe;QACf,6EAA0C;QACxC,kHAAqE;QACrE,kHAA0F;QAC5F,qEAAe;QACf,6EAAsC;QACpC,kHAA6E;QAC7E,kHAGM;QACR,qEAAe;QACf,kHAAgG;QAChG,kHAAqG;QAEvG,kHAIK;QACL,4DAAQ;QACR,uEAAK;QACH,gFAAgK;QAClK,4DAAM;QACR,4DAAM;;QAzCA,0DAAgB;QAAhB,gFAAgB;QAOkB,0DAA0B;QAA1B,uFAA0B;QAM/C,0DAAmC;QAAnC,gGAAmC;QAgBJ,2DAA2C;QAA3C,2GAA2C;QAC/B,0DAAoC;QAApC,4GAAoC;QAShD,0DAAoC;QAApC,kJAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClDF;AACvB;AACF;AAGU;AAEhC;AACR;;;;;;;;;;;;;;;;;;;;;;IC0CrB,yEAAgE;IAAA,4EAAiB;IAAA,4DAAK;;;IACtF,yEACmE;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAG1F,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGvF,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEACmE;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAG1F,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEACmE;IAAC,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,gGAAqB;;;IAGzF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAGtF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,mGAAwB;;;IAGxF,yEAAgE;IAAC,8EAAkB;IAAA,4DAAK;;;IACxF,yEAA+D;IAAC,uDAAiB;IAAA,4DAAK;;;IAAtB,0DAAiB;IAAjB,4FAAiB;;;IAGjF,yEAAgE;IAAC,gFAAoB;IAAA,4DAAK;;;IAC1F,yEAA+D;IAAC,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,8FAAmB;;;IAInF,yEAAgE;IAAC,mEAAO;IAAA,4DAAK;;;IAC7E,yEAA+D;IAAC,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,6FAAkB;;;IAIlF,yEAAgE;IAAC,sEAAU;IAAA,4DAAK;;;IAChF,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAIpF,yEAAgE;IAAC,2EAAe;IAAA,4DAAK;;;IACrF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIzF,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGvF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAKvF,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;IAC5E,yEAA+D;IAAC,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,8FAAmB;;;IAGnF,oEAAqE;;;IACrE,oEAA0F;;;IAI1F,yEAA4F;IAAA,kEAAO;IAAA,4DAAK;;;;;IACxG,yEAA+D;IAC7D,wEAAO;IACL,qEAAI;IACF,qEAAI;IAAA,6EAC6E;IADvB,2ZAAkC;IAExF,2EAAU;IAAA,8EAAmB;IAAA,4DAAW;IAC1C,4DAAS;IAAA,4DAAK;IAChB,qEAAI;IAAA,6EAE0B;IAD1B,iaAAwC;IAExC,+EAAwC;IAAA,iEAAK;IAAA,4DAAW;IAC1D,4DAAS;IAAA,4DAAK;IAClB,4DAAK;IACP,4DAAQ;IAEV,4DAAK;;;;IARkD,0DAAuD;IAAvD,kLAAuD;IAG1F,0DAA6B;IAA7B,kGAA6B;;;IASjD,yEAAgE;IAAC,kEAAM;IAAA,4DAAK;;;;IAC5E,yEAA8E;IAC5E,4EACmF;IAAjF,+aAA+C;IADjD,4DACmF;IACrF,4DAAK;;;IAFsD,0DAA+B;IAA/B,4FAA+B;;;IAK1F,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;;IACnF,yEAA+D;IAC7D,4EAC4E;IAA1E,yaAA4C;IAD9C,4DAC4E;IAC9E,4DAAK;;;IAFsD,0DAAqC;IAArC,kGAAqC;;;IAMlG,oEAAsF;;;IACtF,oEAA0F;;;IC5IjC,wEAAa;;;;IAFxE,2EAAgC;IAE9B,6IAAoF;IAEpF,0EAAkD;IAAzB,iUAAwB;IAE/C,oEAEM;IACN,yEAAiB;IACf,yEAA2C;IACzC,qFAA+F;IAC7F,gFAA0C;IAAA,0EAAe;IAAA,4DAAY;IACrE,0EACqF;IACvF,4DAAiB;IACnB,4DAAM;IACR,4DAAM;IACN,0EAAiB;IACf,6EAAuH;IAAjE,kVAAiC;IAAvF,4DAAuH;IACvH,iEAAI;IACJ,4EAA+B;IAAA,uFAA2B;IAAA,4DAAO;IACjE,iEAAI;IAAA,iEAAI;IACV,4DAAM;IAoBN,2EAAwB;IACtB,2EAAuD;IACrD,8EACe;IAAA,kEAAM;IAAA,4DAAS;IAC9B,8EAA+E;IAApB,8TAAmB;IAAC,iEAAK;IAAA,4DAAS;IAC/F,4DAAM;IACR,4DAAM;IACR,4DAAO;IACT,4DAAW;;;IA/CH,0DAAkB;IAAlB,kFAAkB;;;IAiDiC,2EAAgB;;;IAkEjE,yEAAgE;IAAA,mEAAQ;IAAA,4DAAK;;;;IAC7E,yEAA+D;IAAC,uDAC9D;IAAA,+EAAqF;IAAhC,yZAA+B;IAAC,kEAAO;IAAA,4DAAW;IAExG,4DAAK;;;IAH0D,0DAC9D;IAD8D,gGAC9D;;;IAIJ,oEAAuG;;;IACvG,oEAA4G;;;;;IA1EpH,2EAAkC;IAChC,8IAAuF;IACvF,0EAAwD;IAAzB,qUAAwB;IAErD,yEAAiB;IACf,qEAQM;IACN,qEAQM;IAGN,qEASM;IAER,4DAAM;IAEN,yEAAiB;IAEf,yEAA2C;IACzC,qFAA+F;IAC7F,iFAA0C;IAAA,0EAAc;IAAA,4DAAY;IACpE,2EACoF;IACtF,4DAAiB;IACnB,4DAAM;IACR,4DAAM;IACN,0EAAiB;IAEf,0EAA2C;IACzC,sFAA+F;IAC7F,iFAA0C;IAAA,4EAAgB;IAAA,4DAAY;IACtE,2EACoF;IACtF,4DAAiB;IACnB,4DAAM;IACR,4DAAM;IACN,0EAAiB;IACf,6EAA6H;IAAvE,4VAAuC;IAA7F,4DAA6H;IAC7H,iEAAI;IACJ,4EAA+B;IAAA,uFAA2B;IAAA,4DAAO;IACjE,iEAAI;IAAA,iEAAI;IACV,4DAAM;IACN,2EAA6B;IAC3B,6EAAsJ;IACpJ,6EAAsC;IACpC,+HAA6E;IAC7E,+HAGM;IACR,qEAAe;IACf,+HAAuG;IACvG,+HAA4G;IAE9G,4DAAQ;IACR,uEAAK;IACH,gFAAgK;IAClK,4DAAM;IACR,4DAAM;IACN,2EAAwB;IACtB,2EAAuD;IACrD,8EACe;IAAA,kEAAM;IAAA,4DAAS;IAC9B,8EAA+E;IAApB,kUAAmB;IAAC,iEAAK;IAAA,4DAAS;IAC/F,4DAAM;IACR,4DAAM;IACR,4DAAO;IACT,4DAAW;;;IAvFH,0DAAwB;IAAxB,wFAAwB;IA+DT,2DAA0C;IAA1C,0GAA0C;IAQX,0DAAkD;IAAlD,qHAAkD;IACtC,0DAA2C;IAA3C,sHAA2C;IAIvD,0DAAoC;IAApC,kJAAoC;;;;;ICzHxF,0EAAuK;IACrK,6EAA+E;IAA3B,mUAA0B;IAAC,yEAA6B;IAAA,wEAAa;IAAA,4DAAK;IAAA,4DAAS;IAC3I,4DAAM;;;IAQF,yEAA6F;IAAC,qEAAS;IAAA,4DAAK;;;IAC5G,yEAA8J;IAC5J,uDACF;IAAA,4DAAK;;;IADH,0DACF;IADE,kGACF;;;IAMA,yEAA6F;IAAC,2EAAe;IAAA,4DAAK;;;;IAatG,+EAAuM;IAAtD,4dAAqD;IAAC,kEAAO;IAAA,4DAAW;;;IAAhL,0HAA2C;;;IAFtF,qEAAyD;IACvD,2EAAoF;IAAC,uDAAkC;IAAA,4DAAO;IAC9H,6IAAyN;IAC3N,4DAAK;;;IAFkD,0DAA6B;IAA7B,mGAA6B;IAAG,0DAAkC;IAAlC,6GAAkC;IAC5G,0DAA4B;IAA5B,6FAA4B;;;IAR/C,qEAA0D;IACxD,uDACA;IAAA,gEAAI;IACJ,2EAAqD;IAAE,uDAAiC;IAAA,4DAAO;IAAA,gEAAI;IACnG,2EAAqD;IAAC,uDAAoC;IAAA,4DAAO;IACjG,qEAAK;IACD,4HAGK;IACT,4DAAK;IACP,4DAAK;;;IAVH,0DACA;IADA,2GACA;IACuD,0DAAiC;IAAjC,4GAAiC;IAClC,0DAAoC;IAApC,+GAAoC;IAE7D,0DAA4B;IAA5B,kGAA4B;;;IAV/D,yEAA+J;IAE7J,qEAAI;IACF,qEAAI;IACJ,wHAWK;IACL,2EAAuE;IAAC,uDAA2B;IAAA,4DAAO;IAAA,gEAAI;IAC9G,2EAAuE;IAAC,uDAA6B;IAAA,4DAAO;IAE9G,4DAAK;IACL,4DAAK;IAEP,4DAAK;;;IAlB6B,0DAAwB;IAAxB,8FAAwB;IAYkB,0DAA2B;IAA3B,sGAA2B;IAC3B,0DAA6B;IAA7B,wGAA6B;;;IAQzG,yEAA6F;IAAC,4EAAgB;IAAA,4DAAK;;;;IAYvG,+EAAuM;IAAtD,4dAAqD;IAAC,kEAAO;IAAA,4DAAW;;;IAA/K,0HAA2C;;;IAFvF,qEAA4D;IAC1D,2EAAoF;IAAA,uDAAkC;IAAA,4DAAO;IAC7H,6IAAyN;IAC3N,4DAAK;;;IAFkD,0DAA6B;IAA7B,mGAA6B;IAAE,0DAAkC;IAAlC,mGAAkC;IAC3G,0DAA4B;IAA5B,6FAA4B;;;IAR/C,qEAA0D;IACxD,uDACA;IAAA,gEAAI;IACJ,2EAAqD;IAAC,uDAAmC;IAAA,4DAAO;IAAA,gEAAI;IACpG,2EAAqD;IAAC,uDAAoC;IAAA,4DAAO;IACjG,qEAAI;IACA,4HAGK;IACT,4DAAK;IACP,4DAAK;;;IAVH,0DACA;IADA,+GACA;IACsD,0DAAmC;IAAnC,8GAAmC;IACnC,0DAAoC;IAApC,+GAAoC;IAE7D,0DAA+B;IAA/B,qGAA+B;;;IATlE,yEAA+J;IAC7J,qEAAI;IACF,qEAAI;IACJ,wHAWK;IACP,4DAAK;IACL,4DAAK;IAGP,4DAAK;;;IAhB6B,0DAAwB;IAAxB,8FAAwB;;;IA4B1D,yEAA8G;IAAC,mEAAQ;IAAA,4DAAK;;;IAC5H,yEAA8G;IAAC,uDAA2B;IAAA,4DAAK;;;IAAhC,0DAA2B;IAA3B,qGAA2B;;;IAG1I,yEAA8G;IAAC,mEAAQ;IAAA,4DAAK;;;;IAE1H,wEAC0E;IAA1E,waAAgC;IAA0C,iEAAM;IAAA,4DAAI;;;;IADtC,kMAAsE;;;;IAMpH,wEAC+E;IAA/E,6aAAqC;IAA0C,gEAAK;IAAA,4DAAI;;;;IADxC,iMAAqE;;;IAPvH,yEAA6G;IAC3G,qHACoF;IAAC,yEACtF;IAIC,qHACwF;IAE1F,4DAAK;;;IATE,0DAAuC;IAAvC,uGAAuC;IAMvC,0DAAyC;IAAzC,yGAAyC;;;IAOlD,oEAAsF;;;IACtF,oEAA2F;;;;;IC/FzF,yEAAgE;IAAA,6EAAkB;IAAA,4DAAK;;;IACvF,yEAA8F;IAC5F,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGzB,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGzF,oEAAqE;;;IACrE,oEAA0F;;;IAG1F,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIzF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAIvF,yEAAgE;IAAC,gEAAI;IAAA,4DAAK;;;IAC1E,yEAA+D;IAAC,uDAAgB;IAAA,4DAAK;;;IAArB,0DAAgB;IAAhB,2FAAgB;;;IAGhF,yEAAgE;IAAC,qEAAS;IAAA,4DAAK;;;IAC/E,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAIpF,yEAAgE;IAAC,uEAAW;IAAA,4DAAK;;;IACjF,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAItF,yEAAgE;IAAC,wEAAY;IAAA,4DAAK;;;IAClF,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAIvF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;;IACnF,yEAA+D;IAAC,4EAC+E;IAA3I,0UAAkC;IAD0B,4DAC+E;IAAC,4DAAK;;;IAAjJ,0DAAkC;IAAlC,4FAAkC;;;IAGtC,yEAAgE;IAAC,2EAAe;IAAA,4DAAK;;;IACrF,yEAA+D;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,0FAAyB;;;IAO1F,oEAAsF;;;IACtF,oEAA0F;;;IAKxF,yEAA0D;IAAA,2EAAgB;IAAA,4DAAK;;;IAC/E,yEAA0D;IAAA,sFAA2B;IAAA,4DAAK;;;IAF5F,yEAAkC;IAChC,kHAA+E;IAC/E,kHAA0F;IAC5F,4DAAK;;;IAF+B,0DAAsB;IAAtB,2FAAsB;IACtB,0DAAsB;IAAtB,2FAAsB;;;;IAazC,6EAC8D;IAA/D,uTAAgB;IAA+C,+DAAI;IAAA,4DAAS;;;IAM1F,yEAA0F;IAAA,6EAC1F;IAAA,4DAAK;;;IACL,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGvF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAGzF,oEAAqE;;;IACrE,oEAA0F;;;IAG1F,yEAA0F;IAAC,yEAAa;IAAA,4DAAK;;;IAC7G,yEAA+D;IAAC,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,oGAAyB;;;IAIzF,yEAA0F;IAAC,uEAAW;IAAA,4DAAK;;;IAC3G,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAIvF,yEAA0F;IAAC,gEAAI;IAAA,4DAAK;;;IACpG,yEAA+D;IAAC,uDAAgB;IAAA,4DAAK;;;IAArB,0DAAgB;IAAhB,2FAAgB;;;IAGhF,yEAA0F;IAAC,qEAAS;IAAA,4DAAK;;;IACzG,yEAA+D;IAAC,uDAAoB;IAAA,4DAAK;;;IAAzB,0DAAoB;IAApB,+FAAoB;;;IAIpF,yEAA0F;IAAC,uEAAW;IAAA,4DAAK;;;IAC3G,yEAA+D;IAAC,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,iGAAsB;;;IAItF,yEAA0F;IAAC,wEAAY;IAAA,4DAAK;;;IAC5G,yEAA+D;IAAC,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAKvF,yEAAgE;IAAC,yEAAa;IAAA,4DAAK;;;IACnF,yEAA+D;IAC7D,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,kGAAuB;;;IAGzB,yEAAgE;IAAC,2EAAe;IAAA,4DAAK;;;IACrF,yEAA+D;IAAA,uDAAyB;IAAA,4DAAK;;;IAA9B,0DAAyB;IAAzB,0FAAyB;;;IAE1F,oEAAsF;;;IACtF,oEAA0F;;;IAExF,yEAA0D;IAAA,2EAAgB;IAAA,4DAAK;;;IAC/E,yEAA0D;IAAA,sFAA2B;IAAA,4DAAK;;;IAF5F,yEAAkC;IAChC,kHAA+E;IAC/E,kHAA0F;IAC5F,4DAAK;;;IAF+B,0DAAsB;IAAtB,2FAAsB;IACtB,0DAAsB;IAAtB,2FAAsB;;AJRzD,IAAI,gBAAgB,GAAuB,EAAE;AAS7C,MAAM,oCAAoC;IAuC/C,YAAoB,WAAwB,EAAU,MAA0B,EAAS,MAAiB,EAAU,WAAiC,EAAU,KAAqB,EAC1K,QAA2B,EAAU,UAAgC,EAAU,MAAc;QADnF,gBAAW,GAAX,WAAW,CAAa;QAAU,WAAM,GAAN,MAAM,CAAoB;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,gBAAW,GAAX,WAAW,CAAsB;QAAU,UAAK,GAAL,KAAK,CAAgB;QAC1K,aAAQ,GAAR,QAAQ,CAAmB;QAAU,eAAU,GAAV,UAAU,CAAsB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAnCvG,UAAK,GAAW,CAAC,CAAC;QAClB,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QAGtD,0NAA0N;QAC1N,qBAAgB,GAAa,CAAC,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;QAErgB,oBAAe,GAAoB;YACjC,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;YACtM,UAAU,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK;SAC1D;QACD,0BAAqB,GAAsB,EAAE,CAAC;QAC9C,qBAAgB,GAAmB;YACjC,EAAE,EAAE,CAAC,EAAE,0BAA0B,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE;YAC/F,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI;SAC3L;QAGD,eAAU,GAAY,IAAI,CAAC;QAC3B,kBAAa,GAAY,IAAI,CAAC;IAgB1B,CAAC;IATL,eAAe;QAEb,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACrC,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAKD,QAAQ;QACN,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACrC,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,CAAC,gBAAgB,GAAG,CAAC,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QAG1c;;;;;;;;;;;;eAYO;IACT,CAAC;IAGD,OAAO;QACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,uEAAkB,CAAmB,gBAAgB,CAAC,CAAC;QACnF,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACnD,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClE,CAAC;IACD,SAAS;QACP,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,aAAa,CAAC,IAAS,EAAE,KAAU;QACjC,QAAQ,CAAC;QACT,IAAI,OAAO,CAAC,uDAAuD,CAAC,EAAE;YACpE,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;YAChD,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;gBAC7E,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBACxF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;SACJ;aACI;YACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACrD;IAEH,CAAC;IAGD,eAAe,CAAC,OAAY;QAC1B,QAAQ,CAAC;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAEpD,IAAI,EAAE;gBACJ,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU;aAC7E;YACD,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAG/B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,qBAAqB;IAErB,CAAC;IACD,gBAAgB,CAAC,SAAS,EAAE,MAAM;QAGhC,IAAI,CAAC,OAAO,CAAC,gDAAgD,CAAC,EAAE;YAC9D,MAAM,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;SACd;aACI;YACH,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,SAAS,CAAC,EAAE;YACjD,iCAAiC;YAEjC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC;gBACrE,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;oBACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBACpD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;gBAC1F,CAAC;gBACD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;oBAClB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;oBAC1E,OAAO,KAAK,CAAC;gBACf,CAAC;aACF,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;SAEb;IACH,CAAC;IAGD,qBAAqB,CAAC,IAAS;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACzD,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE;YAC9N,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEtD,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,aAAa,CAAC,SAAS,EAAE,iBAAiB;QACxC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YAC3F,0DAA0D;YAC1D,kCAAkC;YAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,gBAAgB,GAAG,IAAI,uEAAkB,CAAmB,IAAI,CAAC,CAAC;YACvE,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;YACpF,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC;YACtG,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,OAAO,EAAE;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aAAE;iBAAM;gBAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aAAE;YAC1E,IAAI,eAAe,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;gBAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAAE;iBAAM;gBAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAAE;QAEvH,CAAC,CAAC;IACJ,CAAC;IAED,YAAY;QAEV,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YAClE,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YAChD,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe;YAE/C,IAAI,CAAC,eAAe,EAAE;gBACpB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,iDAAiD,GAAG,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBAClI,OAAO;aACR;iBACI;gBACH,IAAI,OAAO,CAAC,+CAA+C,CAAC,EAAE;oBAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAClE,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC9E,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;4BAC9B,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,aAAa;4BACjD,QAAQ,EAAE,CAAC;4BACX,eAAe,EAAE,EAAE;4BACnB,iBAAiB,EAAE,EAAE;4BACrB,gBAAgB,EAAE,CAAC;4BACnB,OAAO,EAAE,CAAC;4BACV,YAAY,EAAE,CAAC;4BACf,UAAU,EAAE,CAAC;4BACb,SAAS,EAAE,EAAE;4BACb,WAAW,EAAE,EAAE;4BACf,SAAS,EAAE,CAAC;4BACZ,UAAU,EAAE,EAAE;4BACd,kBAAkB,EAAE,EAAE;4BACtB,UAAU,EAAE,KAAK;4BACjB,SAAS,EAAE,CAAC;yBACb,CAAC;qBACH;iBAEF;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,aAAa;QACX,IAAI,CAAC,gBAAgB,GAAG,IAAI,uEAAkB,CAAmB,gBAAgB,CAAC,CAAC;IACrF,CAAC;IACD,cAAc,CAAC,OAAO;QACpB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QACxC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QAC3B,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;IAC7B,CAAC;IACD,gBAAgB,CAAC,OAAO;QACtB,QAAQ,CAAC;QACT,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;QAC7C,OAAO,CAAC,QAAQ,GAAG,EAAE;YACnB,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC;QAC7B,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,cAAc,CAAC,KAAY,EAAE,OAAO;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;QAC/C,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACzC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE;gBACrC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,8BAA8B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBAC7F,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;gBACjB,OAAO;aACR;iBAAM;gBACL,QAAQ,CAAC;gBACT,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC7B,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,OAAO,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC3C,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;gBAC5D,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC;gBACnC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACvC,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC;gBACrC,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC;gBAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,EAAE,CAAC;gBAClC,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChD;;;;;;;;;;8BAUc;aACf;SACF;IACH,CAAC;IACD,YAAY,CAAC,KAAU;QACrB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;IACH,CAAC;IACD,0BAA0B;IAC1B,kCAAkC;IAClC,mEAAmE;IACnE,2BAA2B;IAC3B,4BAA4B;IAC5B,qCAAqC;IACrC,QAAQ;IACR,IAAI;IACJ,kDAAkD;IAClD,6CAA6C;IAC7C,oCAAoC;IACpC,qCAAqC;IACrC,oCAAoC;IACpC,8CAA8C;IAC9C,MAAM;IACN,yBAAyB;IACzB,IAAI;IACJ,uCAAuC;IACvC,iDAAiD;IACjD,gDAAgD;IAChD,wBAAwB;IACxB,IAAI;IAEJ,cAAc,CAAC,IAAS;QAEtB,IAAI,OAAO,CAAC,sDAAsD,CAAC,EAAE;YACnE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACrD;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAID,gBAAgB,CAAC,GAAQ;QACvB,IAAI,GAAG,CAAC,MAAM,IAAI,WAAW,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,KAAK,IAAI,GAAG,CAAC,aAAa,IAAI,QAAQ,CAAC,EAAE;YAC9F,OAAO,IAAI,CAAC;SACb;;YAEC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,QAAQ,CAAC,GAAQ;QACf,IAAI,GAAG,CAAC,iBAAiB,IAAI,IAAI,EAAE;YACjC,OAAO,MAAM,CAAC;SACf;;YAEC,OAAO,OAAO,CAAC;IACnB,CAAC;;wHAvUU,oCAAoC;kIAApC,oCAAoC;kEA0BpC,sEAAY;;;;;QC9LzB,8EAA8B;QAE5B,yEAAiB;QACf,yEAA2C;QACzC,wEAAoG;QAClG,sFAA0B;QAAA,4DAAK;QACnC,4DAAM;QACN,yEAAwC;QACtC,4EACwB;QAAtB,4JAAS,eAAW,IAAC;QAAC,2EAAU;QAAA,qEAAU;QAAA,4DAAW;QACrD,0EAAqC;QAAA,gEAAI;QAAA,4DAAO;QAAA,4DAAS;QAC7D,4DAAM;QAER,4DAAM;QAsBN,iEAAI;QASN,4DAAW;QACX,iEAAI;QACJ,4EAAU;QACR,0EAA6B;QAC3B,4EACyD;QACvD,4EAAmF;QACjF,iIAAsF;QACtF,iIAC+F;QACjG,qEAAe;QACf,6EAAwC;QACtC,iIAAkF;QAClF,iIAA4F;QAC9F,qEAAe;QACf,6EAAmF;QACjF,iIAAkF;QAClF,iIAC+F;QACjG,qEAAe;QACf,6EAAkF;QAChF,iIAAiF;QACjF,iIAC8F;QAChG,qEAAe;QACf,6EAAuC;QACrC,iIAAiF;QACjF,iIAA2F;QAC7F,qEAAe;QACf,6EAAyC;QACvC,iIAAmF;QACnF,iIAA6F;QAC/F,qEAAe;QACf,6EAAkC;QAChC,iIAAwF;QACxF,iIAAsF;QACxF,qEAAe;QACf,6EAAoC;QAClC,iIAA0F;QAC1F,iIAAwF;QAC1F,qEAAe;QAEf,6EAAmC;QACjC,iIAA6E;QAC7E,iIAAuF;QACzF,qEAAe;QAEf,6EAAqC;QACnC,iIAAgF;QAChF,iIAAyF;QAC3F,qEAAe;QAEf,6EAA0C;QACxC,iIAAqF;QACrF,iIAA8F;QAChG,qEAAe;QAEf,6EAAwC;QACtC,iIAAkF;QAClF,iIAA4F;QAC9F,qEAAe;QACf,6EAAwC;QACtC,iIAAiF;QACjF,iIAA4F;QAC9F,qEAAe;QAGf,6EAAoC;QAClC,iIAA4E;QAC5E,iIAAwF;QAC1F,qEAAe;QACf,6EAA0C;QACxC,iIAAqE;QACrE,iIAA0F;QAC5F,qEAAe;QAEf,6EAAkC;QAChC,iIAAwG;QACxG,kIAeK;QACP,qEAAe;QAEf,6EAAoC;QAClC,iIAA4E;QAC5E,iIAGK;QACP,qEAAe;QACf,6EAAoC;QAClC,iIAAmF;QACnF,iIAGK;QACP,qEAAe;QAGf,iIAAsF;QACtF,iIAA0F;QAG5F,4DAAQ;QACV,4DAAM;QAER,4DAAW;;QAnHU,2DAA+B;QAA/B,4FAA+B;QA4GA,2DAAiC;QAAjC,iGAAiC;QACtB,0DAA0B;QAA1B,kGAA0B;;ADwXlF,MAAM,sBAAsB;IAwBjC,YAA4C,IAAuB,EAAU,SAAsB,EAAU,WAAwB,EAAS,SAA+C,EAAS,MAAiB,EAAU,WAAiC,EAAU,WAA2B,EAC7R,QAA2B;QADO,SAAI,GAAJ,IAAI,CAAmB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAS,cAAS,GAAT,SAAS,CAAsC;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,gBAAW,GAAX,WAAW,CAAsB;QAAU,gBAAW,GAAX,WAAW,CAAgB;QAC7R,aAAQ,GAAR,QAAQ,CAAmB;QAnBrC,cAAS,GAAa,EAAE,CAAC;QACzB,wBAAmB,GAAG,EAAE,CAAC;QACzB,SAAI,GAAW,EAAE,CAAC;QAElB,oBAAe,GAAqB,EAAE,CAAC;QACvC,2BAAsB,GAAG,IAAI,uDAAW,EAAE,CAAC;QAC3C,4BAAuB,GAAG,IAAI,uDAAW,EAAE,CAAC;QAE5C,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QACtD,kBAAa,GAAW,EAAE,CAAC;QAI3B,gBAAW,GAAgB;YACzB,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI;YACvF,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE;SAC7E;QAQD,sCAAiC,GAAa,CAAC,UAAU,CAAC,CAAC;QAC3D,qBAAgB,GAAmB;YACjC,EAAE,EAAE,CAAC,EAAE,0BAA0B,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE;YAC/F,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI;SAC3L;QACD,yBAAoB,GAAqB,EAAE,CAAC;QAC5C,qBAAgB,GAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAXlD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,yBAAyB;YACvD,yBAAyB;SAC1B,CAAC,CAAC;IACL,CAAC;IAYD,QAAQ;;QACN,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,UAAI,CAAC,IAAI,0CAAE,WAAW,CAAC;QAC5C,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE;YACxB,QAAQ,CAAC;YACT,IAAI,CAAC,4BAA4B,CAAC,UAAI,CAAC,IAAI,0CAAE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC1E;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACjC,EAAE,EAAE,CAAC;YACL,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YACrB,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACvC,EAAE,EAAE,CAAC;YACL,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YACrB,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YAC/B,cAAc,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACtC,CAAC;IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,4BAA4B;QAC1B,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YAC9E,IAAI,CAAC,2BAA2B,GAAG,IAAI,uEAAkB,CAAc,IAAI,CAAC,CAAC;YAC7E,IAAI,CAAC,2BAA2B,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAChD,CAAC,CAAC;IACJ,CAAC;IACD,4BAA4B,CAAC,aAAqB,EAAE,EAAU;QAC5D,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAuB,EAAE,EAAE;YAChH,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;gBAC7B,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;oBACvC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;oBACpB,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;oBACnB,iBAAiB,EAAE,CAAC,EAAC,KAAK,EAAC,WAAW,CAAC,iBAAiB,EAAE,QAAQ,EAAC,IAAI,EAAC,CAAC;oBACzE,cAAc,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC;iBAChE,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;aAC7C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAEzB,CAAC;IACD,gBAAgB,CAAC,GAAG;QAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC;QAC1B,IAAI,OAAO,CAAC,kCAAkC,CAAC,EAAE;YAC/C,IAAI,KAAK,GAAG,GAAG,CAAC,YAAY,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;gBAChE,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrB,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;oBACxE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;oBACxF,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;wBAC9E,IAAI,CAAC,2BAA2B,GAAG,IAAI,uEAAkB,CAAc,IAAI,CAAC,CAAC;wBAC7E,IAAI,CAAC,2BAA2B,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;oBAChD,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,cAAc,CAAC,KAAY;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACjC;IACH,CAAC;IACD,oBAAoB,CAAC,KAAY;QAC/B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;QAE/C,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACjC;IACH,CAAC;IACD,YAAY,CAAC,OAAO;QAClB,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC1D,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;YAC7D,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB,CAAC,MAAW;QAC7B,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;QAC/B,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACxC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,QAAQ,CAAC,KAAU,EAAE,IAAY;QAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,uCAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,WAAW;QAET,IAAI,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;YAC7C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE;gBAClC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;gBACvF,OAAO;aACR;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBACzB,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK;oBACxD,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC3D,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;gBACrE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC;gBACrC,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC1C,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;gBAC/B,iBAAiB;gBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAElD,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,EAAE;wBAC7S,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,0CAA0C,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;wBAC5G,OAAO;qBACR;yBAAM;wBAEL,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;wBAC3E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBAC5D,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAC9H,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC;wBACnC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,KAAK,CAAC;wBACvC,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC;wBACrC,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;wBAC7B,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC;wBAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,EAAE,CAAC;wBAClC,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;wBAChD,IAAI,CAAC,gBAAgB,CAAC,8BAA8B,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAGpE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;4BAC7B,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;4BAC5B,0BAA0B,EAAE,IAAI,CAAC,gBAAgB,CAAC,0BAA0B;4BAC5E,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ;4BACxC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa;4BAClD,QAAQ,EAAE,IAAI;4BACd,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK;4BAClC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ;4BACxC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU;4BAC5C,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI;4BAChC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM;4BACpC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY;4BAChD,6BAA6B,EAAE,CAAC;4BAChC,8BAA8B,EAAE,IAAI,CAAC,gBAAgB,CAAC,8BAA8B;4BACpF,qBAAqB,EAAE,UAAU;yBAClC,CAAC,CAAC;qBAEJ;iBACF;gBAED,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC;oBACvD,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;wBAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAClD,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,8BAA8B,GAAG,GAAG,CAAC;yBACnE;wBAED,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;;4BACxF,IAAI,IAAI,IAAI,EAAE,EAAE;gCACd,QAAQ,CAAC;gCACT,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;oCAC5H,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gCAC1B,CAAC,CAAC,CAAC;gCACH,8FAA8F;gCAC9F,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;gCACtE,aAAa,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;oCACrC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;gCACrB,CAAC,CAAC,CAAC;gCACH,IAAI,CAAC,4BAA4B,CAAC,UAAI,CAAC,IAAI,0CAAE,aAAa,EAAE,CAAC,CAAC,CAAC;gCAC/D,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,gCAAgC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gCAClG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;6BACxB;4BACD,6BAA6B;wBAC/B,CAAC,CAAC,CAAC;oBAEL,CAAC;oBACD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;wBAClB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;wBAC3E,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;oBACzB,CAAC;iBACF,CAAC,CAAC;aAEJ;SACF;aACI;YACH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC5B,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;gBACvF,OAAO;aACR;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACnB,IAAI,EAAE,CAAC;gBACP,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI;oBACxC,EAAE,GAAG,CAAC,CAAC;;oBAEP,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;gBAEtC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE;oBACtB,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;gBAC/D,IAAI,CAAC,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC;gBACnF,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;gBAC/B,iBAAiB;gBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAClD,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,EAAE;wBAC7S,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,0CAA0C,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;wBAC5G,OAAO;qBACR;yBAAM;wBAEL,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBAC5D,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAC9H,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC;wBACnC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,KAAK,CAAC;wBACvC,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC;wBACrC,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAC;wBAC7B,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC;wBAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,EAAE,CAAC;wBAClC,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;wBAChD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;4BAC7B,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;4BAC5B,0BAA0B,EAAE,IAAI,CAAC,gBAAgB,CAAC,0BAA0B;4BAC5E,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ;4BACxC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa;4BAClD,QAAQ,EAAE,IAAI;4BACd,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK;4BAClC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ;4BACxC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU;4BAC5C,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI;4BAChC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM;4BACpC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY;4BAChD,6BAA6B,EAAE,CAAC;4BAChC,8BAA8B,EAAE,CAAC;4BACjC,qBAAqB,EAAE,KAAK;yBAC7B,CAAC,CAAC;qBAEJ;iBACF;gBACD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC;oBACvD,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;wBACjB,QAAQ,CAAC;wBACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACzD,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,8BAA8B,GAAG,GAAG,CAAC;yBACnE;wBACD,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;;4BACxF,IAAI,IAAI,IAAI,EAAE,EAAE;gCACd,QAAQ,CAAC;gCACT,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;oCAC5H,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;gCAC1B,CAAC,CAAC,CAAC;gCACH,8FAA8F;gCAC9F,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;gCACtE,aAAa,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;oCACrC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;gCACrB,CAAC,CAAC,CAAC;gCACH,IAAI,CAAC,4BAA4B,CAAC,UAAI,CAAC,IAAI,0CAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gCACpD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,8BAA8B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gCAChG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;6BACxB;4BACD,6BAA6B;wBAC/B,CAAC,CAAC,CAAC;oBAEL,CAAC;oBACD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;wBAClB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;wBAC3E,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;oBACzB,CAAC;iBACF,CAAC,CAAC;aAEJ;SACF;IAGH,CAAC;;4FAnXU,sBAAsB,kEAwBb,qEAAe;oHAxBxB,sBAAsB;kEAsCtB,sEAAY;;;;;QE3jBzB,yEAAiB;QACf,yEAAoB;QAClB,wEAAkE;QAAA,0EAAe;QAAA,4DAAK;QACxF,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,gJAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QAON,uFAAsB;QACpB,6HAmDW;QACX,+HAyFW;QACb,4DAAc;QAEhB,4DAAM;;QAhJS,0DAAmB;QAAnB,mFAAmB;QAoDnB,0DAAqB;QAArB,qFAAqB;;AFk1B7B,MAAM,sBAAsB;IAkBjC,YAA4C,IAAuB,EAAU,MAAc,EAAS,SAA+C,EAAU,WAA2B,EAAS,MAAiB,EAAU,WAAiC;QAAjN,SAAI,GAAJ,IAAI,CAAmB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAS,cAAS,GAAT,SAAS,CAAsC;QAAU,gBAAW,GAAX,WAAW,CAAgB;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,gBAAW,GAAX,WAAW,CAAsB;QAhB7P,cAAS,GAAW,CAAC,CAAC;QACtB,WAAM,GAAW,EAAE,CAAC;QACpB,eAAU,GAA8B,EAAE,CAAC;QAQ3C,gBAAW,GAAgB;YACzB,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI;YACvF,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE;SAC7E;QAED,qBAAgB,GAAa,CAAC,YAAY,EAAC,eAAe,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,kBAAiB;IAG3H,CAAC;IACD,QAAQ;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU;QACzC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAG7C,CAAC;IAED,UAAU;QACR,QAAQ,CAAC;QACT,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YAChG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,aAAa,CAAC,IAAS;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACzD,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1Q,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,UAAU,EAAE,CAAC;QAEpB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB,CAAC,IAAS;QAC1B,IAAI,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE9C,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,iBAAiB,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,QAAQ,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC;YACvD,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;gBACjB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;gBACvH,6BAA6B;gBAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC;YACD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YAC5E,CAAC;SACF,CAAC,CAAC;QACH,yBAAyB;QACzB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IACD,cAAc;QACZ,QAAQ,CAAC;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACzD,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE;YAChP,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,QAAQ,CAAC;YACT,IAAI,CAAC,UAAU,EAAE,CAAC;QAEpB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,YAAY,CAAC,EAAE,EAAE,QAAQ;QACvB,QAAQ,CAAC;QACT,IAAI,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,QAAQ,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;YAC7D,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB,CAAC,MAAW;QAC7B,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;QAC/B,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACxC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,QAAQ,CAAC,KAAU,EAAE,IAAY;QAC/B,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,uCAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,cAAc,CAAC,IAAS;QACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,uEAAkB,CAAoB,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtC,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;SAWK;IAGL,YAAY,CAAC,IAAY;QAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,UAAU,GAAG,EAAE,CAAC;QAEpB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;YAC1B,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,6BAA4B;SAE/D;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,KAAU;QACjB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,sBAAsB,CAAC,GAAQ,EAAE,MAAW;QAC1C,IAAI,MAAM,IAAI,QAAQ,EAAE;YACtB,IAAI,IAAI,CAAC,IAAI,IAAI,kBAAkB,IAAI,IAAI,CAAC,IAAI,IAAI,kBAAkB,EAAE;gBACtE,IAAI,GAAG,CAAC,aAAa,IAAI,KAAK,IAAI,GAAG,CAAC,aAAa,IAAI,UAAU,EAAE;oBACjE,OAAO,KAAK,CAAC;iBACd;;oBAEC,OAAO,IAAI,CAAC;aACf;SAIF;aACI,IAAI,MAAM,IAAI,OAAO,EAAE;YAC1B,IAAI,IAAI,CAAC,IAAI,IAAI,kBAAkB,IAAI,IAAI,CAAC,IAAI,IAAI,kBAAkB;gBACpE,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;4FA5KU,sBAAsB,kEAkBb,qEAAe;oHAlBxB,sBAAsB;kEAStB,sEAAY;;;;;QG55BrB,yEAAiB;QACb,yEAA2C;QAEzC,wEAA+E;QAC7E,2EAAe;QAAA,4DAAK;QACxB,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,gJAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QAER,4DAAM;QAEZ,gEAAI;QACJ,8EAA8B;QAC1B,yEAAiB;QACf,0EAAuE;QACrE,gFAAyC;QAAA,wDAAgC;QAAA,4DAAY;QACvF,4DAAM;QACN,0EAAuE;QACrE,gFAAyC;QAAA,wDAAwC;QAAA,4DAAY;QAC/F,4DAAM;QACN,oHAEI;QACN,4DAAM;QACN,0EAA6B;QAC7B,6EAAuJ;QAIrJ,6EAAwC;QACtC,mHAA4G;QAC5G,mHAEK;QACP,qEAAe;QAIf,6EAA2C;QACzC,mHAAkH;QAClH,mHAsBK;QACP,qEAAe;QACf,6EAA8C;QAC5C,mHAAmH;QACnH,mHAmBK;QACP,qEAAe;QAUf,6EAAoC;QAClC,mHAA4H;QAC5H,mHAA+I;QACjJ,qEAAe;QACf,6EAA2C;QACzC,mHAA4H;QAC5H,mHAUK;QACP,qEAAe;QAGf,mHAAsF;QACtF,mHAA2F;QAG7F,4DAAQ;QACV,4DAAM;QACN,uEAAK;QACH,gFAAuJ;QAEzJ,4DAAM;QAIR,4DAAW;;QAlHsC,2DAAgC;QAAhC,yGAAgC;QAGhC,0DAAwC;QAAxC,iHAAwC;QAEf,0DAAgG;QAAhG,qKAAgG;QAKrJ,0DAAgC;QAAhC,6FAAgC;QA2FD,2DAAiC;QAAjC,iGAAiC;QACrB,0DAA0B;QAA1B,kGAA0B;QAMxC,0DAA2B;QAA3B,kJAA2B;;AH0+BtE,MAAM,iBAAiB;IAe5B,YAA4C,IAAsB,EAAU,SAAsB,EAAU,MAA0B,EAAS,SAA0C,EAC/K,aAAmC;QADD,SAAI,GAAJ,IAAI,CAAkB;QAAU,cAAS,GAAT,SAAS,CAAa;QAAU,WAAM,GAAN,MAAM,CAAoB;QAAS,cAAS,GAAT,SAAS,CAAiC;QAC/K,kBAAa,GAAb,aAAa,CAAsB;QAf7C,gBAAW,GAAW,EAAE,CAAC;QACzB,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QAItD,iBAAY,GAAY,KAAK,CAAC;QAC9B,uBAAkB,GAA0B,EAAE,CAAC;QAE/C,gBAAW,GAAwB,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE;QAC/G,qBAAgB,GAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;IAKlO,CAAC;IAClD,QAAQ;QACN,IAAI,CAAC,oCAAoC,EAAE,CAAC;IAC9C,CAAC;IACD,mBAAmB,CAAC,OAAO;QACzB,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;QAChE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,oCAAoC;QAClC,IAAI,CAAC,aAAa,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YAC/F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,sBAAsB,GAAG,IAAI,uEAAkB,CAAuB,IAAI,CAAC,CAAC;YACjF,IAAI,CAAC,uBAAuB,GAAG,IAAI,uEAAkB,CAAuB,IAAI,CAAC,CAAC;YAClF,IAAI,CAAC,sBAAsB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACtE,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzE,CAAC;IACD,WAAW;QACT,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IACD,aAAa;;QACX,IAAI,EAAE,GAAmB,uDAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7E,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACvI,MAAM,EAAE,GAAkB,iDAAmB,EAAE,CAAC;QAEhD,0DAA4B,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE/C,kBAAkB;QAClB,QAAQ,CAAC;QACT,IAAI,CAAC,WAAI,CAAC,IAAI,CAAC,SAAS,0CAAE,MAAM,KAAG,UAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,MAAM,EAAC,GAAG,GAAG;YACpE,4CAAc,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC;;YAEpI,4CAAc,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC;IAE9G,CAAC;IACD,IAAI;;QACF,IAAI,qBAAqB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAExE,IAAI,WAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,0CAAE,WAAW,KAAI,IAAI,EAAE;gBACpE,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gCAAgC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBACpG,OAAO;aACR;iBACI;gBACH,MAAM,KAAK,GAAG,mBAAmB,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,0CAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE;oBACpF,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,sEAAsE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;oBAC1I,OAAO;oBACP,wDAAwD;iBACzD;aACF;YACD,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC9E,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/M,iJAAiJ;YACjJ,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC3B,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;gBACvB,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO;gBACjC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;gBACzC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnD,WAAW,EAAE,IAAI,IAAI,EAAE;aACxB,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,EAAE;gBACpC,qBAAqB,GAAG,KAAK,CAAC;aAC/B;SACF;QACD,IAAI,qBAAqB,IAAI,KAAK,EAAE;YAClC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,0FAA0F,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YAC9J,OAAO;SACR;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;gBAC9E,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBAC1F,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;SACJ;IAEH,CAAC;;kFAvGU,iBAAiB,kEAeR,qEAAe;+GAfxB,iBAAiB;kEAIjB,sEAAY;;;;;;;QI7mCzB,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAC,6EAAiB;QAAA,4DAAK;QACrE,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,2IAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACN,yEAAiB;QACf,yEAAoB;QAClB,oFAAsC;QAEpC,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B,+EAAoE;QAApD,+IAAS,uBAAmB,IAAC;QAA7C,4DAAoE;QACtE,4DAAiB;QACnB,4DAAM;QACN,qEAIM;QACR,4DAAM;QACN,2EAA6B;QAC3B,6EAC6C;QAC3C,6EAA8E;QAC5E,8GAAuF;QACvF,8GAC8B;QAChC,qEAAe;QACf,6EAA0C;QACxC,8GAAmF;QACnF,8GAA8F;QAChG,qEAAe;QACf,6EAA0C;QACxC,8GAAqE;QACrE,8GAA0F;QAC5F,qEAAe;QACf,6EAA0C;QACxC,8GAAmF;QACnF,8GAA8F;QAEhG,qEAAe;QACf,6EAAwC;QACtC,8GAAiF;QACjF,8GAA4F;QAC9F,qEAAe;QAEf,6EAAiC;QAC/B,8GAA0E;QAC1E,8GAAqF;QACvF,qEAAe;QACf,6EAAqC;QACnC,8GAA+E;QAC/E,8GAAyF;QAC3F,qEAAe;QAEf,6EAAuC;QACrC,8GAAiF;QACjF,8GAA2F;QAC7F,qEAAe;QAEf,6EAAwC;QACtC,8GAAkF;QAClF,8GAA4F;QAC9F,qEAAe;QAEf,6EAAyC;QACvC,8GAAmF;QACnF,8GACqJ;QACvJ,qEAAe;QACf,6EAA2C;QACzC,8GAAqF;QACrF,8GAA6F;QAC/F,qEAAe;QAMf,8GAAsF;QACtF,8GAA0F;QAI1F,8GAGK;QAEP,4DAAQ;QACV,4DAAM;QACN,uEAAK;QACH,gFACgE;QAClE,4DAAM;QACN,0EAAiB;QACf,qEAEM;QACN,2EAAmB;QAAA,sHAC2E;QAAA,4DAAM;QACtG,4DAAM;QACN,+EAA2C;QACzC,iFACoD;QAClD,6EAAoC;QAClC,8GACK;QACL,8GAA4F;QAC9F,qEAAe;QACf,6EAA0C;QACxC,8GAAmF;QACnF,8GAA8F;QAChG,qEAAe;QACf,6EAA0C;QACxC,8GAAqE;QACrE,8GAA0F;QAC5F,qEAAe;QACf,6EAA0C;QACxC,8GAA6G;QAC7G,8GAA8F;QAEhG,qEAAe;QACf,6EAAwC;QACtC,8GAA2G;QAC3G,8GAA4F;QAC9F,qEAAe;QAEf,6EAAiC;QAC/B,8GAAoG;QACpG,8GAAqF;QACvF,qEAAe;QACf,6EAAqC;QACnC,8GAAyG;QACzG,8GAAyF;QAC3F,qEAAe;QAEf,6EAAuC;QACrC,8GAA2G;QAC3G,8GAA2F;QAC7F,qEAAe;QAEf,6EAAwC;QACtC,8GAA4G;QAC5G,8GAA4F;QAC9F,qEAAe;QAGf,6EAAyC;QACvC,8GAAmF;QACnF,8GAC8B;QAChC,qEAAe;QACf,6EAAkD;QAChD,8GAAqF;QACrF,8GAA6F;QAC/F,qEAAe;QACf,8GAAsF;QACtF,8GAA0F;QAC1F,8GAGK;QAEP,4DAAQ;QACV,4DAAM;QACR,4DAAM;;QAjJe,2DAAqC;QAArC,kGAAqC;QA0DN,2DAAiC;QAAjC,iGAAiC;QACtB,0DAA0B;QAA1B,kGAA0B;QAYvC,0DAAoC;QAApC,kJAAoC;QAQ9C,0DAA0C;QAA1C,8IAA0C;QAG7D,0DAAsC;QAAtC,mGAAsC;QAsDP,2DAAiC;QAAjC,iGAAiC;QACtB,0DAA0B;QAA1B,kGAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/JhB;AAIQ;;;;;;;;;;;;;AAmB1E,MAAM,aAAa;IAoBxB,YAA4C,IAAgB,EAAU,WAAwB,EAAS,SAAsC,EACnI,UAAyB,EAAU,QAAkB,EAAU,UAA6B;QAD1D,SAAI,GAAJ,IAAI,CAAY;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAS,cAAS,GAAT,SAAS,CAA6B;QACnI,eAAU,GAAV,UAAU,CAAe;QAAU,aAAQ,GAAR,QAAQ,CAAU;QAAU,eAAU,GAAV,UAAU,CAAmB;QAhBtG,iBAAY,GAAG,IAAI,uDAAW,EAAE,CAAC;QACjC,uBAAkB,GAAW,CAAC,CAAC;QAC/B,wBAAmB,GAAG,EAAE,CAAC;QACzB,qBAAgB,GAAa,EAAE,CAAC;QAChC,aAAQ,GAAiB,EAAE,CAAC;QAC5B,2BAAsB,GAAG,IAAI,uDAAW,EAAE,CAAC;QAC3C,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QAEtD,aAAQ,GAAe,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE;QAC1I,kBAAa,GAAmB;YAC9B,EAAE,EAAE,CAAC,EAAE,0BAA0B,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE;YAC/F,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAC,8BAA8B,EAAC,IAAI,EAAC,qBAAqB,EAAC,IAAI;SACvL;QAKD,eAAU,GAAG,2CAA2C,CAAC;QAEzD,gBAAW,GAAG,6BAA6B,CAAC;IAH5C,CAAC;IAID,QAAQ;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACxC,QAAQ,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACrC,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAGD,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE;YACpC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,wBAAwB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YACxF,OAAO;SACR;QACD,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;gBACnE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;0EAvDU,aAAa,kEAoBJ,qEAAe;2GApBxB,aAAa;QCxB1B,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,mEAAQ;QAAA,4DAAK;QAC3D,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,uIAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACR,4DAAM;QACN,0EAAsD;QAAtB,qIAAU,cAAU,IAAC;QACnD,yEAAwC;QAGtC,oFAAgE;QAC9D,6EAAW;QAAA,qEAAS;QAAA,4DAAY;QAChC,uEAAyE;QAC3E,4DAAiB;QACnB,4DAAM;QACN,0EAAiE;QAC/D,oFAAyD;QAAA,kEAAM;QAAA,4DAAe;QAChF,4DAAM;QAEN,0EAAiB;QACf,sEAA+C;QAC/C,2EAAwC;QACtC,8EAAuE;QAApB,sIAAS,aAAS,IAAC;QAAC,iEAAK;QAAA,4DAAS;QACvF,4DAAM;QACN,2EAAwC;QACtC,8EAAmD;QAAA,kEAAM;QAAA,4DAAS;QACpE,4DAAM;QACR,4DAAM;QACR,4DAAO;;QAtBD,0DAAyB;QAAzB,sFAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACR0C;AAIQ;;;;;;;;;;;;;AAmB1E,MAAM,cAAc;IAuBzB,YAA4C,IAAgB,EAAU,WAAwB,EAAS,SAAuC,EACpI,UAAyB,EAAU,QAAkB,EAAU,UAA6B;QAD1D,SAAI,GAAJ,IAAI,CAAY;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAS,cAAS,GAAT,SAAS,CAA8B;QACpI,eAAU,GAAV,UAAU,CAAe;QAAU,aAAQ,GAAR,QAAQ,CAAU;QAAU,eAAU,GAAV,UAAU,CAAmB;QAnBtG,mBAAc,GAAW,EAAE,CAAC;QAC5B,iBAAY,GAAG,IAAI,uDAAW,EAAE,CAAC;QACjC,wBAAmB,GAAG,EAAE,CAAC;QACzB,qBAAgB,GAAa,EAAE,CAAC;QAChC,aAAQ,GAAiB,EAAE,CAAC;QAC5B,2BAAsB,GAAG,IAAI,uDAAW,EAAE,CAAC;QAC3C,uBAAkB,GAAkC,QAAQ,CAAC;QAC7D,qBAAgB,GAAgC,KAAK,CAAC;QAEtD,eAAU,GAAgB,EAAE,CAAC;QAC7B,uBAAkB,GAAW,CAAC,CAAC;QAE/B,aAAQ,GAAe,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE;QAC1I,kBAAa,GAAmB;YAC9B,EAAE,EAAE,CAAC,EAAE,0BAA0B,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE;YAC/F,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAC,8BAA8B,EAAC,IAAI,EAAC,qBAAqB,EAAC,IAAI;SACvL;QAKD,gBAAW,GAAG,6BAA6B,CAAC;QAC5C,eAAU,GAAG,2CAA2C,CAAC;IAHiD,CAAC;IAI3G,QAAQ;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACzC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,+DAAmB,CAAC;YACnD,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE;YACrC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,yBAAyB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC;YACzF,OAAO;SACR;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC1D,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;gBACnE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;4EAvDU,cAAc,kEAuBL,qEAAe;4GAvBxB,cAAc;QCxB3B,yEAAiB;QACf,yEAAoB;QAClB,wEAA4C;QAAA,oEAAS;QAAA,4DAAK;QAC5D,4DAAM;QACN,yEAA8C;QAC5C,8EACqD;QAD3C,wIAAS,WAAO,IAAC;QAC0B,gEAAK;QAAA,4DAAW;QACvE,4DAAM;QACR,4DAAM;QACN,0EAAuD;QAAtB,sIAAU,cAAU,IAAC;QACpD,yEAAwC;QAGtC,oFAAgE;QAC9D,6EAAW;QAAA,qEAAS;QAAA,4DAAY;QAChC,uEAAkF;QACpF,4DAAiB;QACnB,4DAAM;QACN,0EAAiE;QAC/D,oFAAyD;QAAA,kEAAM;QAAA,4DAAe;QAChF,4DAAM;QACN,0EAAiB;QACf,sEAA+C;QAC/C,2EAAwC;QACtC,8EAAuE;QAApB,uIAAS,aAAS,IAAC;QAAC,iEAAK;QAAA,4DAAS;QACvF,4DAAM;QACN,2EAAwC;QACtC,8EAAmD;QAAA,kEAAM;QAAA,4DAAS;QACpE,4DAAM;QACR,4DAAM;QACR,4DAAO;;QArBD,0DAA0B;QAA1B,uFAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;ACP6B;AACF;AAEX;AACE;;;;;;;;;ICiBtC,yEAAgE;IAAC,8DAAE;IAAA,4DAAK;;;IACxE,yEAA+D;IAAC,uDAAe;IAAA,4DAAK;;;IAApB,0DAAe;IAAf,yFAAe;;;IAG/E,yEAAgE;IAAC,qEAAS;IAAA,4DAAK;;;IAC/E,yEAA+D;IAAC,uDAAqB;IAAA,4DAAK;;;IAA1B,0DAAqB;IAArB,+FAAqB;;;IA6BzF,oEAAsF;;;IACtF,oEAA0F;;;IAC1F,yEAAkC;IAC9B,yEAAiC;IAAA,sFAA2B;IAAA,4DAAK;IACrE,4DAAK;;;ADrCN,MAAM,mBAAmB;IAK9B,YAAoB,UAAyB,EAAS,MAAiB;QAAnD,eAAU,GAAV,UAAU,CAAe;QAAS,WAAM,GAAN,MAAM,CAAW;QACvE,qBAAgB,GAAa,CAAC,IAAI,EAAC,UAAU,CAAC,gDAA8C;IADjB,CAAC;IAE5E,QAAQ;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACD,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAChE,CAAC;IACD,UAAU;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yDAAa,EAAE;YAChD,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,uEAAkB,CAAa,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,QAAQ,CAAC,IAAS;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2DAAc,EAAE;YACjD,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;YACpG,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SAEb,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,UAAU,CAAC,IAAS;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,IAAS,EAAE,EAAE;YACvD,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;;sFAjDU,mBAAmB;iHAAnB,mBAAmB;kEACnB,qEAAY;;;;;QCzBzB,wEAAoE;QAAA,uEAAY;QAAA,4DAAK;QACrF,gEAAI;QACJ,yEAAiB;QACb,yEAAsB;QAClB,oFAAsC;QAElC,+EAA4C;QAAA,kEAAO;QAAA,4DAAY;QAC/D,8EAAqG;QAApD,gJAAS,uBAAmB,IAAC;QAA9E,4DAAqG;QACzG,4DAAiB;QACrB,4DAAM;QACV,4DAAM;QAON,qEAA4B;QAC5B,0EAA6B;QACzB,4EAC8B;QAE1B,6EAAgC;QAC5B,gHAAwE;QACxE,gHAAoF;QACxF,qEAAe;QACf,6EAAsC;QAClC,gHAA+E;QAC/E,gHAA0F;QAC9F,qEAAe;QA4Bf,gHAAsF;QACtF,gHAA0F;QAC1F,gHAEK;QAET,4DAAQ;QACZ,4DAAM;QACN,uEAAK;QACD,gFACkE;QAEtE,4DAAM;;QAlDe,2DAA6B;QAA7B,0FAA6B;QAsCI,0DAAiC;QAAjC,iGAAiC;QACtB,0DAA0B;QAA1B,kGAA0B;QAQzC,0DAAoC;QAApC,kJAAoC;;;;;;;;;;;;;;;;;;;;;;;ACtD/E,MAAM,SAAS;IACpB,YAAoB,WAAwB,EAAU,MAAc;QAAhD,gBAAW,GAAX,WAAW,CAAa;QAAU,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAExE,WAAW,CACT,IAA4B,EAC5B,KAA0B;QAE1B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,yCAAyC;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,6CAA6C;QAE5G,IAAI,OAAO,EAAE;YACX,yCAAyC;YACzC,MAAM,MAAM,GAAG,OAAO,CAAC,aAA8B,CAAC,CAAC,6BAA6B;YAEpF,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,iCAAiC;YAE/E,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAChC,OAAO,IAAI,CAAC,CAAC,6BAA6B;aAC3C;SACF;QAED,mEAAmE;QACnE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;;kEAxBU,SAAS;0GAAT,SAAS,WAAT,SAAS,mBAFR,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACT2B;AAE/C,6BAA6B;AACgD;AAC3B;AAEW;AACJ;AACF;AACc;AACJ;AACD;AACT;AACE;AACA;AACW;AACf;AACM;AACA;AACN;AACS;AACT;AACM;AACN;AACU;AACO;AACf;AACF;AACuB;AACR;AACX;AACE;AACG;AACP;AACF;AACU;AACR;AACc;;AAgF9D,MAAM,iBAAiB;;kFAAjB,iBAAiB;8GAAjB,iBAAiB;kHA5EnB;YACP,yDAAY;YAEZ,8DAAc;YACd,yEAAiB;YACjB,yEAAiB;YACjB,qEAAe;YACf,mEAAc;YACd,iFAAqB;YACrB,6EAAmB;YACnB,4EAAkB;YAClB,mEAAc;YACd,sEAAe;YACf,sEAAe;YACf,iFAAoB;YACpB,kEAAa;YACb,wEAAgB;YAChB,wEAAgB;YAChB,kEAAa;YACb,2EAAiB;YACjB,kEAAa;YACb,wEAAgB;YAChB,kEAAa;YACb,4EAAkB;YAClB,mFAAqB;YACrB,oEAAc;YACd,kEAAa;YACb,yFAAwB;YACxB,iFAAoB;YACpB,sEAAe;YACf,wEAAgB;YAChB,2EAAiB;YACjB,oEAAc;YACd,kEAAa;YACb,4EAAkB;YAClB,oEAAe;YACf,kFAAmB;SACpB,EAEC,0FAAuB;QACvB,8DAAc;QACd,yEAAiB;QACjB,yEAAiB;QACjB,qEAAe;QACf,mEAAc;QACd,iFAAqB;QACrB,6EAAmB;QACnB,4EAAkB;QAClB,mEAAc;QACd,sEAAe;QACf,sEAAe;QACf,iFAAoB;QACpB,kEAAa;QACb,wEAAgB;QAChB,wEAAgB;QAChB,kEAAa;QACb,2EAAiB;QACjB,kEAAa;QACb,wEAAgB;QAChB,kEAAa;QACb,4EAAkB;QAClB,mFAAqB;QACrB,oEAAc;QACd,kEAAa;QACb,yFAAwB;QACxB,iFAAoB;QACpB,sEAAe;QACf,wEAAgB;QAChB,2EAAiB;QACjB,oEAAc;QACd,kEAAa;QACb,4EAAkB;QAClB,oEAAe;QACf,kFAAmB;mIAGV,iBAAiB,cA3E1B,yDAAY;QAEZ,8DAAc;QACd,yEAAiB;QACjB,yEAAiB;QACjB,qEAAe;QACf,mEAAc;QACd,iFAAqB;QACrB,6EAAmB;QACnB,4EAAkB;QAClB,mEAAc;QACd,sEAAe;QACf,sEAAe;QACf,iFAAoB;QACpB,kEAAa;QACb,wEAAgB;QAChB,wEAAgB;QAChB,kEAAa;QACb,2EAAiB;QACjB,kEAAa;QACb,wEAAgB;QAChB,kEAAa;QACb,4EAAkB;QAClB,mFAAqB;QACrB,oEAAc;QACd,kEAAa;QACb,yFAAwB;QACxB,iFAAoB;QACpB,sEAAe;QACf,wEAAgB;QAChB,2EAAiB;QACjB,oEAAc;QACd,kEAAa;QACb,4EAAkB;QAClB,oEAAe;QACf,kFAAmB,aAGnB,0FAAuB;QACvB,8DAAc;QACd,yEAAiB;QACjB,yEAAiB;QACjB,qEAAe;QACf,mEAAc;QACd,iFAAqB;QACrB,6EAAmB;QACnB,4EAAkB;QAClB,mEAAc;QACd,sEAAe;QACf,sEAAe;QACf,iFAAoB;QACpB,kEAAa;QACb,wEAAgB;QAChB,wEAAgB;QAChB,kEAAa;QACb,2EAAiB;QACjB,kEAAa;QACb,wEAAgB;QAChB,kEAAa;QACb,4EAAkB;QAClB,mFAAqB;QACrB,oEAAc;QACd,kEAAa;QACb,yFAAwB;QACxB,iFAAoB;QACpB,sEAAe;QACf,wEAAgB;QAChB,2EAAiB;QACjB,oEAAc;QACd,kEAAa;QACb,4EAAkB;QAClB,oEAAe;QACf,kFAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClH4F;AACW;AAC/F;AACoB;;;;;;;;;;;;;;;;;;;;;;;ICmBhD,4EAA2D;IAAlB,2TAAiB;IAAC,iEAAM;IAAA,2EAAU;IAAA,gEAAK;IAAA,4DAAW;IAAA,4DAAS;;;;IAvBvG,yEAA8D;IAC7D,iFACoB;IACnB,4EAAkC;IACjC,oEAAkD;IACnD,4DAAS;IAIT,qEAAoB;IAEpB,yEAAoB;IAElB,4EAAyC;IAArB,mTAAoB;IACvC,2EAAU;IAAA,0EAAe;IAAA,4DAAW;IACpC,qEAAS;IAAA,4DAAS;IAElB,6EAA+C;IAA3B,0TAA0B;IAE7C,6EAAgB;IAAA,4DAAS;IAI5B,0HAAoG;IACrG,4DAAM;IAEP,4DAAc;IAEd,0EAAmB;IAClB,2EAAiB;IAChB,2EAAoB;IACnB,0EAAoE;IAAA,0GAA8C;IAAA,4DAAK;IACvH,iEAAI;IACJ,iEAAI;IAIL,4DAAM;IAEP,4DAAM;IACP,4DAAM;IAIP,4DAAM;;;IArBiB,2DAAmB;IAAnB,sFAAmB;;;;IA8DtB,4EAA2D;IAAnB,+TAAkB;IACtD,2EAAU;IAAA,kEAAO;IAAA,4DAAW;IAC5B,qEAAS;IAAA,4DAAS;;;IAyBnC,uEAA0C;IAC3C,oFAAmF;IACjF,0EAAyD;IAC1D,+EAAwB;IAAA,uDAAkB;IAAA,4DAAW;IACrD,qEAAK;IAAA,uDAAmB;IAAA,4DAAK;IAC5B,4DAAM;IACR,4DAAgB;IACf,4DAAO;;;IANO,0DAA6B;IAA7B,0FAA6B;IAEnB,0DAAkB;IAAlB,mFAAkB;IACrC,0DAAmB;IAAnB,oFAAmB;;;IAfjB,uEAAwD;IAClE,gFAAe;IACd,sFAAqB;IACnB,6FAA4B;IAC7B,kFAAiB;IACf,0EAAyD;IAC1D,+EAAwB;IAAA,uDAAiB;IAAA,4DAAW;IACpD,qEAAK;IAAA,uDAAkB;IAAA,4DAAK;IAC3B,4DAAM;IACR,4DAAkB;IACjB,4DAA6B;IAC7B,8IAOO;IACT,4DAAsB;IACrB,4DAAgB;IACN,4DAAO;;;IAfQ,0DAAiB;IAAjB,kFAAiB;IACpC,0DAAkB;IAAlB,mFAAkB;IAIC,0DAAgB;IAAhB,sFAAgB;;;IAW/B,uEAA2D;IACzD,oFAAmF;IAC/E,+EAAwB;IAAA,uDAAiB;IAAA,4DAAW;IACpD,qEAAK;IAAA,uDAAkB;IAAA,4DAAK;IAChC,4DAAgB;IAClB,4DAAO;;;IAJU,0DAA4B;IAA5B,yFAA4B;IACf,0DAAiB;IAAjB,kFAAiB;IACpC,0DAAkB;IAAlB,mFAAkB;;;IA1BjC,+EAA8C;IAC5C,sIAqBS;IACP,qIAKO;IACX,4DAAe;;;IA5BN,0DAA+C;IAA/C,mHAA+C;IAsB7C,0DAAkD;IAAlD,sHAAkD;;;;IA5EzE,yEAA8D;IAC1D,iFAAuH;IAErH,4EAA2C;IAAxB,yTAAuB;IACxC,2EAAU;IAAA,+DAAI;IAAA,4DAAW;IAC3B,4DAAS;IAET,4EAAmC;IACjC,oEAAkD;IACpD,4DAAS;IAET,0EAAiF;IAE/E,sEAA8B;IAEhC,4DAAM;IAEN,qEAAoB;IACpB,2EAA+D;IACnE,6EAA0C;IAAvB,yTAAsB;IAAC,gFAAmC;IAAA,wEAAY;IAAA,4DAAW;IAAA,4DAAS;IAC7G,8EAAiF;IAAC,wDACjF;IAAA,4EAAU;IAAA,0EAAc;IAAA,4DAAW;IAAA,4DAAS;IACvC,oFAAqD;IACjD,gFAA4F;IAC5F,2EAAyC;IACzC,2EAAmB;IAAA,6EAAsD;IAAG,4DAAM;IAClF,2EAAmB;IACf,2EAA4C;IAAC,yEAA4B;IAAC,wDAAc;IAAA,4DAAI;IAAC,4DAAM;IACnG,2EAA4C;IAAA,0EAA6B;IAAC,wDAAU;IAAA,4DAAK;IAAA,4DAAM;IACnG,4DAAM;IAIN,4DAAM;IAEN,4DAAW;IACX,2EAAiB;IACb,2EAA+C;IAC3C,0HAEsB;IACd,4DAAM;IACV,4DAAM;IACpB,4DAAW;IAGf,4DAAM;IAER,4DAAc;IAEd,4FAAuK;IAEnK,sFAA4F;IACxF,uIA6Be;IACnB,4DAAa;IAuCb,2EAA4B;IACxB,4EAA+B;IAC/B,4EAA0D;IAAA,wDAA8C;IAAA,4DAAO;IACjH,4DAAM;IACZ,4DAAuB;IAKzB,4DAAM;;;;IA/Ga,2DAAgC;IAAhC,kFAAgC;IAA+B,0DACjF;IADiF,2FACjF;IAIkD,0DAAiB;IAAjB,4FAAiB;IAEoB,0DAAc;IAAd,2FAAc;IACd,0DAAU;IAAV,wFAAU;IAU5D,0DAAkB;IAAlB,qFAAkB;IAY6C,0DAAqB;IAArB,8EAAqB;IAGjF,0DAAY;IAAZ,qFAAY;IAuEe,0DAA8C;IAA9C,gIAA8C;;ADtJ7G,MAAM,IAAI,GAAW;IAC1B,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAG,WAAW,EAAC;IACtE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAG,kBAAkB,EAAC;IACvF,EAAE,QAAQ,EAAE,uBAAuB,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAG,YAAY,EAAC;IAC1F,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAG,OAAO,EAAC;IACvD,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAG,WAAW,EAAC;IAC/D,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAG,YAAY,EAAC;IACpE,EAAC,KAAK,EAAE,eAAe;QACrB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR;gBACE,KAAK,EAAE,sBAAsB;gBAC7B,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,gBAAgB;aAC3B;YACD;gBACE,KAAK,EAAE,sBAAsB;gBAC7B,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,gBAAgB;aAC3B;SACA;KACF;CACJ,CAAC;AAOK,MAAM,gBAAgB;IAoB3B,YACqC,eAAuC,EAClE,WAAwB,EACxB,oBAA0C,EAAQ,MAAiB,EAAS,IAAgB,EAAU,YAA0B,EAAS,MAAa,EACvJ,KAAwB;QAHI,oBAAe,GAAf,eAAe,CAAwB;QAClE,gBAAW,GAAX,WAAW,CAAa;QACxB,yBAAoB,GAApB,oBAAoB,CAAsB;QAAQ,WAAM,GAAN,MAAM,CAAW;QAAS,SAAI,GAAJ,IAAI,CAAY;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAAS,WAAM,GAAN,MAAM,CAAO;QACvJ,UAAK,GAAL,KAAK,CAAmB;QArBjC,aAAQ,GAAG,KAAK,CAAC;QACjB,iBAAY,GAAG,KAAK,CAAC;QACJ,iBAAY,GAAG,IAAI,yCAAO,EAAQ,CAAC;QAMpD,WAAM,GAAG,KAAK,CAAC;QACf,gBAAW,GAAY,IAAI,CAAC;QAC5B,gBAAW,GAAW,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE/C,WAAM,GAAG;YACP,EAAE,IAAI,EAAE,gCAAgC,EAAE;YAC1C,EAAE,IAAI,EAAE,iCAAiC,EAAE;YAC3C,EAAE,IAAI,EAAE,iCAAiC,EAAE;SAC5C;IAMG,CAAC;IACL,QAAQ;QACN,IAAI,CAAC,oBAAoB,CAAC,WAAW;aAClC,IAAI,CACH,sDAAM,CAAC,CAAC,MAAyB,EAAE,EAAE,CAAC,MAAM,KAAK,uEAAsB,CAAC,EACxE,yDAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAC7B;aACA,SAAS,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,eAAe,EAAE,CAAC;YAExB;;;;;;;;;;;;;;;iBAeK;YACC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;gBACrE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,IAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAClB;oBACE,cAAc,CAAC,OAAO,CAAC,WAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACtD,cAAc,CAAC,OAAO,CAAC,UAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBACpD,cAAc,CAAC,OAAO,CAAC,UAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBACpD,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACnD,cAAc,CAAC,OAAO,CAAC,MAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC5C,cAAc,CAAC,OAAO,CAAC,YAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAChD,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBAChD,cAAc,CAAC,OAAO,CAAC,WAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACtD,cAAc,CAAC,OAAO,CAAC,iBAAiB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;oBAClE,cAAc,CAAC,OAAO,CAAC,UAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAEpD,IAAG,IAAI,CAAC,MAAM,GAAE,CAAC,EACjB;wBACE,cAAc,CAAC,OAAO,CAAC,YAAY,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBACvD,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;wBACtD,cAAc,CAAC,OAAO,CAAC,WAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;qBACtD;yBAED;wBACE,cAAc,CAAC,OAAO,CAAC,YAAY,EAAC,EAAE,CAAC,CAAC;wBACxC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;wBACxC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAC,EAAE,CAAC,CAAC;qBAExC;oBACD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC5C,IAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAE,QAAQ,EAAC;wBAC1C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;qBACpD;yBAAK,IAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAE,KAAK,EAC9C;wBACE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;qBACtC;yBACI,IAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,kBAAkB,EAC5D;wBACE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;qBAChD;yBACG;wBACF,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;qBAC9C;oBACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;iBACzB;qBACG;oBACF,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,mDAAmD,EAAC,cAAc,CAAC,CAAC;oBAC5F,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;iBAC3B;YACH,CAAC,CAAC,CAAC;QACT,CAAC,CAAC,CAAC;IACP,CAAC;IAGD,eAAe;QAEb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1E,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9D;;;;;;;;;;;;UAYE;IACH,CAAC;IAEF,WAAW;QAET,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;IAC7B,CAAC;IAGD,UAAU;QACR,IAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAE,QAAQ,EAC3C;YACA,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;SACrC;aACG;YACF,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;SACvC;IACH,CAAC;IAGC,QAAQ,CAAC,QAAQ;QACjB,MAAM,CAAC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,CAAC;IACxC,CAAC;IAGD;;;;;;;;;;;;;;OAcG;IAML,KAAK;QACH,IAAI,IAAI,CAAC,eAAe,CAAC,eAAe,KAAK,sEAAqB,EAAE;YAClE,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;gBACpC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,kBAAK,IAAI,CAAC,eAAe,CAAC,WAAW,CAAkB,CAAC;qBACjF,SAAS,CAAC,CAAC,QAA8B,EAAE,EAAE;oBAC5C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;aACN;iBAAM;gBACL,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;qBAC1B,SAAS,CAAC,CAAC,QAA8B,EAAE,EAAE;oBAC5C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;aACN;SACF;aAAM;YACL,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;gBACpC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,kBAAK,IAAI,CAAC,eAAe,CAAC,WAAW,CAAqB,CAAC,CAAC;aAC5F;iBAAM;gBACL,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;aAClC;SACF;IACH,CAAC;IAGH,QAAQ;QAEN,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACjE,CAAC;IACD,cAAc;QAEZ,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACvE,CAAC;IAGC,MAAM;QAEJ,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACvC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACxC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACvC,cAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC7C,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACxC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACvC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,eAAe,CAAC,eAAe,KAAK,sEAAqB,EAAE;YAClE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;gBAC3B,qBAAqB,EAAE,GAAG;gBAC1B,qBAAqB,EAAE,GAAG;aAC3B,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;gBAC9B,qBAAqB,EAAE,GAAG;aAC3B,CAAC,CAAC;SACJ;QACF;;;;;;;;;aASK;IACN,CAAC;IACD,WAAW;QACT,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;;gFA/OU,gBAAgB,kEAqBjB,kEAAiB;8GArBhB,gBAAgB;QClD7B,6GA4CM;QAGN,8GAmIQ;;QAlLF,2FAAyB;QA+CzB,0DAAwB;QAAxB,0FAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9CsD;AACvB;AACF;AAGiC;AAG3C;;;;;;;;;;;;;;;;;;;;ICkBrC,yEAAgG;IAAA,6DAAE;IAAA,4DAAK;;;IAAzD,+EAAe;;;IAC7D,yEAA+E;IAAA,uDAAoB;IAAA,4DAAK;;;;IAAnE,+EAAe;IAA2B,0DAAoB;IAApB,mFAAoB;;;IAIvG,yEAAgF;IAAA,qEAAU;IAAA,4DAAK;;;IAC/F,yEAA+D;IAAA,uDAAuB;IAAA,4DAAK;;;IAA5B,0DAAuB;IAAvB,sFAAuB;;;IAIlF,yEAAgF;IAAA,oEAAS;IAAA,4DAAK;;;IAC9F,yEAA+D;IAAA,uDAAsB;IAAA,4DAAK;;;IAA3B,0DAAsB;IAAtB,qFAAsB;;;IAIrF,yEAAgF;IAAA,gEAAK;IAAA,4DAAK;;;IAC1F,yEAA+D;IAAA,uDAAmB;IAAA,4DAAK;;;IAAxB,0DAAmB;IAAnB,kFAAmB;;;IAItF,yEAAgF;IAAA,+DAAI;IAAA,4DAAK;;;IACzF,yEAA+D;IAAA,uDAAkB;IAAA,4DAAK;;;IAAvB,0DAAkB;IAAlB,iFAAkB;;;IAIjF,yEAAgF;IAAA,iEAAM;IAAA,4DAAK;;;IAC3F,yEAA+D;IAAA,uDAAwB;IAAA,4DAAK;;;IAA7B,0DAAwB;IAAxB,uFAAwB;;;IAGvF,yEAAgF;IAAA,iEAAM;IAAA,4DAAK;;;IAC3F,yEAA+D;IAAA,uDAA8C;IAAA,4DAAK;;;IAAnD,0DAA8C;IAA9C,6GAA8C;;;IAG3G,yEAAgF;IAAA,iEAAM;IAAA,4DAAK;;;;IAC3F,yEAA8E;IAC5E,6EAAyB;IACvB,+EAAiF;IAAvC,oZAAqC;IAAE,+DAAI;IAAA,4DAAW;IAClG,4DAAS;IAIX,4DAAK;;;IAGR,oEAA4D;;;IAC5D,oEAAqE;;;IAErE,yEAAkC;IAChC,yEAAgE;IAAA,uFAA4B;IAAA,4DAAK;IACnG,4DAAK;;;;ICtDF,4EAAyD;IAAA,6EAAkB;IAAA,4DAAY;;;;IAG3F,0EAA0C;IACxC,6EAA+F;IAAnD,qUAAoB;IAA+B,2EAAgB;IAAA,4DAAS;IAC1H,4DAAM;;;;IACN,0EAAyC;IACvC,oFAAqC;IACnC,+EAA0C;IAAA,qEAAU;IAAA,4DAAY;IAChE,4EACiG;IADrE,0XAA4C;IAAxE,4DACiG;IACnG,4DAAiB;IACnB,4DAAM;;;IAH0B,0DAA4C;IAA5C,0GAA4C;;;;IAI5E,0EAAyC;IACvC,oFAAqC;IACnC,+EAA0C;IAAA,oEAAS;IAAA,4DAAY;IAC/D,4EAC+F;IADnE,yXAA2C;IAAvE,4DAC+F;IACjG,4DAAiB;IACnB,4DAAM;;;IAH0B,0DAA2C;IAA3C,yGAA2C;;;;IAgBrE,iFAAuI;IAAtC,2aAAqC;IAAC,uDAAiB;IAAA,4DAAa;;;IAA5F,oFAAuB;IAAuC,0DAAiB;IAAjB,kFAAiB;;;;IAJ9J,0EAA0C;IACxC,qFAA+F;IAC7F,+EAA0C;IAAA,+DAAI;IAAA,4DAAY;IAC1D,iFAA2E;IAAxC,0XAAuC;IACxE,mJAAqK;IACvK,4DAAa;IACf,4DAAiB;IACnB,4DAAM;;;IAJiC,0DAAuC;IAAvC,qGAAuC;IACX,0DAAU;IAAV,mFAAU;;;;IAQvE,iFAA6I;IAA1C,ibAAyC;IAAC,uDAAe;IAAA,4DAAa;;;IAA5F,kFAAqB;IAA2C,0DAAe;IAAf,gFAAe;;;;IAJlK,0EAA4D;IAC1D,qFAA+F;IAC7F,+EAA0C;IAAA,wEAAa;IAAA,4DAAY;IACnE,iFAAwF;IAA9C,gYAA6C;IACrF,mJAAyK;IAC3K,4DAAa;IACf,4DAAiB;IACnB,4DAAM;;;IAJwC,0DAA6C;IAA7C,2GAA6C;IACtB,0DAAY;IAAZ,qFAAY;;;;IAIjF,0EAA0C;IACxC,mFAA6G;IAA5C,gYAA2C;IAC1G,0EAAqC;IAAA,iEAAM;IAAA,4DAAO;IACpD,4DAAe;IACjB,4DAAM;;;IAHqC,0DAAuB;IAAvB,uFAAuB;;;;IAehE,6EACc;IADmD,8UAAgB;IACnE,+DAAI;IAAA,4DAAS;;;;IAC3B,6EACc;IADkD,gVAAkB;IACpE,iEAAM;IAAA,4DAAS;;;;IALjC,0EAA4C;IAC1C,0EAAsD;IACpD,2IAC2B;IAC3B,2IAC6B;IAC7B,6EAAgF;IAAtB,yUAAqB;IAAC,iEAAM;IAAA,4DAAS;IACjG,4DAAM;IACR,4DAAM;;;IAN2C,0DAAkB;IAAlB,qFAAkB;IAElB,0DAAiB;IAAjB,oFAAiB;;;AFxD/D,MAAM,wBAAwB;IAEnC,YAAoB,UAAwB,EAAS,QAAqB,EAAQ,MAAiB;QAA/E,eAAU,GAAV,UAAU,CAAc;QAAS,aAAQ,GAAR,QAAQ,CAAa;QAAQ,WAAM,GAAN,MAAM,CAAW;QAGnG,gBAAW,GAAY,KAAK,CAAC;QAE7B,SAAI,GAAY,IAAI,CAAC;QAErB,qBAAgB,GAAa,CAAC,WAAW,EAAC,UAAU,EAAC,OAAO,EAAC,MAAM,EAAC,YAAY,EAAC,UAAU,EAAC,QAAQ,CAAC,CAAC;IAPE,CAAC;IASzG,QAAQ;QACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACf,IAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAE,QAAQ,EAAC;YAC3C,IAAI,CAAC,QAAQ,GAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;SACzD;aAAI;YACH,IAAI,CAAC,QAAQ,GAAC,CAAC,CAAC;SACjB;QACD,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YACxD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAE,IAAI,uEAAkB,CAAuB,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,MAAM,WAAW,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE1D,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACvC;IACH,CAAC;IAED,aAAa;QACX,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAC;YACnE,MAAM,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;SACd,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC;YAChC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACZ,IAAG,GAAG,EAAC;oBACL,IAAI,CAAC,iBAAiB,EAAE,CAAC;iBAC1B;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;YAClC,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,QAAQ;YAC5B,UAAU,EAAE,CAAC,KAAK,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,CAAC,IAAQ;QACb,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAC,IAAI,CAAC;QAC1B,IAAI,OAAO,CAAC,kCAAkC,CAAC,EAAE;YACjD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;gBACxD,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;gBACzE,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;SACH;IACF,CAAC;IACC,kBAAkB,CAAC,IAAU;QAC3B,QAAQ,CAAC;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAC;YACpE,IAAI;YACJ,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SACb,CAAC;QACF,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC;YAChC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACZ,IAAG,GAAG,EAAC;oBACL,IAAI,CAAC,iBAAiB,EAAE,CAAC;iBAC1B;YACH,CAAC;SACF,CAAC;IACH,CAAC;;gGArFQ,wBAAwB;sHAAxB,wBAAwB;kEAGxB,qEAAY;kEACZ,2DAAO;;;;;;QChCpB,2EAAU;QACN,sEAAM;QACJ,wEAAyD;QAAA,4EAAiB;QAAA,4DAAK;QAC/E,4EACwC;QAA1B,gJAAS,mBAAe,IAAC;QAAC,8DAAG;QAAA,4DAAS;QACtD,4DAAM;QACV,4DAAW;QAGX,2EAAW;QAEP,yEAAyC;QACvC,yEAAyB;QACrB,oFAAqC;QACnC,gFAA0C;QAAA,kEAAM;QAAA,4DAAY;QAC5D,+EAA2E;QAA3D,sJAAS,uBAAmB,IAAC;QAA7C,4DAA2E;QAC7E,4DAAiB;QACnB,4DAAM;QACV,4DAAM;QAER,0EAA6B;QAC3B,0EAA8B;QAE7B,iFACyD;QAEtD,6EAAqC;QACjC,qHAAuG;QACvG,qHAAwG;QAC5G,qEAAe;QAEf,6EAAuC;QACvC,qHAA+F;QAC/F,qHAA2F;QAC3F,qEAAe;QAEf,6EAAsC;QAClC,qHAA8F;QAC9F,qHAA0F;QAC9F,qEAAe;QAEf,6EAAmC;QAC/B,qHAA0F;QAC1F,qHAAuF;QAC3F,qEAAe;QAEjB,6EAAkC;QAChC,qHAAyF;QACzF,qHAAsF;QACxF,qEAAe;QAEf,6EAAwC;QACtC,qHAA2F;QAC3F,qHAA4F;QAC9F,qEAAe;QACf,6EAAsC;QACpC,qHAA2F;QAC3F,qHAAkH;QACpH,qEAAe;QACb,6EAAoC;QAClC,qHAA2F;QAC3F,qHAOK;QACP,qEAAe;QAEhB,qHAA4D;QAC5D,qHAAqE;QAErE,qHAEK;QACP,4DAAQ;QACR,gFAAgK;QACjK,4DAAM;QACR,4DAAM;QACR,4DAAW;;QA1DoC,2DAAyB;QAAzB,sFAAyB;QAgD7C,2DAAiC;QAAjC,iGAAiC;QAChB,0DAAyB;QAAzB,kGAAyB;QAMlB,0DAAoC;QAApC,kJAAoC;;ADuE9E,MAAM,iCAAiC;IAmB5C,YAA4C,IAAS,EAAQ,SAA0D,EAC/G,QAAqB,EAAS,YAAyB,EAAU,UAAyB;QADtD,SAAI,GAAJ,IAAI,CAAK;QAAQ,cAAS,GAAT,SAAS,CAAiD;QAC/G,aAAQ,GAAR,QAAQ,CAAa;QAAS,iBAAY,GAAZ,YAAY,CAAa;QAAU,eAAU,GAAV,UAAU,CAAe;QAlBlG,gBAAW,GAAW,KAAK,CAAC;QAC5B,cAAS,GAAW,IAAI,CAAC;QACzB,eAAU,GAAY,KAAK,CAAC;QAC5B,mBAAc,GAAS,KAAK,CAAC;QAC7B,eAAU,GAAY,IAAI,CAAC;QAC3B,oBAAe,GAAY,KAAK,CAAC;QAGjC,yBAAoB,GAAwB,EAA0B,CAAC;QACvE,iBAAY,GAAc,EAAC,EAAE,EAAC,CAAC,EAAC,SAAS,EAAC,EAAE,EAAC,QAAQ,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,EAAE,EAAC,QAAQ,EAAC,IAAI;YAC3G,SAAS,EAAC,CAAC,EAAC,WAAW,EAAC,IAAI,IAAI,EAAE,EAAC,SAAS,EAAC,CAAC,EAAC,WAAW,EAAC,IAAI,IAAI,EAAE;SACtE,CAAC;QACF,YAAO,GAAW,EAAE,CAAC;QACrB,cAAS,GAAa,EAAE,CAAC;QACzB,eAAU,GAAS,KAAK,CAAC;QACzB,qBAAgB,GAAS,KAAK,CAAC;QAC/B,eAAU,GAAS,KAAK,CAAC;QAIvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,IAAG,IAAI,CAAC,IAAI,IAAG,IAAI,IAAI,IAAI,CAAC,IAAI,IAAG,SAAS;YAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC;YACrC,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAC,EAAE,gEAAmB,CAAC;YAC3E,WAAW,EAAE,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,IAAG,SAAS,IAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAE,QAAQ,EAAC,MAAK,EAAC,CAAC,IAAI,EAAC,CAAC;YACtG,UAAU,EAAE,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAC,CAAC,IAAI,CAAC,IAAI,IAAG,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAE,QAAQ,EAAC,MAAK,EAAC,CAAC,IAAI,EAAC,CAAC;YACnG,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC;YACtC,YAAY,EAAE,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC;SAE7C,CAAC,CAAC;IACL,CAAC;IAEH,QAAQ;QACN,OAAO,CAAC,GAAG,CAAC,WAAW,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;;YAC7D,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC;YACrB,QAAQ,CAAC;YACT,IAAG,IAAI,CAAC,IAAI,IAAI,SAAS,EAAC;gBACxB,IAAG,CAAC,WAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,QAAQ,CAAC,SAAS,CAAC,GAAC;oBACvC,UAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,0CAAE,OAAO,EAAE,CAAC;oBACzC,IAAI,CAAC,gBAAgB,GAAC,IAAI,CAAC;oBAC3B,iDAAiD;oBACjD,gDAAgD;oBAChD,UAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,0CAAE,OAAO,EAAE,CAAC;iBAChD;qBACG;oBACF,IAAI,CAAC,UAAU,GAAE,IAAI,CAAC;iBACvB;aACF;YACD,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,0BAA0B;YAC1B,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;gBACrD,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC;gBAClB,IAAG,IAAI,CAAC,UAAU,IAAG,IAAI,CAAC,UAAU,EAAC;oBACnC,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,OAAO;iBAC3B;qBACI,IAAG,IAAI,CAAC,UAAU,IAAG,CAAC,IAAI,CAAC,UAAU,EAAC;oBACzC,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAE,KAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC;iBACpE;qBACI,IAAG,CAAC,IAAI,CAAC,gBAAgB,EAAC;oBAC7B,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAE,KAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC;iBACpE;gBACD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAC,IAAI,CAAC,OAAO,CAAC;gBACnC,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;oBACvD,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC;oBACpB,IAAG,IAAI,CAAC,IAAI,IAAG,IAAI,IAAI,IAAI,CAAC,IAAI,IAAG,SAAS,EAC1C;wBACE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAC,IAAI,CAAC,IAAI,CAAC;wBAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;wBACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;wBACvB,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;wBACpD,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBAC1D,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;wBACxD,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;wBAClD,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;wBACpD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;wBACxD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC9C,IAAI,CAAC,oBAAoB,CAAC,UAAU,GAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;wBAC1D,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;wBACvD,IAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAE,QAAQ,EAAC;4BAC1B,IAAI,CAAC,cAAc,GAAC,IAAI,CAAC;yBAC1B;qBACF;oBACD,IAAI,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBACnD,IAAI,MAAM,GAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACxD,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,cAAc;QACZ,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YACrD,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC;YAClB,QAAQ,CAAC;YACT,IAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAC;gBACpC,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,OAAO;aAC3B;iBACI,IAAG,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAC;gBAC1C,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAE,KAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC;aACpE;iBACI,IAAG,CAAC,IAAI,CAAC,gBAAgB,EAAC;gBAC7B,IAAI,CAAC,OAAO,GAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAE,KAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC;aACpE;YACD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAC,IAAI,CAAC,OAAO,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,gBAAgB;QACd,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAQ,EAAC,EAAE;YACvD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,IAAE,SAAS,EAAC;YAC1C,IAAI,CAAC,cAAc,CAAC,yBAAyB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;YAC9E,OAAM;SACP;QACD,IAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAE,EAAE,EAAC;YAC1C,IAAI,CAAC,cAAc,CAAC,yBAAyB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;YAC9E,OAAM;SACP;aAEG;YACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;gBAC7E,IAAI,EAAE,CAAC,IAAS,EAAE,EAAE;;oBAElB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAElB,IAAI,IAAI,EAAE;wBACR,IAAI,CAAC,UAAU,GAAC,IAAI,CAAC;wBACrB,IAAI,CAAC,gBAAgB,GAAC,KAAK,CAAC;wBAC5B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;wBACjC,IAAI,CAAC,cAAc,EAAE,CAAC;qBACvB;yBACI,IAAG,CAAC,WAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,0CAAE,QAAQ,CAAC,SAAS,CAAC,GAAC;wBAC1D,IAAI,CAAC,gBAAgB,GAAC,IAAI,CAAC;wBAC3B,IAAI,CAAC,UAAU,GAAC,KAAK,CAAC;wBACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;wBACnC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC;wBAC1C,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAC,QAAQ,EAAG,IAAI,EAAC,CAAC,CAAC;wBAEhD,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAC,QAAQ,CAAC;wBACxC,UAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,0CAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAClD,UAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,0CAAE,OAAO,EAAE,CAAC;wBAGzC,UAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,0CAAE,MAAM,EAAE,CAAC;wBAC7C,UAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,0CAAE,MAAM,EAAE,CAAC;wBAE5C,IAAI,CAAC,cAAc,GAAC,IAAI,CAAC;wBACzB,IAAI,CAAC,cAAc,EAAE,CAAC;wBACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;qBACzB;yBAAM;wBAEL,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;qBAEtE;gBAEH,CAAC;gBAED,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;oBAElB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAEjB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;oBAEnE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBAE1B,CAAC;aACF,CAAC,CAAC;SACJ;IAEH,CAAC;IAGD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;YAClC,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,KAAK;YACvB,kBAAkB,EAAE,QAAQ;YAC5B,UAAU,EAAE,CAAC,KAAK,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,YAAY,CAAC,QAAQ;QACnB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAG,QAAQ,IAAE,QAAQ,EAAC;YACpB,IAAI,CAAC,cAAc,GAAC,IAAI,CAAC;YACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;aAAI;YACH,IAAI,CAAC,cAAc,GAAC,KAAK,CAAC;SAC3B;IACH,CAAC;IACD,cAAc,CAAC,QAAQ;QACrB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAC,QAAQ,CAAC;IAC9C,CAAC;IACD,IAAI;;QAEF,OAAO,CAAC,GAAG,CAAC,UAAI,CAAC,YAAY,CAAC,WAAW,EAAE,0CAAE,IAAI,CAAC,CAAC;QACnD,IAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAC;YAC7D,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;YAC3E,OAAO;SACR;QACD,IAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAC;YAC5D,IAAI,CAAC,cAAc,CAAC,uBAAuB,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;YAC1E,OAAO;SACR;QACD,IAAG,CAAC,WAAI,CAAC,YAAY,CAAC,WAAW,EAAE,0CAAE,IAAI,GAAC;YACxC,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;YACvE,OAAO;SACR;QACD,IAAG,WAAI,CAAC,YAAY,CAAC,WAAW,EAAE,0CAAE,IAAI,KAAE,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAC;YAC1F,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;YACzE,OAAO;SACR;QACF,IAAI,CAAC,YAAY,CAAC,EAAE,GAAC,CAAC,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,SAAS,GAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;QAChE,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QAC9D,IAAI,CAAC,YAAY,CAAC,KAAK,GAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,MAAM,GAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QAC9D,IAAI,CAAC,YAAY,CAAC,IAAI,GAAC,UAAI,CAAC,YAAY,CAAC,WAAW,EAAE,0CAAE,IAAI,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,MAAM,GAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QAC5D,IAAI,CAAC,YAAY,CAAC,SAAS,GAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,CAAC,WAAW,GAAC,IAAI,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;YAChD,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;gBACjB,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;gBAC3E,mBAAmB;gBACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YACD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;gBAClB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;gBAC5D,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,MAAM;;QACJ,IAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAC;YAC7D,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;YAC3E,OAAO;SACR;QACD,IAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAC;YAC5D,IAAI,CAAC,cAAc,CAAC,uBAAuB,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;YAC1E,OAAO;SACR;QACD,IAAG,CAAC,WAAI,CAAC,YAAY,CAAC,WAAW,EAAE,0CAAE,IAAI,GAAC;YACxC,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;YACvE,OAAO;SACR;QACD,IAAG,WAAI,CAAC,YAAY,CAAC,WAAW,EAAE,0CAAE,IAAI,KAAE,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAC;YAC1F,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;YACzE,OAAO;SACR;QACD,IAAI,CAAC,YAAY,CAAC,EAAE,GAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,SAAS,GAAE,CAAC,IAAI,CAAC,IAAI,IAAG,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAE,QAAQ,CAAC,CAAC,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAC,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACxI,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAC,CAAC,IAAI,CAAC,IAAI,IAAG,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAE,QAAQ,CAAC,CAAC,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAC,KAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpI,IAAI,CAAC,YAAY,CAAC,KAAK,GAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,GAAC,UAAI,CAAC,YAAY,CAAC,WAAW,EAAE,0CAAE,IAAI,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,MAAM,GAAC,WAAI,CAAC,YAAY,CAAC,WAAW,EAAE,0CAAE,IAAI,KAAG,QAAQ,EAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAC,KAAI,CAAC;QACnH,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC5D,IAAI,CAAC,YAAY,CAAC,SAAS,GAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,CAAC,WAAW,GAAC,IAAI,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;YAChD,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;gBACjB,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;gBACzE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YACD,KAAK,EAAE,CAAC,GAAQ,EAAE,EAAE;gBAClB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,CAAC;gBAC5D,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;SACF,CAAC;IAEJ,CAAC;IAGD,SAAS;QACP,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAE;QAC9C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;;kHA7SY,iCAAiC,kEAmBxB,qEAAe;+HAnBxB,iCAAiC;QEpJ5C,yEAAiB;QACf,wEAAgD;QAAA,yEAC9C;QAAA,0EAAmC;QAAA,8EAAwH;QAA9G,2JAAS,gBAAY,IAAC;QAAwF,gEAAK;QAAA,4DAAW;QAAA,4DAAO;QACpL,4DAAK;QACP,4DAAM;QACV,0EAAsD;QACpD,yEAAqB;QACnB,yEAAiB;QACf,yEAAsC;QACpC,qFAAqC;QACnC,gFAA0C;QAAA,8DAAE;QAAA,4DAAY;QACxD,4EAC8C;QADlB,2NAAyC;QAArE,4DAC8C;QAChD,4DAAiB;QACnB,4DAAM;QACN,2EAAsB;QACpB,qFAAqC;QACnC,gFAA0C;QAAA,oEAAQ;QAAA,4DAAY;QAC9D,6EAE+B;QAFH,0NAAwC;QAApE,4DAE+B;QAC/B,4IAAuF;QACzF,4DAAiB;QACnB,4DAAM;QACN,gIAEM;QACN,gIAMM;QACN,gIAMM;QACN,0EAAsC;QACpC,qFAAqC;QACnC,gFAA0C;QAAA,yEAAa;QAAA,4DAAY;QACnE,6EAE+B;QAFH,2NAAyC;QAArE,4DAE+B;QACjC,4DAAiB;QACnB,4DAAM;QACN,gIAOM;QACN,gIAOM;QACN,gIAIM;QACR,4DAAM;QASN,gIAQM;QACR,4DAAM;QACR,4DAAO;;QApFoB,0DAA0B;QAA1B,uFAA0B;QAGzB,0DAAe;QAAf,wEAAe;QAGL,0DAAyC;QAAzC,oGAAyC;QAOzC,0DAAwC;QAAxC,mGAAwC;QAGxD,0DAA2C;QAA3C,2GAA2C;QAGpC,0DAAiB;QAAjB,iFAAiB;QAGjB,0DAAgB;QAAhB,gFAAgB;QAOhB,0DAAgB;QAAhB,gFAAgB;QAOjB,0DAAe;QAAf,wEAAe;QAGL,0DAAyC;QAAzC,oGAAyC;QAKjD,0DAAgB;QAAhB,gFAAgB;QAQhB,0DAAkC;QAAlC,sGAAkC;QAQlC,0DAAgB;QAAhB,gFAAgB;QAchB,0DAAgB;QAAhB,gFAAgB;;;;;;;;;;;;;;;;;AChFvC,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,oEAAoE;IACjF,SAAS,EAAG,wEAAwE;IACpF,gBAAgB,EAAG,sCAAsC;IAGzD,cAAc,EAAE,SAAS;IACzB,aAAa,EAAC,SAAS;IACvB,mBAAmB,EAAC,CAAC,SAAS,EAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;QACtE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IACpE,eAAe,EAAC,CAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,CAAC,EAAE,iBAAiB;CAE7E,CAAC;;;;;;;;;;;;;;;;;;ACb6C;AAGF;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACvSA;;;;;;;;;;ACAA","sources":["./$_lazy_route_resources|lazy|groupOptions: {}|namespace object","./src/app/ProjectDetails_ABBQualityEngineer/ProjectDetails_ABBQualityEngineer.component.ts","./src/app/ProjectDetails_ABBQualityEngineer/ProjectDetails_ABBQualityEngineer.component.html","./src/app/ProjectDetails_ABB/AddvendorConfigDialog.ts","./src/app/ProjectDetails_ABB/AddvendorConfigDialog.html","./src/app/ProjectDetails_ABB/projectDetails_ABB.component.ts","./src/app/ProjectDetails_ABB/projectDetails_ABB.component.html","./src/app/ProjectDetails_ABB/AddProjectDetails.html","./src/app/ProjectDetails_ABB/ViewProjectDetails_ABB.html","./src/app/ProjectDetails_ABB/EditProjectDetails.html","./src/app/ProjectDetails_ABB/vendor-configuration.component.html","./src/app/ProjectDetails_ABB/EditvendorConfigDialog.html","./src/app/ProjectDetails_ABB/dispute.component.html","./src/app/ProjectDetails_ABB/ViewMaterialReview.html","./src/app/ProjectDetails_Vendor/AddInvoiceDialog.ts","./src/app/ProjectDetails_Vendor/AddInvoiceDialog.html","./src/app/ProjectDetails_Vendor/InvoiceListingdialog.ts","./src/app/ProjectDetails_Vendor/InvoiceListingdialog.html","./src/app/ProjectDetails_Vendor/MaterialReview.ts","./src/app/ProjectDetails_Vendor/MaterialReview.html","./src/app/ProjectDetails_Vendor/ViewVendorMaterialReview.html","./src/app/ProjectDetails_Vendor/ProjectDetails_Vendor.component.ts","./src/app/ProjectDetails_Vendor/ProjectDetails_Vendor.component.html","./src/app/ProjectDetails_Vendor/ViewProjectDetails_Vendor.html","./src/app/ProjectDetails_Vendor/Dispute.component.html","./src/app/ProjectDetails_Vendor/DispatchDialog.html","./src/app/ProjectDetails_Vendor/EditDispatch.html","./src/app/Reports/projectReport.component.ts","./src/app/Reports/projectReport.component.html","./src/app/Services/apiservices.service.ts","./src/app/Services/dispute.service.ts","./src/app/Services/invoice.service.ts","./src/app/Services/loading.interceptor.ts","./src/app/Services/loading.service.ts","./src/app/Services/master.service.ts","./src/app/Services/project-qe-data.service.ts","./src/app/Services/project.service.ts","./src/app/Services/report.service.ts","./src/app/Services/vendor-data.service.ts","./src/app/Vendor/Edit-Vendor.ts","./src/app/Vendor/EditVendordetails.html","./src/app/Vendor/vendor.component.ts","./src/app/Vendor/vendor.component.html","./src/app/Vendor/Addvendordialog.html","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/create-assign-vendor/AddvendorDetailConfigDialog.ts","./src/app/create-assign-vendor/AddvendorDetailConfigDialog.html","./src/app/create-assign-vendor/create-assign-vendor.component.ts","./src/app/create-assign-vendor/create-assign-vendor.component.html","./src/app/create-assign-vendor/EditvendorDetailConfigDialog.html","./src/app/create-assign-vendor/disputeRequest.component.html","./src/app/create-assign-vendor/dispute-listing.component.html","./src/app/create-assign-vendor/attachment_ABB.component.html","./src/app/create-assign-vendor/AddQEDetailsConfig.html","./src/app/dasboard/dasboard.component.ts","./src/app/dasboard/dasboard.component.html","./src/app/dasboard/middle-widgets-right/middle-widgets-right.component.ts","./src/app/dasboard/middle-widgets-right/middle-widgets-right.component.html","./src/app/dasboard/middle-widgets/middle-widgets.component.ts","./src/app/dasboard/middle-widgets/middle-widgets.component.html","./src/app/dasboard/top-widgets/top-widgets.component.ts","./src/app/dasboard/top-widgets/top-widgets.component.html","./src/app/loading/loading-component/loading-component.component.ts","./src/app/loading/loading-component/loading-component.component.html","./src/app/material-elevation.directive.ts","./src/app/material/AddMaterialTypeDialog.ts","./src/app/material/AddMaterialTypeDialog.html","./src/app/material/AddUOMDialog.ts","./src/app/material/AddUOMDialog.html","./src/app/material/EditMaterialTypeDialog.ts","./src/app/material/EditMaterialTypeDialog.html","./src/app/material/EditUOMDialog.ts","./src/app/material/EditUOMDialog.html","./src/app/material/MaterialTypeListingDialog.ts","./src/app/material/MaterialTypeListingDialog.html","./src/app/material/UOMListingDialog.ts","./src/app/material/UOMListingDialog.html","./src/app/material/material.component.ts","./src/app/material/material.component.html","./src/app/material/addMaterialDialog.html","./src/app/material/editMaterialDialog.html","./src/app/review-update-vendor-details/review-update-vendor-details.component.ts","./src/app/review-update-vendor-details/review-update-vendor-details.component.html","./src/app/review-update-vendor-details/ViewVendorMaterialReviewDetails.html","./src/app/review-update-vendor-details/DisputeResolvedDialog.component.html","./src/app/review-update-vendor-details/dispute-listing_vendor.component.html","./src/app/review-update-vendor-details/attachment_vendor.component.html","./src/app/review-verify-material-details/review-verify-material-details.component.ts","./src/app/review-verify-material-details/review-verify-material-details.component.html","./src/app/review-verify-material-details/disputeRequest.component.html","./src/app/review-verify-material-details/dispute-listing.component.html","./src/app/review-verify-material-details/material-details.html","./src/app/role-master/AddRoleMaster.ts","./src/app/role-master/AddRoleMaster.html","./src/app/role-master/EditRoleMaster.ts","./src/app/role-master/EditRoleMaster.html","./src/app/role-master/role-master.component.ts","./src/app/role-master/role-master.component.html","./src/app/role.guard.ts","./src/app/shared/app-material.module.ts","./src/app/sidenav/side-nav.component.ts","./src/app/sidenav/side-nav.component.html","./src/app/user-role-mapping/user-role-mapping.component.ts","./src/app/user-role-mapping/user-role-mapping.component.html","./src/app/user-role-mapping/add-user-role-mapping-dialog.html","./src/environments/environment.stage.ts","./src/main.ts","./node_modules/moment/locale|sync|/^/.*$","ignored|D:\\a\\1\\s\\src\\web\\node_modules\\xlsx-js-style\\dist|fs","ignored|D:\\a\\1\\s\\src\\web\\node_modules\\xlsx-js-style\\dist|stream"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = () => ([]);\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 98255;\nmodule.exports = webpackEmptyAsyncContext;","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators, FormArray, FormControl } from '@angular/forms';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\n\r\n\r\n\r\nimport { VendorMaterialReviewData, ViewVendorMaterialReview } from '../ProjectDetails_Vendor/MaterialReview';\r\nimport { ProjectQEDataService } from '../Services/project-qe-data.service';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { DisputeService } from '../Services/dispute.service';\r\nimport { JSDocComment } from '@angular/compiler';\r\nimport { Observable, of } from 'rxjs';\r\nimport { VendorDataService } from '../Services/vendor-data.service';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { InvoiceService } from '../Services/invoice.service';\r\nimport jsPDF from 'jspdf';\r\nimport html2canvas from 'html2canvas';\r\nimport * as saveAs from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\nexport interface DialogData {\r\n Id: number;\r\n ProjectName: string;\r\n Plant: string;\r\n SalesOrderNo: string;\r\n Customer: string;\r\n ProjectStatus: string;\r\n IsActive: boolean;\r\n IsClose:boolean;\r\n ProjectCreatedDate:string;\r\n TargetDate:string;\r\n}\r\n\r\nexport interface MaterialTableDataList {\r\n Id: number;\r\n ProjectName: string;\r\n Plant: string;\r\n SalesOrderNo: string;\r\n Customer: string;\r\n ProjectStatus: string;\r\n IsActive: boolean;\r\n}\r\n\r\n\r\nexport interface VendorDialogData {\r\n\r\n Id: number;\r\n ProjectId:number;\r\n ModuleName: string;\r\n VendorName: string;\r\n VendorCode: string;\r\n BOMNumber: string;\r\n PoNo: string;\r\n PoDate: string;\r\n PoQty: number;\r\n NoOfTls: number;\r\n NoOfCubicals: number;\r\n NoOfDrives: number;\r\n DriveType: string;\r\n DriveRating:string,\r\n Status:string\r\n\r\n}\r\n\r\n\r\n\r\n\r\nexport interface ViewVendorDialogData {\r\n Id: number;\r\n projectId:number;\r\n cClassId:number,\r\n ModuleName: string;\r\n VendorName: string;\r\n VendorCode: string;\r\n BOMNumber: string;\r\n ArticleNo: string,\r\n ArticleName: string,\r\n DriveType: string;\r\n DriveRating:string,\r\n PoNo: string;\r\n PoDate: string;\r\n PoQty: number;\r\n NoOfTls: number;\r\n NoOfCubicals: number;\r\n NoOfDrives: number;\r\n\r\n UOM: string,\r\n UsedQty: number,\r\n UnitPrice: number,\r\n FinalPrice: number,\r\n status: string;\r\n attachmentId:number;\r\n fileName:string[];\r\n fileExtension:string[];\r\n isABB:boolean[];\r\n isVendor:boolean[];\r\n isActive:boolean[];\r\n FileDisplay: boolean;\r\n IsDisputeRaised:boolean;\r\n Remark:string;\r\n}\r\n\r\nexport interface VendorDialogList {\r\n MaterialTableDataList: any[]; // or a more specific type if known\r\n displayedColumns: string[];\r\n}\r\nexport let TableData: DialogData[] = []\r\nexport let UploadVendorData: VendorDialogData[] = []\r\n\r\nexport const MaterialTableData: DialogData[] = [\r\n { Id: 1, ProjectName: 'INTER PANEL WIRING', Plant: 'INHQ', SalesOrderNo: '4202770188', Customer: '_M/s: SMS_TATA-KPO Slab Caster_', ProjectStatus: 'Received', IsActive: true ,IsClose:false,ProjectCreatedDate:'',TargetDate:''},\r\n\r\n\r\n]\r\nexport const ViewVendorData: ViewVendorDialogData[] = [];\r\n\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-ProjectDetails_ABBQualityEngineer',\r\n templateUrl: './ProjectDetails_ABBQualityEngineer.component.html',\r\n styleUrls: ['./ProjectDetails_ABBQualityEngineer.component.scss']\r\n})\r\nexport class ProjectDetails_ABBQualityEngineer_Component implements OnInit {\r\n\r\n ProjectName: any;\r\n Plant: any;\r\n SalesOrderNo: any;\r\n Customer: any;\r\n ProjectStatus: any;\r\n role:string;\r\n QualityEngineerId:number\r\n\r\n TableDataIndex: number = 1;\r\n displayedColumns: string[] = ['SalesOrderNo','spacerColumn','ProjectName','spacerColumn','Customer','spacerColumn', 'Plant','spacerColumn', 'ProjectStatus','spacerColumn','ProjectCreatedDate','spacerColumn', 'Assign','spacerColumn', 'View','spacerColumn', 'Edit','spacerColumn', 'Delete','spacerColumn','Close']\r\n dataSource!: MatTableDataSource;\r\n /* vendordataSource!: MatTableDataSource; */\r\n rows = [];\r\n\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.data = TableData;\r\n\r\n this.dataSource.paginator = this.paginator;\r\n }\r\n\r\n\r\n constructor(public dialog: MatDialog, private apisrv: ApiservicesService, private projectServ: ProjectQEDataService,private router: Router) { }\r\n getProjectData(QualityEngineerId){\r\n this.projectServ.getProjectHDR(QualityEngineerId).subscribe((data:any)=>{\r\n\r\n TableData= data;\r\n this.dataSource = new MatTableDataSource(TableData);\r\n console.log(this.dataSource);\r\n this.dataSource.paginator = this.paginator;\r\n });\r\n }\r\n ngOnInit(): void {\r\n \r\n console.log(sessionStorage.getItem('userId'))\r\n \r\n this.TableDataIndex = TableData.length;\r\n console.log(sessionStorage.getItem('role'))\r\n this.role=sessionStorage.getItem('role');\r\n this.QualityEngineerId=Number(sessionStorage.getItem('userId'));\r\n this.getProjectData(this.QualityEngineerId);\r\n this.dataSource = new MatTableDataSource(TableData);\r\n \r\n this.displayedColumns= ['SalesOrderNo','spacerColumn','ProjectName','spacerColumn','Customer','spacerColumn', 'Plant','spacerColumn', 'ProjectStatus','spacerColumn','ProjectCreatedDate','spacerColumn', 'Assign']\r\n this.tbldata();\r\n this.TableDataIndex = TableData.length;\r\n }\r\n\r\n tbldata() {\r\n this.dataSource = new MatTableDataSource(TableData);\r\n this.dataSource.paginator = this.paginator;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n \r\n\r\n \r\n\r\n\r\n vendorMaterial(data: any) {\r\n \r\n if (data != null && data != undefined) {\r\n \r\n this.router.navigate(['/review-verify-material-details', data.id]); // Redirect with parameter\r\n }\r\n }\r\n\r\n \r\n\r\n \r\n \r\n \r\n shouldActionButton(row: any,action:any): boolean {\r\n \r\n if(action==\"Assign\")\r\n {\r\n \r\n return true; \r\n \r\n \r\n }\r\n \r\n return false; \r\n }\r\n}\r\n\r\n\r\nexport interface Plant{\r\n id:number;\r\n name:string;\r\n code:string;\r\n status:boolean;\r\n}\r\nexport interface ProjectSave{\r\n id: number,\r\n customerName: string,\r\n projectName: string,\r\n saleOrderNo: string,\r\n plantId: number,\r\n status: string,\r\n bomNumbers:[],\r\n isActive:boolean,\r\n createdBy:number,\r\n createdDate: Date,\r\n updatedBy: number,\r\n updatedDate: Date,\r\n jobCardId: number\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n

Material Details Verification

\r\n
\r\n
\r\n
\r\n \r\n \r\n Search \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Id {{element.id}} Sale Order Number {{element.salesOrderNo}} Project Name {{element.projectName}} Customer {{element.customer}} Plant {{element.plant}} Project Status \r\n {{element.projectStatus}}\r\n Project Created Date{{element.projectCreatedDate}} Actions \r\n \r\n \r\n \r\n \r\n \r\n
No data matching the filter \"{{input.value}}\"
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n ","import { Component, ElementRef, Inject, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {Observable, of} from 'rxjs';\r\nimport {map, startWith} from 'rxjs/operators';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { VendorDataService } from 'src/app/Services/vendor-data.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators, FormControl} from '@angular/forms';\r\nimport { projectDetails_ABB_Component, VendorDialogData } from './projectDetails_ABB.component';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { ProjectService } from '../Services/project.service';\r\nimport { DatePipe } from '@angular/common';\r\nexport interface VendorMST{\r\n vendorId:number;\r\n name: string;\r\n}\r\nexport interface BOMMST{\r\n bomId:number;\r\n name: string;\r\n}\r\nexport interface WiringTableMST{\r\n wiringTableId:number;\r\n name: string;\r\n}\r\nexport interface DialogData {\r\n Id : number;\r\n ProjectName : string;\r\n Plant : string;\r\n SalesOrderNo : string;\r\n Customer : string;\r\n ProjectStatus : string;\r\n // Products:string;\r\n IsActive:boolean;\r\n}\r\n\r\nexport interface InvoiceData\r\n{\r\n Id:number,\r\n BomNo:number,\r\n WiringTableId:number,\r\n VendorCode:string,\r\n VendorName:string,\r\n PoNo:string,\r\n PoDate:string,\r\n InvoiceNo:string,\r\n InvoiceDate :string,\r\n InvoiceAmt :string,\r\n invoiceUpload:File\r\n\r\n}\r\n\r\nexport interface WiringTableSave{\r\n WiringTableId: number,\r\n VendorId:number\r\n PurchaceOrderNo:string,\r\n PurchaceOrderDate:string, \r\n PurchaceOrderQty:number,\r\n NoOfTls:number,\r\n NoOfCubicles:number,\r\n NoOfdrives:number,\r\n DriveType:string,\r\n DriveRating:string,\r\n createdBy:number\r\n \r\n}\r\nconst UploadVendorData: VendorDialogData[]=[];\r\n\r\n\r\n @Component ({\r\n selector: 'app-dialog3',\r\n templateUrl: './AddvendorConfigDialog.html',\r\n styleUrls:['./projectDetails_ABB.component.scss']})\r\n \r\n export class AddvendorConfigDialog {\r\n /**\r\n *\r\n */\r\n \r\n \r\n formEntity: FormGroup;\r\n BOMList: BOMMST[]=[];\r\n selectBOMNumFormControl = new FormControl();\r\n selectedBomNumValue = [];\r\n displayedColumns: string[] = [];\r\n WiringTableList:WiringTableMST[]=[];\r\n wiringTableFormControl = new FormControl();\r\n \r\n wiringTableSave: WiringTableSave={WiringTableId:0,VendorId:0, PurchaceOrderNo: '', PurchaceOrderDate:'',PurchaceOrderQty:0,NoOfTls: 0,NoOfCubicles:0,NoOfdrives: 0,DriveType:'',DriveRating:'',createdBy:0}\r\n VendorList: VendorMST[]=[];\r\n\r\n\r\n\r\n\r\n @ViewChild('select') select: MatSelect;\r\n searchValueText: string = '';\r\n @ViewChild('searchVendor') searchVendorTextBox: ElementRef;\r\n selectVendorFormControl = new FormControl([]);\r\n searchVendorTextboxControl = new FormControl();\r\n selectedVendorValues = [];\r\n vendorFilteredOptions: Observable= of(this.VendorList);\r\n selectedVendorId= new FormControl([]);\r\n selectedVendorValue= new FormControl([]);\r\n \r\n\r\n\r\n\r\n /* formInstance : FormGroup; */\r\n index:number =0;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n formInstance: any;\r\n \r\n constructor(@Inject(MAT_DIALOG_DATA) public data: VendorDialogData ,private _formBuilder: FormBuilder,private _snackBar: MatSnackBar, private formBuilder: FormBuilder,private apisrv:ApiservicesService,private vendorData: VendorDataService , private projectServ: ProjectService, public dialogRef: MatDialogRef,private snackBar: MatSnackBar, private datePipe: DatePipe) {\r\n\r\n this.formInstance = _formBuilder.group({\r\n \"vendorControl\":['', Validators.required] \r\n });\r\n }\r\n \r\n myControl = new FormControl('');\r\n options: string[] = ['iPhone', 'Mouse', 'Monitor', 'Keyboard', 'Tab'];\r\n filteredOptions!: Observable;\r\n \r\n myControl1 = new FormControl('');\r\n options1: string[] = ['12 256GB', '13 64GB', '13 128GB', 'Keyboard', 'Tab'];\r\n filteredOptions1!: Observable;\r\n vendordataSource!: MatTableDataSource;\r\n\r\n addVendorData:VendorDialogData[]=[];\r\n \r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n\r\n \r\n ngOnInit(){\r\n if(this.data !=null && this.data !=undefined)\r\n {\r\n this.getBOMDetail(this.data.ProjectId,0)\r\n this.getVendorData(0);\r\n }\r\n this.vendordataSource= new MatTableDataSource(UploadVendorData);\r\n this.formInstance = this.formBuilder.group({\r\n selectBOMNumFormControl :[null,Validators.required],\r\n wiringTableFormControl :[null,Validators.required],\r\n selectVendorFormControl :[null,Validators.required],\r\n DriveType : [null, Validators.required],\r\n DriveRating: [null, Validators.required],\r\n PoNo: [null, Validators.required],\r\n PoDate:[null],\r\n PoQty : [null, Validators.required],\r\n NoOfTls: [null, Validators.required],\r\n NoOfDrives: [null, Validators.required],\r\n NoOfCubicals :[null,Validators.required]\r\n });\r\n\r\n this.filteredOptions = this.myControl.valueChanges.pipe(\r\n startWith(''),\r\n map(value => this._filter(value || '')),\r\n );\r\n \r\n this.filteredOptions1 = this.myControl1.valueChanges.pipe(\r\n startWith(''),\r\n map(value => this._filter1(value || '')),\r\n );\r\n }\r\n\r\n\r\n \r\n\r\n\r\n getBOMDetail(projectId,id){\r\n \r\n this.projectServ.getBOMDetailList(projectId,id).subscribe((data:any)=>{\r\n this.BOMList= data;\r\n console.log(data)\r\n let bomId: number;\r\n if (this.BOMList && this.BOMList.length > 0) {\r\n this.BOMList.forEach((e) => {\r\n /* if(e.code == 'IN01'){ */\r\n bomId= e.bomId;\r\n if (this.selectedBomNumValue.indexOf(e) == -1) {\r\n this.selectedBomNumValue.push(e);\r\n }\r\n /* } */ \r\n });\r\n }\r\n this.selectBOMNumFormControl.patchValue(this.selectedBomNumValue[0]);\r\n this.projectServ.getWiringTbleList(bomId,id).subscribe((data:any)=>{\r\n this.WiringTableList = data, () => console.log('Get all complete'); \r\n });\r\n });\r\n }\r\n\r\n \r\n bomNumSelection(bomid:number){\r\n this.WiringTableList=[];\r\n \r\n this.wiringTableFormControl.reset(); \r\n \r\n this.projectServ.getWiringTbleList(bomid,0).subscribe((data:any)=>{\r\n this.WiringTableList = data, () => console.log('Get all complete'); \r\n });\r\n }\r\n\r\n\r\n/* wiringTableSelection() {\r\n \r\n \r\n this.formInstance.value.wiringTableFormControl = this.wiringTableFormControl.value;\r\n \r\n \r\n } */\r\n\r\n\r\n \r\n\r\n\r\n\r\n/* Start- Binding methods of Vendor Dropdown with search and single value selection */\r\n getVendorData(id){\r\n this.vendorData.getVendorList(id).subscribe((data:any)=>{\r\n console.log(data);\r\n this.VendorList = data,\r\n this.vendorFilteredOptions = this.searchVendorTextboxControl.valueChanges \r\n .pipe(\r\n startWith(''),\r\n map(name => this.VendorFilter(name))\r\n );\r\n () => console.log('Get all complete'); \r\n }\r\n );\r\n }\r\n\r\n\r\n private VendorFilter(name: string) {\r\n const filterValue = name.toLowerCase();\r\n // Set selected values to retain the selected checkbox state \r\n this.setVendorSelectedValues();\r\n this.selectedVendorId= new FormControl([]);\r\n this.selectedVendorValue= new FormControl([]);\r\n this.selectVendorFormControl.patchValue(this.selectedVendorValues);\r\n this.selectVendorFormControl.value.forEach(item=> {\r\n this.selectedVendorId.value.push(item.id);\r\n this.selectedVendorValue.value.push(item.name);\r\n });\r\n let filteredList = this.VendorList.filter(option => option.name.toLowerCase().includes(filterValue.toLowerCase()));\r\n return filteredList;\r\n }\r\n \r\n vendorSelectionChange(event) {\r\n if (event.isUserInput && event.source.selected == false) {\r\n let index = this.selectedVendorValues.indexOf(event.source.value);\r\n this.selectedVendorValues.splice(index, 1)\r\n }\r\n }\r\n openedVendorChange(e) {\r\n // Set search textbox value as empty while opening selectbox \r\n this.searchVendorTextboxControl.patchValue('');\r\n // Focus to search textbox while clicking on selectbox\r\n if (e == true) {\r\n this.searchVendorTextBox.nativeElement.focus();\r\n }\r\n }\r\n \r\n clearVendorSearch(event) {\r\n event.stopPropagation();\r\n this.searchVendorTextboxControl.patchValue('');\r\n }\r\n \r\n setVendorSelectedValues() {\r\n console.log('selectVendorFormControl', this.selectVendorFormControl.value);\r\n if (this.selectVendorFormControl.value && this.selectVendorFormControl.value.length > 0) {\r\n this.selectVendorFormControl.value.forEach((e) => {\r\n if (this.selectedVendorValues.indexOf(e) == -1) {\r\n this.selectedVendorValues.push(e);\r\n }\r\n });\r\n }\r\n }\r\n vendorSelection() {\r\n \r\n \r\n this.selectedVendorId= new FormControl([]);\r\n this.selectedVendorValue= new FormControl([]);\r\n \r\n \r\n this.selectedVendorId.value.push(this.formInstance.controls.selectVendorFormControl.value.vendorId);\r\n this.selectedVendorValue.value.push(this.formInstance.controls.selectVendorFormControl.value.name);\r\n \r\n this.formInstance.value.vendorControl = this.selectedVendorId.value;\r\n console.log( this.selectedVendorValue.value);\r\n \r\n }\r\n \r\n selectedVendorIdExists(id: number):boolean{\r\n return this.selectedVendorId.value.some(item=>item === id);\r\n }\r\n selectedVendorValueExists(value: string):boolean{\r\n return this.selectedVendorValue.value.some(item=>item === value);\r\n }\r\n/* END- Binding methods of Vendor Dropdown with search and single value selection */\r\n handleInput(event: KeyboardEvent): void{\r\n event.stopPropagation();\r\n } \r\n\r\n\r\n\r\n\r\n\r\n onClear()\r\n {\r\n this.formInstance.reset();\r\n }\r\n private _filter(value: string): string[] {\r\n const filterValue = value.toLowerCase();\r\n \r\n return this.options.filter(option => option.toLowerCase().includes(filterValue));\r\n }\r\n private _filter1(value: string): string[] {\r\n const filterValue1 = value.toLowerCase();\r\n \r\n return this.options1.filter(option1 => option1.toLowerCase().includes(filterValue1));\r\n }\r\n \r\n close() {\r\n this.dialogRef.close();\r\n }\r\n snackBarLoader(content, action, duration, color){\r\n this.snackBar.open(content, action, {\r\n duration: 2000,\r\n verticalPosition: \"top\", \r\n horizontalPosition: \"center\", \r\n panelClass: [color]\r\n });\r\n }\r\n \r\n \r\n \r\n onsubmit()\r\n {\r\n\r\n if(this.formInstance.value.selectBOMNumFormControl==0){\r\n this.snackBarLoader('Please select BOM Number from list','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n if(this.formInstance.value.wiringTableFormControl==0){\r\n this.snackBarLoader('Please select wiring table from list','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n if(this.formInstance.value.selectVendorFormControl==0){\r\n this.snackBarLoader('Please select vendor','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n\r\n var userId = sessionStorage.getItem('userId');\r\n /* this.formInstance.controls['WiringTableStatus'].patchValue('New'); */\r\n \r\n if (this.formInstance.valid ) {\r\n \r\n this.wiringTableSave.WiringTableId= this.formInstance.get('wiringTableFormControl').value;\r\n\r\n /* this.wiringTableSave.Status= this.formInstance.get('WiringTableStatus').value; */\r\n this.wiringTableSave.VendorId=this.formInstance.get('selectVendorFormControl').value.vendorId;\r\n this.wiringTableSave.PurchaceOrderNo = String(this.formInstance.get('PoNo').value),\r\n this.wiringTableSave.PurchaceOrderDate=this.datePipe.transform( this.formInstance.get('PoDate').value,'MM/dd/yyyy'),\r\n this.wiringTableSave.PurchaceOrderQty= this.formInstance.get('PoQty').value,\r\n \r\n this.wiringTableSave.NoOfTls= this.formInstance.get('NoOfTls').value ,\r\n this.wiringTableSave.NoOfCubicles= this.formInstance.get('NoOfCubicals').value,\r\n this.wiringTableSave.NoOfdrives=this.formInstance.get('NoOfDrives').value;\r\n this.wiringTableSave.DriveType= this.formInstance.get('DriveType').value, \r\n this.wiringTableSave.DriveRating= \"abc\",//this.formInstance.get('DriveRating').value, \r\n\r\n this.wiringTableSave.createdBy=Number(userId);\r\n \r\n console.log(this.wiringTableSave);\r\n this.projectServ.saveVendorDetails(this.wiringTableSave).subscribe({\r\n next: (val :any) => {\r\n this.projectServ.snackBarLoader('Submitted Successfully','Done','1000', 'red-snackbar')\r\n this.dialogRef.close(true);\r\n },\r\n error: (err: any) =>{\r\n this.projectServ.snackBarLoader(err.error,'Done','1000', 'red-snackbar')\r\n }\r\n });\r\n \r\n \r\n }\r\n \r\n this.dialogRef.close({event:null,data: { MaterialTableDataList: this.data, displayedColumns: this.displayedColumns }}); /* */\r\n }\r\n \r\n\r\n }","
\r\n
\r\n

Add Vendor Configuration Details

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n Select BOM Number \r\n \r\n {{bomnum.name}}\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n Select Wiring Table\r\n \r\n {{WiringTable.name}}\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n Select Vendor\r\n \r\n \r\n {{selectedVendorValue.value}} \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
No results found!
\r\n
\r\n \r\n {{vendor.name}} \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n \r\n \r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n Purchase Order No\r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n Select Date\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n PO Qty\r\n \r\n \r\n
\r\n
\r\n \r\n No of TLs\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n No of Cubicles\r\n \r\n \r\n
\r\n
\r\n \r\n No Of Drives\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Drive Type\r\n \r\n \r\n
\r\n
\r\n \r\n Drive Rating\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators, FormArray, FormControl } from '@angular/forms';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\n\r\n\r\nimport { AddvendorConfigDialog, BOMMST, InvoiceData, VendorMST, WiringTableMST, WiringTableSave } from './AddvendorConfigDialog';\r\nimport { VendorMaterialReviewData, ViewVendorMaterialReview } from '../ProjectDetails_Vendor/MaterialReview';\r\nimport { ProjectService } from '../Services/project.service';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { DisputeService } from '../Services/dispute.service';\r\nimport { JSDocComment } from '@angular/compiler';\r\nimport { Observable, of } from 'rxjs';\r\nimport { VendorDataService } from '../Services/vendor-data.service';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { InvoiceService } from '../Services/invoice.service';\r\nimport jsPDF from 'jspdf';\r\nimport html2canvas from 'html2canvas';\r\nimport * as saveAs from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\nexport interface DialogData {\r\n Id: number;\r\n ProjectName: string;\r\n Plant: string;\r\n SalesOrderNo: string;\r\n Customer: string;\r\n ProjectStatus: string;\r\n IsActive: boolean;\r\n IsClose:boolean;\r\n ProjectCreatedDate:string;\r\n TargetDate:string;\r\n}\r\n\r\nexport interface MaterialTableDataList {\r\n Id: number;\r\n ProjectName: string;\r\n Plant: string;\r\n SalesOrderNo: string;\r\n Customer: string;\r\n ProjectStatus: string;\r\n IsActive: boolean;\r\n}\r\n\r\n\r\nexport interface VendorDialogData {\r\n\r\n Id: number;\r\n ProjectId:number;\r\n ModuleName: string;\r\n VendorName: string;\r\n VendorCode: string;\r\n BOMNumber: string;\r\n PoNo: string;\r\n PoDate: string;\r\n PoQty: number;\r\n NoOfTls: number;\r\n NoOfCubicals: number;\r\n NoOfDrives: number;\r\n DriveType: string;\r\n DriveRating:string,\r\n Status:string\r\n\r\n}\r\n\r\n\r\n\r\n\r\nexport interface ViewVendorDialogData {\r\n Id: number;\r\n projectId:number;\r\n cClassId:number,\r\n ModuleName: string;\r\n VendorName: string;\r\n VendorCode: string;\r\n BOMNumber: string;\r\n ArticleNo: string,\r\n ArticleName: string,\r\n DriveType: string;\r\n DriveRating:string,\r\n PoNo: string;\r\n PoDate: string;\r\n PoQty: number;\r\n NoOfTls: number;\r\n NoOfCubicals: number;\r\n NoOfDrives: number;\r\n\r\n UOM: string,\r\n UsedQty: number,\r\n UnitPrice: number,\r\n FinalPrice: number,\r\n status: string;\r\n attachmentId:number;\r\n fileName:string[];\r\n fileExtension:string[];\r\n isABB:boolean[];\r\n isVendor:boolean[];\r\n isActive:boolean[];\r\n FileDisplay: boolean;\r\n IsDisputeRaised:boolean;\r\n Remark:string;\r\n}\r\n\r\nexport interface VendorDialogList {\r\n MaterialTableDataList: any[]; // or a more specific type if known\r\n displayedColumns: string[];\r\n}\r\nexport let TableData: DialogData[] = []\r\nexport let UploadVendorData: VendorDialogData[] = []\r\n\r\nexport const MaterialTableData: DialogData[] = [\r\n { Id: 1, ProjectName: 'INTER PANEL WIRING', Plant: 'INHQ', SalesOrderNo: '4202770188', Customer: '_M/s: SMS_TATA-KPO Slab Caster_', ProjectStatus: 'Received', IsActive: true ,IsClose:false,ProjectCreatedDate:'',TargetDate:''},\r\n\r\n\r\n]\r\nexport const ViewVendorData: ViewVendorDialogData[] = [];\r\n\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-project-abb',\r\n templateUrl: './projectDetails_ABB.component.html',\r\n styleUrls: ['./projectDetails_ABB.component.scss']\r\n})\r\nexport class projectDetails_ABB_Component implements OnInit {\r\n\r\n ProjectName: any;\r\n Plant: any;\r\n SalesOrderNo: any;\r\n Customer: any;\r\n ProjectStatus: any;\r\n role:string;\r\n\r\n TableDataIndex: number = 1;\r\n displayedColumns: string[] = ['SalesOrderNo','spacerColumn','ProjectName','spacerColumn','Customer','spacerColumn', 'Plant','spacerColumn', 'ProjectStatus','spacerColumn','ProjectCreatedDate','spacerColumn', 'Assign','spacerColumn', 'View','spacerColumn', 'Edit','spacerColumn', 'Delete','spacerColumn','Close']\r\n dataSource!: MatTableDataSource;\r\n /* vendordataSource!: MatTableDataSource; */\r\n rows = [];\r\n\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.data = TableData;\r\n\r\n this.dataSource.paginator = this.paginator;\r\n }\r\n\r\n\r\n constructor(public dialog: MatDialog, private apisrv: ApiservicesService, private projectServ: ProjectService,private router: Router) { }\r\n getProjectData(){\r\n this.projectServ.getProjectHDR().subscribe((data:any)=>{\r\n\r\n TableData= data;\r\n this.dataSource = new MatTableDataSource(TableData);\r\n console.log(this.dataSource);\r\n this.dataSource.paginator = this.paginator;\r\n });\r\n }\r\n ngOnInit(): void {\r\n \r\n console.log(sessionStorage.getItem('role'))\r\n this.role=sessionStorage.getItem('role');\r\n this.getProjectData();\r\n this.dataSource = new MatTableDataSource(TableData);\r\n /* if(this.role=='Project Engineer'){\r\n this.displayedColumns= ['ProjectName', 'Plant', 'SalesOrderNo', 'Customer', 'ProjectStatus', 'Assign', 'View', 'Edit', 'Delete']\r\n } else if(this.role=='Project Manager'){\r\n\r\n this.displayedColumns= ['ProjectName', 'Plant', 'SalesOrderNo', 'Customer', 'ProjectStatus', 'Assign', 'View', 'Edit', 'Delete','Close']\r\n }else{\r\n this.displayedColumns= ['ProjectName', 'Plant', 'SalesOrderNo', 'Customer', 'ProjectStatus', 'Assign', 'View']\r\n } */\r\n\r\n this.displayedColumns= ['SalesOrderNo','spacerColumn','ProjectName','spacerColumn','Customer','spacerColumn', 'Plant','spacerColumn', 'ProjectStatus','spacerColumn','ProjectCreatedDate','spacerColumn', 'Assign']\r\n this.tbldata();\r\n this.TableDataIndex = TableData.length;\r\n }\r\n\r\n tbldata() {\r\n this.dataSource = new MatTableDataSource(TableData);\r\n this.dataSource.paginator = this.paginator;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n openDialog() {\r\n const dialogRef = this.dialog.open(AddProjectDetails, {\r\n data: { ProjectName: this.ProjectName, Plant: this.Plant, SalesOrderNo: this.SalesOrderNo, Customer: this.Customer },\r\n height: '90%',\r\n width: '75%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getProjectData();\r\n\r\n });\r\n\r\n }\r\n\r\n /* vendorMaterial(data: any) {\r\n const dialogRef = this.dialog.open(VendorMaterialDialog, {\r\n data: { MaterialTableDataList: data, displayedColumns: this.displayedColumns } as VendorDialogList,\r\n height: '85%',\r\n width: '85%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n (`VendorTd: ${result}`);\r\n this.tbldata();\r\n\r\n });\r\n } */\r\n\r\n\r\n vendorMaterial(data: any) {\r\n \r\n if (data != null && data != undefined) {\r\n \r\n this.router.navigate(['/create-assign-vendor', data.id]); // Redirect with parameter\r\n }\r\n }\r\n\r\n \r\n disputevendorMaterial(data: any) {\r\n console.log(data);\r\n const dialogRef = this.dialog.open(DisputeDialog, {\r\n data: { Id: data.id, displayedColumns: this.displayedColumns },\r\n height: '90%',\r\n width: '85%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getProjectData();\r\n\r\n });\r\n\r\n }\r\n ViewProjectDailogue(data: any) {\r\n\r\n\r\n const dialogRef = this.dialog.open(ViewProjectDialog, {\r\n data: {Id:data.id,IsActive:data.isActive,\r\n ProjectName: data.projectName, Plant: data.plant, SalesOrderNo: data.salesOrderNo, Customer: data.customer, ProjectStatus: data.projectStatus\r\n },\r\n height: '85%',\r\n width: '85%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getProjectData();\r\n\r\n });\r\n }\r\n EditProjectDailogue(data: any) {\r\n const dialogRef = this.dialog.open(EditProjectDialog, {\r\n data: { Id: data.id, ProjectName: data.projectName, Plant: data.plantId, SalesOrderNo: data.salesOrderNo, Customer: data.customer, ProjectStatus: data.projectStatus },\r\n height: '70%',\r\n width: '80%'\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getProjectData();\r\n });\r\n }\r\n onDelete(data: any) {\r\n console.log('dataaa',data)\r\n if (confirm(\"Are you sure you want to delete?\")) {\r\n this.projectServ.deleteProject(data.id).subscribe(() => {\r\n this.projectServ.snackBarLoader('Deleted Successfully','Done','1000', 'red-snackbar')\r\n this.getProjectData();\r\n });\r\n }\r\n }\r\n onClose(data:any){\r\n console.log('dataaa',data)\r\n if (confirm(\"Are you sure you want to close the project?\")) {\r\n this.projectServ.closeProject(data.id).subscribe(() => {\r\n this.projectServ.snackBarLoader('Project Closed Successfully','Done','1000', 'red-snackbar')\r\n this.getProjectData();\r\n });\r\n }\r\n }\r\n\r\n \r\n shouldActionButton(row: any,action:any): boolean {\r\n \r\n if(action==\"Assign\")\r\n {\r\n \r\n return true; \r\n \r\n \r\n }\r\n else \r\n if(action==\"Edit\")\r\n {\r\n if((this.role=='Project Engineer' || this.role=='Project Manager') && row.projectStatus == 'New')\r\n return true; \r\n }\r\n else if(action==\"Delete\")\r\n {\r\n if((this.role=='Project Engineer' || this.role=='Project Manager') && row.projectStatus == 'New')\r\n return true; \r\n }\r\n else if(action==\"Close\")\r\n {\r\n if(this.role=='Project Manager' && row.isClose == true)\r\n return true; \r\n }\r\n return false; \r\n }\r\n}\r\n\r\n\r\nexport interface Plant{\r\n id:number;\r\n name:string;\r\n code:string;\r\n status:boolean;\r\n}\r\nexport interface ProjectSave{\r\n id: number,\r\n customerName: string,\r\n projectName: string,\r\n saleOrderNo: string,\r\n plantId: number,\r\n status: string,\r\n bomNumbers:[],\r\n isActive:boolean,\r\n createdBy:number,\r\n createdDate: Date,\r\n updatedBy: number,\r\n updatedDate: Date,\r\n jobCardId: number\r\n}\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './AddProjectDetails.html',\r\n styleUrls: ['./projectDetails_ABB.component.scss']\r\n})\r\n\r\nexport class AddProjectDetails {\r\n /**\r\n *\r\n */\r\n \r\n\r\n \r\n plantMST: Plant[];\r\n form: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n projectSave: ProjectSave = {\r\n id: 0, customerName: '', projectName: '', saleOrderNo: '', plantId: 0, status: '', isActive: true,\r\n createdBy: 1, createdDate: new Date(), updatedBy: 1, updatedDate: new Date(), jobCardId: 0, bomNumbers: []\r\n }\r\n constructor(private fb: FormBuilder, @Inject(MAT_DIALOG_DATA) public data: DialogData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, private apisrv: ApiservicesService, public dialogRef: MatDialogRef,\r\n private projectServ: ProjectService) { }\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n\r\n numberCharAlphabetRegex = /^(?=.*[A-Za-z])(?=.*\\d)(?=.*[^\\w\\s]).+$/;\r\n ngOnInit() {\r\n\r\n this.form = this.formBuilder.group({\r\n ProjectName: [null, [Validators.required,containsAlphabetValidator()]],\r\n Plant: [null, Validators.required],\r\n SalesOrderNo: [null, Validators.required],\r\n Customer: [null, [Validators.required,containsAlphabetValidator()]],\r\n ProjectStatus: [null, null],\r\n bomNumbers: this.fb.array([]),\r\n });\r\n\r\n this.getPlant();\r\n console.log(this.form.value);\r\n }\r\n bomNumbers(): FormArray {\r\n return this.form.get(\"bomNumbers\") as FormArray\r\n }\r\n\r\n newBOM(): FormGroup {\r\n return this.fb.group({\r\n bomName: '',\r\n modulesArray:this.fb.array([])\r\n })\r\n }\r\n addBOM() {\r\n this.bomNumbers().push(this.newBOM());\r\n }\r\n removeBOM(bomIndex:number) {\r\n this.bomNumbers().removeAt(bomIndex);\r\n }\r\n bomwiring(bomIndex:number) : FormArray {\r\n return this.bomNumbers().at(bomIndex).get(\"modulesArray\") as FormArray\r\n }\r\n newWiring(): FormGroup {\r\n return this.fb.group({\r\n moduleName: '',\r\n })\r\n }\r\n addBOMWiring(bomIndex:number) {\r\n this.bomwiring(bomIndex).push(this.newWiring());\r\n }\r\n removeBOMWiring(bomIndex: number, wiringIndex: number) {\r\n this.bomwiring(bomIndex).removeAt(wiringIndex);\r\n }\r\n\r\n get modules(): FormArray {\r\n return this.form.get('ModulesArray') as FormArray;\r\n }\r\n get boms(): FormArray {\r\n return this.form.get('BOMs') as FormArray;\r\n }\r\n\r\n createModule(): FormGroup {\r\n return this.fb.group({\r\n moduleName: [' ']\r\n });\r\n }\r\n createBom(): FormGroup{\r\n return this.fb.group({\r\n bomName: [' '],\r\n ModulesArray: this.formBuilder.array([this.createModule()])\r\n });\r\n }\r\n\r\n addBoms(): void {\r\n this.boms.push(this.createBom());\r\n }\r\n addModule(): void {\r\n this.modules.push(this.createModule());\r\n this.boms.value[0].ModulesArray= this.modules.value;\r\n console.log(this.form.value);\r\n }\r\n\r\n removeModule(index: number): void {\r\n if (this.modules.length > 1) {\r\n this.modules.removeAt(index);\r\n }\r\n }\r\n removeBom(index: number): void {\r\n if (this.boms.length > 1) {\r\n this.boms.removeAt(index);\r\n }\r\n }\r\n onClear() {\r\n this.form.setControl('ModulesArray', this.fb.array([this.createModule()]));\r\n this.form.setControl('BOMs', this.fb.array([this.createBom()]));\r\n this.form.reset();\r\n\r\n }\r\n getPlant() {\r\n this.projectServ.getPlant().subscribe((data:any)=>{\r\n this.plantMST = data;\r\n });\r\n }\r\n \r\n SaveProjectDetails() {\r\n debugger;\r\n var userId = sessionStorage.getItem('userId');\r\n this.form.controls['ProjectStatus'].patchValue('New');\r\n if (!this.form.value.ProjectName) {\r\n this.projectServ.snackBarLoader('Please enter Project Name','Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n if (this.form.get('ProjectName').hasError('containsAlphabet') ==true)\r\n {\r\n this.projectServ.snackBarLoader('Please enter valid value for Project Name', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n if (!this.form.value.Plant) {\r\n this.projectServ.snackBarLoader('Please choose Plant','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.form.value.SalesOrderNo == null || this.form.value.saleOrderNo == '') {\r\n this.projectServ.snackBarLoader('Please enter Sales Order Number', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n if(this.form.value.SalesOrderNo<=0){\r\n this.projectServ.snackBarLoader('Please enter proper value for Sales Order Number.','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n\r\n if (this.form.value.Customer == null || this.form.value.Customer == '') {\r\n this.projectServ.snackBarLoader('Please enter Customer', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.form.get('Customer').hasError('containsAlphabet') ==true)\r\n {\r\n this.projectServ.snackBarLoader('Please enter valid value for Customer', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n \r\n if (this.form.value.bomNumbers.length == 0) {\r\n this.projectServ.snackBarLoader('Please enter alteast 1 BOM Number', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n \r\n for (let b = 0; b < this.form.value.bomNumbers.length; b++) {\r\n if (this.form.value.bomNumbers[b].bomName == '') {\r\n this.projectServ.snackBarLoader('BOM Number should not be empty', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.form.value.bomNumbers[b].modulesArray.length == 0) {\r\n this.projectServ.snackBarLoader('Please enter atleast 1 Wiring Table details', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n \r\n if (this.form.value.bomNumbers[b].modulesArray.length > 0) {\r\n for (let w = 0; w < this.form.value.bomNumbers[b].modulesArray.length; w++) {\r\n if (this.form.value.bomNumbers[b].modulesArray[w].moduleName == '') {\r\n this.projectServ.snackBarLoader('Wring Table Details should not be empty', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n const bomNumbers= this.form.value.bomNumbers.map(item=>item.bomName);\r\n const bomDuplicates= bomNumbers.filter((name,index)=>bomNumbers.indexOf(name)!==index)\r\n if(bomDuplicates.length){\r\n this.projectServ.snackBarLoader('BOM Numbers should not be same', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n for (let b = 0; b < this.form.value.bomNumbers.length; b++) {\r\n const modules= this.form.value.bomNumbers[b].modulesArray.map(item=>item.moduleName);\r\n const panelDuplicates= modules.filter((name,index)=>modules.indexOf(name)!==index)\r\n if(panelDuplicates.length){\r\n this.projectServ.snackBarLoader('Wiring Table should not be same for BOM', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n }\r\n if(this.form.value.ProjectName){\r\n this.projectServ.checkIfSavedProjectNumber(this.form.value.ProjectName).subscribe((data:any)=>{\r\n if(data>0){\r\n console.log(data);\r\n this.projectServ.snackBarLoader('Project Name already exists', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n else{\r\n this.projectServ.CheckIfSavedSalesOrderNo(this.form.value.SalesOrderNo).subscribe((data:any)=>{\r\n if(data>0){\r\n this.projectServ.snackBarLoader('Sales Order No already exists', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n else\r\n {\r\n if (this.form.valid && this.form.value.bomNumbers.length > 0) {\r\n this.data.IsActive = true;\r\n this.projectSave.id = 0;\r\n this.projectSave.customerName = this.form.value.Customer;\r\n this.projectSave.projectName = this.form.value.ProjectName;\r\n this.projectSave.saleOrderNo = String(this.form.value.SalesOrderNo);\r\n this.projectSave.plantId = this.form.value.Plant;\r\n this.projectSave.status = this.form.value.ProjectStatus;\r\n this.projectSave.bomNumbers = this.form.value.bomNumbers;\r\n this.projectSave.isActive = true;\r\n this.projectSave.createdBy = Number(userId);\r\n this.projectSave.createdDate = new Date();\r\n this.projectSave.updatedBy = Number(userId);\r\n this.projectSave.updatedDate = new Date();\r\n this.projectSave.jobCardId = 0;\r\n console.log(this.projectSave);\r\n this.projectServ.saveProject(this.projectSave).subscribe({\r\n next: (val: any) => {\r\n this.projectServ.snackBarLoader('Submitted Successfully', 'Done', '1000', 'red-snackbar')\r\n this.dialogRef.close(true);\r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n }\r\n });\r\n \r\n \r\n }\r\n }\r\n });\r\n \r\n\r\n }\r\n })\r\n }\r\n \r\n console.log(this.form.controls);\r\n \r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n}\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './ViewProjectDetails_ABB.html',\r\n styleUrls: ['./projectDetails_ABB.component.scss']\r\n})\r\n\r\nexport class ViewProjectDialog {\r\n /**\r\n *\r\n */\r\n\r\n invoicedataSource: MatTableDataSource;\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder, public dialogRef: MatDialogRef, public dialog: MatDialog,private projectServ:ProjectService,private invoiceServ: InvoiceService,private router: Router) { }\r\n\r\n vendordataSource!: MatTableDataSource;\r\n display: boolean = true; display2: boolean = true; display3: boolean = true;\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n viewProject :MaterialTableDataList[]=[];\r\n displayedColumns: string[] = ['ModuleName','spacerColumn', 'VendorName','spacerColumn1', 'VendorCode', 'PoNo', 'PoDate', 'NoOfTls', 'NoOfCubicals', 'NoOfDrives', 'Status', 'View'];\r\n pdfDisplayedColumns: string[] = ['ModuleName','spacerColumn', 'VendorName','spacerColumn1', 'VendorCode', 'PoNo', 'PoDate', 'NoOfTls', 'NoOfCubicals', 'NoOfDrives', 'Status'];\r\n invoicedisplayedColumns: string[] = ['ModuleName','spacerColumn', 'VendorName','spacerColumn1', 'VendorCode', 'PoNo', 'PoDate', 'InvoiceNo', 'InvoiceDate', 'InvoiceAmt', 'invoiceUpload'];\r\n ngOnInit() {\r\n this.viewProject.push({\r\n Id:this.data.Id,\r\n ProjectName: this.data.ProjectName,\r\n Plant:this.data.Plant,\r\n Customer:this.data.Customer,\r\n ProjectStatus:this.data.ProjectStatus,\r\n SalesOrderNo:this.data.SalesOrderNo,\r\n IsActive:this.data.IsActive\r\n });\r\n\r\n this.vendortbldata(this.data.Id);\r\n }\r\n View(element: any) {\r\n const dialogRef = this.dialog.open(ViewMaterialReview, {\r\n data: { ProjectId:this.data.Id,BOMNumber:element.bomNumber, ModuleName: element.moduleName,Id: element.id, displayedColumns: this.displayedColumns },\r\n height: '600px',\r\n width: '980px'\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n vendortbldata(projectId) {\r\n var vendorId = (sessionStorage.getItem('role')=='Vendor')?sessionStorage.getItem('vendorId'):0;\r\n this.projectServ.getVendorDataList(projectId).subscribe((data: any) => {\r\n this.vendordataSource = new MatTableDataSource(data);\r\n });\r\n this.invoiceServ.getInvoiceDataList(projectId,vendorId).subscribe((InvoiceTableData: any) => {\r\n this.invoicedataSource = new MatTableDataSource(InvoiceTableData);\r\n });\r\n \r\n }\r\n downloadFile(element){\r\n var data1= element.attachementId+'_'+element.invoiceUpload;\r\n this.invoiceServ.GetInvoiceFileByName(data1).subscribe((data2:any)=>{\r\n var content= data2; \r\n this.SaveDemo(content, element.invoiceUpload);\r\n });\r\n }\r\n base64ToArrayBuffer(base64: any): ArrayBuffer {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n}\r\nSaveDemo(data2: any, data: string){\r\n var bytes= this.base64ToArrayBuffer(data2);\r\n let file = new Blob([bytes], { type: '' });\r\n saveAs(file, data); \r\n}\r\n closeGroup(expansionName:string)\r\n {\r\n switch(expansionName)\r\n {\r\n case 'expansion1':\r\n this.display = false;\r\n break;\r\n case 'expansion2':\r\n this.display2 = false;\r\n break;\r\n case 'expansion3':\r\n this.display3 = false;\r\n break;\r\n }\r\n\r\n }\r\n openGroup(expansionName:string)\r\n {\r\n switch(expansionName)\r\n {\r\n case 'expansion1':\r\n this.display = true;\r\n break;\r\n case 'expansion2':\r\n this.display2 = true;\r\n break;\r\n case 'expansion3':\r\n this.display3 = true;\r\n break;\r\n }\r\n\r\n }\r\n makePdf() {\r\n const data = document.getElementById('contentToConvert');\r\n data.hidden=false;\r\n html2canvas(data).then(canvas => {\r\n\r\n const imgWidth = 208;\r\n const pageHeight = 295;\r\n const imgHeight = canvas.height * imgWidth / canvas.width;\r\n const heightLeft = imgHeight;\r\n\r\n const contentDataURL = canvas.toDataURL('image/png');\r\n const pdf = new jsPDF('p', 'mm', 'a4'); // A4 size page of PDF\r\n data.hidden=true;\r\n let position = 10;\r\n\r\n\r\n pdf.addImage(contentDataURL, 'PNG', 5, position, imgWidth, imgHeight);\r\n pdf.save('ViewDetails.pdf'); // Generated PDF\r\n });\r\n\r\n}\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './EditProjectDetails.html',\r\n styleUrls: ['./projectDetails_ABB.component.scss']\r\n})\r\n\r\nexport class EditProjectDialog {\r\n /**\r\n *\r\n */\r\n\r\n editform: FormGroup;\r\n selectedData: any;\r\n selectedDropValue: any;\r\n plantMST: Plant[] = [];\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n projectSave: ProjectSave = {\r\n id: 0, customerName: '', projectName: '', saleOrderNo: '', plantId: 0, status: '', isActive: true,\r\n createdBy: 1, createdDate: new Date(), updatedBy: 1, updatedDate: new Date(), jobCardId: 0, bomNumbers: []\r\n }\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, private apisrv: ApiservicesService, public dialogRef: MatDialogRef,\r\n private projectServ: ProjectService) { }\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n\r\n\r\n\r\n ngOnInit() {\r\n this.getPlant();\r\n this.editform = this.formBuilder.group({\r\n ProjectName: [this.data.ProjectName, [Validators.required,containsAlphabetValidator()]],\r\n Plant: [this.data.Plant, Validators.required],\r\n SalesOrderNo: [this.data.SalesOrderNo, Validators.required],\r\n Customer: [this.data.Customer, [Validators.required,containsAlphabetValidator()]],\r\n });\r\n }\r\n getPlant() {\r\n this.projectServ.getPlant().subscribe((data: any) => {\r\n this.plantMST = data;\r\n });\r\n }\r\n selectedValue(event: MatSelectChange) {\r\n this.selectedData = {\r\n value: event.value,\r\n text: event.source.triggerValue\r\n };\r\n }\r\n updateProjectDetails() {\r\n var userId = sessionStorage.getItem('userId');\r\n if (!this.editform.value.ProjectName) {\r\n this.projectServ.snackBarLoader('Please enter Project Name', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n if (this.editform.get('Customer').hasError('containsAlphabet') ==true)\r\n {\r\n this.projectServ.snackBarLoader('Please enter valid value for Customer', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n \r\n\r\n if (!this.editform.value.Plant) {\r\n this.projectServ.snackBarLoader('Please choose Plant', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.editform.value.SalesOrderNo == null || this.editform.value.saleOrderNo == '') {\r\n this.projectServ.snackBarLoader('Please enter Sales Order Number', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n if(this.editform.value.SalesOrderNo<=0){\r\n this.projectServ.snackBarLoader('Please enter proper value for Sales Order Number.','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.editform.value.Customer == null || this.editform.value.Customer == '') {\r\n this.projectServ.snackBarLoader('Please enter Customer', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.editform.get('ProjectName').hasError('containsAlphabet') ==true)\r\n {\r\n this.projectServ.snackBarLoader('Please enter valid value for Project Name', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n debugger;\r\n\r\n this.projectServ.CheckIfSavedSalesOrderNo(this.editform.value.SalesOrderNo).subscribe((data:any)=>{\r\n if(Number(data)>0 && (Number(this.data.SalesOrderNo) != this.editform.value.SalesOrderNo)){\r\n this.projectServ.snackBarLoader('Sales Order No already exists', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n else{\r\n \r\n if (this.editform.valid) {\r\n if (this.data != null) {\r\n this.projectSave.id = this.data.Id;\r\n this.projectSave.customerName = this.editform.value.Customer;\r\n this.projectSave.projectName = this.editform.value.ProjectName;\r\n this.projectSave.saleOrderNo = String(this.editform.value.SalesOrderNo);\r\n this.projectSave.plantId = this.editform.value.Plant;\r\n this.projectSave.status = this.data.ProjectStatus;\r\n this.projectSave.bomNumbers = [];\r\n this.projectSave.isActive = true;\r\n this.projectSave.createdBy = Number(userId);\r\n this.projectSave.createdDate = new Date();\r\n this.projectSave.updatedBy = Number(userId);\r\n this.projectSave.updatedDate = new Date();\r\n this.projectSave.jobCardId = 0;\r\n console.log(this.projectSave);\r\n this.projectServ.saveProject(this.projectSave).subscribe({\r\n next: (val: any) => {\r\n this.projectServ.snackBarLoader('Updated Successfully', 'Done', '1000', 'red-snackbar')\r\n this.dialogRef.close(true);\r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n\r\n\r\n\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n onClear() {\r\n const projectName = this.editform.get('ProjectName').value;\r\n\r\n // Reset the form\r\n this.editform.reset();\r\n\r\n // Restore the email value after the reset\r\n this.editform.patchValue({ ProjectName: projectName });\r\n }\r\n\r\n}\r\n\r\n/* ****************************************************************************************** */\r\n/* ****************************************************************************************** */\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './vendor-configuration.component.html',\r\n styleUrls: ['./projectDetails_ABB.component.scss']\r\n})\r\n\r\nexport class VendorMaterialDialog {\r\n /**\r\n *\r\n */\r\n\r\n AssignActivateVendor: FormGroup;\r\n index: number = 0;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: VendorDialogList, private formBuilder: FormBuilder, private apisrv: ApiservicesService, public dialogRef: MatDialogRef, public dialog: MatDialog, private projectServ: ProjectService) { }\r\n\r\n displayedColumns: string[] = ['BOMNumber','ModuleName', 'VendorName', 'VendorCode','DriveType', 'DriveRating', 'PoNo', 'PoDate', 'PoQty', 'NoOfTls', 'NoOfCubicals', 'NoOfDrives','Status', 'Edit', 'Assign'];\r\n vendordataSource!: MatTableDataSource;\r\n wiringTableSave: WiringTableSave={WiringTableId:0,VendorId:0, PurchaceOrderNo: '', PurchaceOrderDate:'',PurchaceOrderQty:0,NoOfTls: 0,NoOfCubicles:0,NoOfdrives: 0,DriveType:'',DriveRating:'',createdBy:0}\r\n \r\n ngOnInit() {\r\n /* this.vendordataSource = new MatTableDataSource(UploadVendorData); */\r\n if (this.data != null && this.data != undefined) {\r\n const obj = this.data.MaterialTableDataList;\r\n console.log(obj['id']);\r\n this.getVendorData(obj['id']);\r\n }\r\n this.AssignActivateVendor = this.formBuilder.group({\r\n\r\n ModuleName: [null, null],\r\n VendorCode: [null, Validators.required],\r\n VendorName: [null, Validators.required],\r\n PoNo: [null, [Validators.required]],\r\n PoDate: [null, [Validators.required]],\r\n DriveType: [null, Validators.required],\r\n PoQty: [null, Validators.required],\r\n NoOfTls: [null, [Validators.required]],\r\n NoOfCubicals: [null, Validators.required],\r\n NoOfDrives: [null, Validators.required]\r\n });\r\n }\r\n onclickAssign() {\r\n const obj = this.data.MaterialTableDataList;\r\n const dialogRef = this.dialog.open(AddvendorConfigDialog, {\r\n data: { ProjectId: obj['id'] },\r\n height: '75%',\r\n width: '80%'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result?.data?.length > 0) {\r\n /* UploadVendorData.push(result.data[0]); */\r\n if (this.data != null && this.data != undefined) {\r\n const obj = this.data.MaterialTableDataList;\r\n console.log(obj['id']);\r\n this.getVendorData(obj['id']);\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n getVendorData(projectId) {\r\n this.projectServ.getVendorDataList(projectId).subscribe((data: any) => {\r\n console.log(data);\r\n /* this.VendorDialogData= data; */\r\n console.log(data);\r\n this.vendordataSource = new MatTableDataSource(data);\r\n })\r\n }\r\n\r\n AssignVendor(inputData)\r\n {\r\n this.wiringTableSave.WiringTableId= inputData.id\r\n //var WiringTableId= inputData.id\r\n \r\n this.projectServ.assignWiringTable(this.wiringTableSave).subscribe({\r\n next: (val :any) => {\r\n if(this.data !=null && this.data !=undefined)\r\n {\r\n const obj = this.data.MaterialTableDataList;\r\n console.log(obj['id']);\r\n this.getVendorData(obj['id']);\r\n\r\n\r\n }\r\n this.projectServ.snackBarLoader('Assigned Successfully', 'Done', '1000', 'red-snackbar')\r\n\r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n }\r\n });\r\n\r\n\r\n /* this.projectServ.assignWiringTable(wiringTableId).subscribe((outputData:any)=>{\r\n if(this.data !=null && this.data !=undefined)\r\n {\r\n const obj = this.data.MaterialTableDataList;\r\n console.log(obj['id']);\r\n this.getVendorData(obj['id']);\r\n \r\n \r\n }\r\n \r\n }) */\r\n\r\n }\r\n vendortbldata() {\r\n this.vendordataSource = new MatTableDataSource(UploadVendorData);\r\n }\r\n onFileChange(event: any) {\r\n const file = event.target.files[0];\r\n if (file) {\r\n this.vendortbldata();\r\n }\r\n }\r\n EditVendorDailogue(data: any) {\r\n debugger;\r\nconsole.log(data);\r\n const dialogRef = this.dialog.open(EditvendorConfigDialog, {\r\n data: { Id: data.id,BOMNumber:data.bomNumber, ModuleName: data.moduleName, VendorCode: data.vendorCode, VendorName: data.vendorName, DriveType: data.driveType, PoNo: data.poNo, PoDate: data.PoDate, PoQty: data.poQty, NoOfTls: data.noOfTls, NoOfCubicals: data.noOfCubicals, NoOfDrives: data.noOfDrives },\r\n height: '75%',\r\n width: '80%'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.vendortbldata();\r\n\r\n });\r\n }\r\n onDeleteVendor(data: any) {\r\n\r\n if (confirm(\"Are you sure you want to delete the vendor details: \")) {\r\n this.vendortbldata();\r\n }\r\n }\r\n close() {\r\n this.dialogRef.close({ event: null, data: this.vendordataSource });\r\n }\r\n onClear() {\r\n this.AssignActivateVendor.reset();\r\n }\r\n\r\n}\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './EditvendorConfigDialog.html',\r\n styleUrls: ['./projectDetails_ABB.component.scss']\r\n})\r\n\r\n\r\n\r\n\r\n\r\nexport class EditvendorConfigDialog {\r\n /**\r\n *\r\n */\r\n\r\n VendorList: VendorMST[]=[];\r\n @ViewChild('select') select: MatSelect;\r\n searchValueText: string = '';\r\n@ViewChild('searchVendor') searchVendorTextBox: ElementRef;\r\n selectVendorFormControl = new FormControl([]);\r\n searchVendorTextboxControl = new FormControl();\r\n selectedVendorValues = [];\r\n vendorFilteredOptions: Observable= of(this.VendorList);\r\n selectedVendorId= new FormControl([]);\r\n selectedVendorValue= new FormControl([]);\r\n\r\n\r\n\r\n editVendorform: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: VendorDialogData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, private apisrv: ApiservicesService,private vendorData: VendorDataService , public dialogRef: MatDialogRef) { }\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n ngOnInit() {\r\n\r\n this.getVendorData(1)\r\n const existingDate = new Date(this.data.PoDate);\r\n this.editVendorform = this.formBuilder.group({\r\n ModuleName: [this.data.ModuleName, Validators.required],\r\n /* VendorName: [this.data.VendorName, Validators.required],\r\n VendorCode: [this.data.VendorCode, Validators.required], */\r\n selectVendorFormControl :[null,Validators.required],\r\n BOMNumber: [this.data.BOMNumber, Validators.required],\r\n DriveType: [this.data.DriveType, Validators.required],\r\n PoNo: [this.data.PoNo, Validators.required],\r\n PoDate: [existingDate, Validators.required],\r\n PoQty: [this.data.PoQty, Validators.required],\r\n NoOfTls: [this.data.NoOfTls, Validators.required],\r\n UnitPrice: [this.data.NoOfCubicals, Validators.required],\r\n NoOfDrives: [this.data.NoOfDrives, Validators.required]\r\n });\r\n \r\n }\r\n\r\n\r\n/* Start- Binding methods of Vendor Dropdown with search and single value selection */\r\ngetVendorData(id){\r\n this.vendorData.getVendorList(id).subscribe((data:any)=>{\r\n console.log(data);\r\n this.VendorList = data,\r\n this.vendorFilteredOptions = this.searchVendorTextboxControl.valueChanges \r\n.pipe(\r\n startWith(''),\r\n map(name => this.VendorFilter(name))\r\n);\r\n () => console.log('Get all complete'); \r\n}\r\n );\r\n \r\n \r\n}\r\n\r\n\r\nprivate VendorFilter(name: string) {\r\n const filterValue = name.toLowerCase();\r\n // Set selected values to retain the selected checkbox state \r\n this.setVendorSelectedValues();\r\n this.selectedVendorId= new FormControl([]);\r\n this.selectedVendorValue= new FormControl([]);\r\n this.selectVendorFormControl.patchValue(this.selectedVendorValues);\r\n this.selectVendorFormControl.value.forEach(item=> {\r\n this.selectedVendorId.value.push(item.id);\r\n this.selectedVendorValue.value.push(item.name);\r\n });\r\n let filteredList = this.VendorList.filter(option => option.name.toLowerCase().includes(filterValue.toLowerCase()));\r\n return filteredList;\r\n}\r\n\r\nvendorSelectionChange(event) {\r\n if (event.isUserInput && event.source.selected == false) {\r\n let index = this.selectedVendorValues.indexOf(event.source.value);\r\n this.selectedVendorValues.splice(index, 1)\r\n }\r\n}\r\nopenedVendorChange(e) {\r\n // Set search textbox value as empty while opening selectbox \r\n this.searchVendorTextboxControl.patchValue('');\r\n // Focus to search textbox while clicking on selectbox\r\n if (e == true) {\r\n this.searchVendorTextBox.nativeElement.focus();\r\n }\r\n}\r\n\r\nclearVendorSearch(event) {\r\n event.stopPropagation();\r\n this.searchVendorTextboxControl.patchValue('');\r\n}\r\n\r\nsetVendorSelectedValues() {\r\n console.log('selectVendorFormControl', this.selectVendorFormControl.value);\r\n if (this.selectVendorFormControl.value && this.selectVendorFormControl.value.length > 0) {\r\n this.selectVendorFormControl.value.forEach((e) => {\r\n if (this.selectedVendorValues.indexOf(e) == -1) {\r\n this.selectedVendorValues.push(e);\r\n }\r\n });\r\n }\r\n}\r\nvendorSelection() {\r\n \r\n \r\n this.selectedVendorId= new FormControl([]);\r\n this.selectedVendorValue= new FormControl([]);\r\n\r\n \r\n if(this.selectedVendorValues.length !=0){\r\n this.selectedVendorValues.forEach(item=> {\r\n this.selectedVendorId.value.push(item.id);\r\n this.selectedVendorValue.value.push(item.name);\r\n });\r\n }\r\n /* this.selectedVendorId.value.push(this.selectVendorFormControl.value.id);\r\n this.selectedVendorValue .value.push(this.selectVendorFormControl.value.code);*/\r\n\r\n this.selectedVendorId.value.push(this.editVendorform.controls.selectVendorFormControl.value.vendorId);\r\n this.selectedVendorValue.value.push(this.editVendorform.controls.selectVendorFormControl.value.name);\r\n \r\n\r\n this.editVendorform.value.vendorControl = this.selectedVendorId.value;\r\n console.log(this.editVendorform.value.vendorControl);\r\n \r\n}\r\n\r\nselectedVendorIdExists(id: number):boolean{\r\n return this.selectedVendorId.value.some(item=>item === id);\r\n}\r\nselectedVendorValueExists(value: string):boolean{\r\n return this.selectedVendorValue.value.some(item=>item === value);\r\n}\r\n/* END- Binding methods of Vendor Dropdown with search and single value selection */\r\nhandleInput(event: KeyboardEvent): void{\r\n event.stopPropagation();\r\n} \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n onClear() {\r\n this.editVendorform.reset();\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n\r\n onsubmit() {\r\n\r\n if (this.editVendorform.valid) {\r\n if (this.data != null) {\r\n\r\n this._snackBar.open('Vendor details updated successfully', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n this.dialogRef.close();\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\nexport interface DisputeSave {\r\n id: number,\r\n wiringTableId: number,\r\n remarks: string,\r\n resolutionRemarks: string,\r\n status: string,\r\n isActive: boolean,\r\n createdBy: number,\r\n createdDate: Date,\r\n updatedBy: number,\r\n updatedDate: Date\r\n}\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './dispute.component.html',\r\n styleUrls: ['./projectDetails_ABB.component.scss']\r\n})\r\n\r\nexport class DisputeDialog {\r\n /**\r\n *\r\n */\r\n form: FormGroup;\r\n reopenform: FormGroup;\r\n bomnoList: BOMMST[] = [];\r\n selectedBomNumValue = [];\r\n WiringTableList: WiringTableMST[] = [];\r\n wiringTableFormControl = new FormControl();\r\n selectBOMNumFormControl = new FormControl();\r\n selectedBomId: number;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n\r\n disputeSave: DisputeSave = {\r\n id: 0, wiringTableId: 0, remarks: '', resolutionRemarks: '', status: '', isActive: true,\r\n createdBy: 1, createdDate: new Date(), updatedBy: 1, updatedDate: new Date()\r\n }\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, public dialogRef: MatDialogRef, public dialog: MatDialog, private projectServ: ProjectService, private disputeServ: DisputeService) {\r\n this.form = this.formBuilder.group({\r\n Remarks: ['Article missing'], // Default value set here\r\n // other form controls...\r\n });\r\n }\r\n\r\n displayedColumns: string[] = ['VendorCode', 'PoNo'];\r\n vendordataSource!: MatTableDataSource;\r\n\r\n ngOnInit() {\r\n this.getBOMDetail(this.data.Id, 0);\r\n\r\n this.form = this.formBuilder.group({\r\n Id: 0,\r\n selectBOMNumFormControl: [null, Validators.required],\r\n wiringTableFormControl: [null, Validators.required],\r\n Remarks: [null, null],\r\n ResolutionRemarks: [null, null],\r\n disputeStatus2: [\"reopened\", null]\r\n });\r\n\r\n this.reopenform = this.formBuilder.group({\r\n Id: 0,\r\n selectBOMNumFormControl: [null, Validators.required],\r\n wiringTableFormControl: [null, Validators.required],\r\n Remarks: [null, null],\r\n ResolutionRemarks: [null, null],\r\n disputeStatus2: [\"reopened\", null]\r\n });\r\n\r\n }\r\n getBOMDetail(projectId, id) {\r\n\r\n this.projectServ.getBOMDetailList(projectId, id).subscribe((data: any) => {\r\n this.bomnoList = data;\r\n });\r\n }\r\n\r\n bomNumSelection(bomid: number) {\r\n this.selectedBomId = bomid;\r\n this.form.controls['selectBOMNumFormControl'].patchValue(bomid);\r\n this.WiringTableList = [];\r\n\r\n this.wiringTableFormControl.reset();\r\n\r\n this.projectServ.getWiringTbleList(bomid, 0).subscribe((data: any) => {\r\n this.WiringTableList = data;\r\n });\r\n }\r\n wiringTableIdSelection(wiringTableId: number) {\r\n this.disputeServ.GetDispute(wiringTableId, 0).subscribe((data: any) => {\r\n if (data.length > 0) {\r\n this.form = this.formBuilder.group({\r\n Id: [data[0]?.id],\r\n selectBOMNumFormControl: [this.selectedBomId, Validators.required],\r\n wiringTableFormControl: [data[0].wiringTableId, Validators.required],\r\n Remarks: [data[0].remarks, null],\r\n ResolutionRemarks: [data[0].resolutionRemarks, null],\r\n disputeStatus2: [\"reopened\", null]\r\n });\r\n }\r\n else {\r\n this.form.controls['Remarks'].reset();\r\n }\r\n });\r\n }\r\n wiringTableIdSelectionReopen(wiringTableId: number) {\r\n this.disputeServ.GetDispute(wiringTableId, 0).subscribe((data: any) => {\r\n if (data.length > 0) {\r\n this.reopenform = this.formBuilder.group({\r\n Id: [data[0]?.id],\r\n selectBOMNumFormControl: [this.selectedBomId, Validators.required],\r\n wiringTableFormControl: [data[0].wiringTableId, Validators.required],\r\n Remarks: [data[0].remarks, null],\r\n ResolutionRemarks: [data[0].resolutionRemarks, null],\r\n disputeStatus2: [data[0].disputeStatus.toLowerCase(), null]\r\n });\r\n }\r\n else {\r\n this.reopenform.controls['Remarks'].reset();\r\n }\r\n });\r\n }\r\n onClear() {\r\n this.form.reset();\r\n this.reopenform.controls['Remarks'].patchValue(null);\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n onClickSave() {\r\n var userId = sessionStorage.getItem('userId');\r\n this.form.controls['wiringTableFormControl'].patchValue(this.wiringTableFormControl.value);\r\n if (this.reopenform.controls['Id'].value != 0) {\r\n if (!this.reopenform.value.disputeStatus2) {\r\n this.projectServ.snackBarLoader('Please select any Status', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.reopenform.value.Remarks) {\r\n this.projectServ.snackBarLoader('Please enter remarks', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.reopenform.value.wiringTableFormControl) {\r\n this.projectServ.snackBarLoader('Please select Wiring Table', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.reopenform.valid) {\r\n this.disputeSave.id = this.reopenform.controls['Id'].value,\r\n this.disputeSave.wiringTableId = this.reopenform.controls['wiringTableFormControl'].value;\r\n this.disputeSave.remarks = this.reopenform.controls['Remarks'].value;\r\n this.disputeSave.resolutionRemarks = this.reopenform.controls['ResolutionRemarks'].value;\r\n this.disputeSave.status = this.reopenform.controls['disputeStatus2'].value;\r\n this.disputeSave.updatedBy = Number(userId);\r\n this.disputeServ.saveDispute(this.disputeSave).subscribe({\r\n next: (val: any) => {\r\n this.projectServ.snackBarLoader('Dispute ' + this.disputeSave.status + ' Successfully', 'Done', '1000', 'red-snackbar')\r\n this.dialogRef.close(true);\r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n }\r\n });\r\n this.dialogRef.close();\r\n }\r\n }\r\n else {\r\n if (!this.form.value.selectBOMNumFormControl) {\r\n this.projectServ.snackBarLoader('Please select BOM No', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.form.value.wiringTableFormControl) {\r\n this.projectServ.snackBarLoader('Please select Wiring Table', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.form.value.disputeStatus2) {\r\n this.projectServ.snackBarLoader('Please select any Status', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.form.value.Remarks) {\r\n this.projectServ.snackBarLoader('Please enter remarks', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n if (this.form.valid) {\r\n this.disputeSave.id = this.form.controls['Id'].value,\r\n this.disputeSave.wiringTableId = this.form.controls['wiringTableFormControl'].value;\r\n this.disputeSave.remarks = this.form.controls['Remarks'].value;\r\n this.disputeSave.resolutionRemarks = this.form.controls['ResolutionRemarks'].value;\r\n this.disputeSave.status = this.form.controls['disputeStatus2'].value;\r\n this.disputeSave.createdBy = Number(userId);\r\n this.disputeServ.saveDispute(this.disputeSave).subscribe({\r\n next: (val: any) => {\r\n this.projectServ.snackBarLoader('Dispute ' + this.disputeSave.status + ' Successfully', 'Done', '1000', 'red-snackbar')\r\n this.dialogRef.close(true);\r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n }\r\n });\r\n this.dialogRef.close();\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport function alphanumericValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n // Regex to check for at least one alphabet, one number, and one character\r\n const regex = /^(?=.*[A-Za-z])(?=.*\\d)(?=.*[^\\w\\s]).+$/;\r\n \r\n if (value && !regex.test(value)) {\r\n return { alphanumeric: true };\r\n }\r\n return null; // return null if validation passes\r\n };\r\n}\r\n\r\n\r\n\r\n\r\nexport function containsAtLeastOneCharacterValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n\r\n // Check if value contains at least one non-whitespace character\r\n const hasAtLeastOneCharacter = value && value.trim().length > 0;\r\n\r\n // Return an error if no valid character is found, otherwise return null\r\n return hasAtLeastOneCharacter ? null : { containsCharacter: true };\r\n };\r\n}\r\n\r\n\r\n\r\n\r\nexport function containsAlphabetValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n \r\n // Regular expression to check for at least one alphabet\r\n const hasAlphabet = /[A-Za-z]/.test(value);\r\n\r\n // Return an error if no alphabet is found, otherwise return null\r\n return hasAlphabet ? null : { containsAlphabet: true };\r\n };\r\n}\r\n\r\nexport interface ABBVendorMaterialReviewData {\r\n ModuleName: string,\r\n VendorCode: string,\r\n VendorName: string,\r\n MaterialName: string,\r\n MaterialNo: string,\r\n UOM: string,\r\n UsedQty: number,\r\n UnitPrice: number,\r\n FinalPrice: number,\r\n VerifiedQty:number,\r\n VerifiedPrice:number,\r\n MaterialType:string,\r\n IsVerified:boolean,\r\n Status: string,\r\n FileName:string,\r\n FileExtension:string,\r\n color:string,\r\n}\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './ViewMaterialReview.html',\r\n styleUrls: ['./ProjectDetails_ABB.component.scss']\r\n})\r\n\r\nexport class ViewMaterialReview {\r\n /**\r\n *\r\n */\r\n MaterialReviewVendorform: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n tempData:any[];\r\n searchValue:string='';\r\n showVerified:boolean=false;\r\n\r\n @ViewChild('TABLE') table: ElementRef;\r\n displayedColumns: string[] = ['Module', 'MaterialType','MaterialName', 'MaterialNo','spacerColumn', 'UOM', 'spacerColumn', 'UsedQty', 'UnitPrice', 'TotalPrice'];\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: VendorDialogData, private _snackBar: MatSnackBar, private apisrv: ApiservicesService, public dialogRef: MatDialogRef,\r\nprivate vendServ:VendorDataService) { }\r\n\r\n viewMaterialDataSource: MatTableDataSource;\r\n viewMaterialDataSource2: MatTableDataSource;\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n ngOnInit() {\r\n this.getMaterialReviewFromCClassIDDetails();\r\n }\r\n getMaterialReviewFromCClassIDDetails(){\r\n this.vendServ.getMaterialReviewFromCClassIDDetails(this.data.Id,0).subscribe((data:any)=>{\r\n debugger;\r\n this.tempData = data;\r\n this.showVerified = data.filter(x => x.isVerified == true)?.length >0? true:false;\r\n if (this.showVerified) this.displayedColumns= ['Module','MaterialType','spacerColumn', 'MaterialName', 'MaterialNo','spacerColumn', 'UOM', 'spacerColumn', 'UsedQty', 'UnitPrice', 'TotalPrice','VerifiedQty','VerifiedPrice'];\r\n this.viewMaterialDataSource = new MatTableDataSource(data);\r\n this.viewMaterialDataSource2 = new MatTableDataSource(data);\r\n this.viewMaterialDataSource.paginator= this.paginator;\r\n\r\n });\r\n }\r\n ExportTOExcel()\r\n {\r\n var ws: XLSX.WorkSheet=XLSX.utils.table_to_sheet(this.table.nativeElement);\r\n if (this.showVerified)\r\n ws['!cols']=[{width:40},{width:40},{width:0},{width:70},{width:40},{width:0},{width:20},{width:0},{width:10},{width:10},{width:10},{width:10},{width:10},{width:10}];\r\n else\r\n ws['!cols']=[{width:40},{width:40},{width:70},{width:40},{width:0},{width:10},{width:0},{width:10},{width:10},{width:10},{width:10},{width:10},{width:10},{width:10}];\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n\r\n /* save to file */\r\n debugger;\r\n if((this.data.BOMNumber?.length + this.data.ModuleName?.length)>150)\r\n XLSX.writeFile(wb, 'BomNo_' + this.data.BOMNumber.slice(0,10) + '_WiringTableName_' + this.data.ModuleName.slice(0,10) + '.xlsx');\r\n else\r\n XLSX.writeFile(wb,'BomNo_'+this.data.BOMNumber+'_WiringTableName_'+ this.data.ModuleName+'.xlsx');\r\n \r\n }\r\n\r\n onClear() {\r\n this.MaterialReviewVendorform.reset();\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n onUpdate() {\r\n\r\n }\r\n exportExcel()\r\n {\r\n this.ExportTOExcel();\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.searchValue = filterValue;\r\n console.log('search'+this.searchValue)\r\n this.viewMaterialDataSource.filter = filterValue.trim().toLowerCase();\r\n this.viewMaterialDataSource2.filter = filterValue.trim().toLowerCase();\r\n }\r\n onsubmit() {\r\n if (this.MaterialReviewVendorform.valid) {\r\n if (this.data != null) {\r\n this._snackBar.open('Vendor details updated successfully', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n this.dialogRef.close();\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\n","\r\n\r\n

Project Details

\r\n
\r\n
\r\n
\r\n \r\n\r\n Search \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
Id {{element.id}} Sale Order Number {{element.salesOrderNo}} Project Name {{element.projectName}} Customer {{element.customer}} Plant {{element.plant}} Project Status \r\n {{element.projectStatus}}\r\n Project Created Date{{element.projectCreatedDate}} Actions \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
No data matching the filter \"{{input.value}}\"
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n\r\n
\r\n","
\r\n
\r\n

Add Project

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n

Add Project Details

\r\n
\r\n
\r\n
\r\n \r\n Project Name\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Plant\r\n \r\n {{plant.name}}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Sale Order Number\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Customer\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Add BOM Details

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n BOM Number\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Wiring Table\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
","
\r\n
\r\n

View Project

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n Project Details\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n Wiring Table Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Wiring Table Name {{element.moduleName}} Vendor Code {{element.vendorCode}} Vendor Name {{element.vendorName}} Purchase Order No {{element.poNo}} Purchase Order Date {{element.poDate}} No Of Tls {{element.noOfTls}} No Of Cubicles {{element.noOfCubicals}} No Of Drives {{element.noOfDrives}} Wiring Table Status{{element.status}}View \r\n Materials
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Invoice Details\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
Wiring Table Name {{element.moduleName}} Vendor Code {{element.vendorCode}} Vendor Name {{element.vendorName}} Purchase Order No {{element.poNo}} Purchase Order Date {{element.poDate}} Invoice No {{element.invoiceNo}} Invoice Date {{element.invoiceDate}} Invoice Amount {{element.invoiceAmount}} Uploaded Invoice File {{element.invoiceUpload}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","
\r\n
\r\n

Edit Project

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Project Name\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Plant\r\n \r\n {{plant.name}}\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n Sale Order Number\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Customer\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
","\r\n
\r\n
\r\n

Vendor Configuration

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n\r\n
Wiring Table Name {{element.moduleName ? (element.moduleName | slice:0:20) + '...' : ''}} Vendor Code {{element.vendorCode}} Vendor Name {{element.vendorName ? (element.vendorName | slice:0:20) + '...' : ''}} BOM Number {{element.bomNumber ? (element.bomNumber | slice:0:20) + '...' : ''}} DriveType {{element.driveType}} DriveRating {{element.driveRating}} Purchase Order No {{element.poNo}} Purchase Order Date {{element.poDate}} PO Qty {{element.poQty}} No Of TLs {{element.noOfTls}} No Of Cubicles {{element.noOfCubicals}} No Of Drives {{element.noOfDrives}} Status {{element.status}} Edit \r\n \r\n Assign \r\n \r\n\r\n \r\n Admin \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n","
\r\n
\r\n

Edit Vendor Configuration Details

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n BOMNumber\r\n \r\n \r\n
\r\n
\r\n \r\n WiringTable Name\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n Select Vendor\r\n \r\n \r\n {{selectedVendorValue.value}} \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
No results found!
\r\n
\r\n \r\n {{vendor.name}} \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n Purchase Order No\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n Select Date\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n PO Qty\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n No of TLs\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n No Of Drives\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n No of Cubicles\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Drive Type\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n","
\r\n
\r\n

Dispute Details

\r\n
\r\n
\r\n close\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n Dispute Raised\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n BOM NO\r\n \r\n {{bomNo.name}}\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n Wiring Table\r\n \r\n {{WiringTable.name}}\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Raised Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n \r\n Dispute Reopened/ Closed\r\n
\r\n\r\n
\r\n
\r\n \r\n BOM NO\r\n \r\n {{bomNo.name}}\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n Wiring Table\r\n \r\n {{WiringTable.name}}\r\n\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n Dispute Status\r\n \r\n Reopened\r\n Closed\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n Raised Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n Resolved Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n
","
\r\n
\r\n

View Material Details

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n \r\n\r\n Search \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Wiring Table Name {{element.moduleName}} Article Name {{element.materialName}} Article No {{element.materialNo}} Material Type {{element.materialType}} UOM {{element.uom}} Used Qty {{element.usedQty}} Unit Price {{element.unitPrice}} Final Price {{element.finalPrice}} Verified Qty {{element.verifiedQty}} Verified Price {{element.verifiedPrice}}
No records foundNo data matching the filter
\r\n
\r\n
\r\n \r\n
\r\n \r\n
","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport {MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators, FormControl} from '@angular/forms';\r\nimport { UploadVendorData, VendorDialogData } from '../ProjectDetails_ABB/projectDetails_ABB.component';\r\nimport { BOMMST, DialogData, WiringTableMST } from '../ProjectDetails_ABB/AddvendorConfigDialog';\r\nimport { ProjectService } from '../Services/project.service';\r\nimport { InvoiceService } from '../Services/invoice.service';\r\nimport { AttachmentSave } from '../create-assign-vendor/create-assign-vendor.component';\r\nimport { VendorDataService } from '../Services/vendor-data.service';\r\nimport { formatDate } from '@angular/common';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n export interface InvoiceDialogData{\r\n Id:number,\r\n WiringTableId:number,\r\n PurchaceOrderNo:string,\r\n PurchaceOrderDate:string,\r\n InvoiceNo:string,\r\n InvoiceDate :string,\r\n InvoiceAmount :string,\r\n uploadedFile:string,\r\n isConsent : boolean,\r\n createdBy:number,\r\n createdDate: Date,\r\n updatedBy:number,\r\n updatedDate: Date\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './AddInvoiceDialog.html',\r\n styleUrls: ['./ProjectDetails_Vendor.component.scss']\r\n})\r\n\r\nexport class AddInvoiceDialog {\r\n /**\r\n *\r\n */\r\n addInvoiceForm: FormGroup;\r\n index: number = 0;\r\n BOMList: BOMMST[]=[];\r\n arrayBuffer:any;\r\n selectBOMNumFormControl = new FormControl();\r\n selectedBomNumValue = [];\r\n displayedColumns: string[] = [];\r\n WiringTableList:WiringTableMST[]=[];\r\n wiringTableFormControl = new FormControl();\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n selectedBomId: number;\r\n Uploadedfile:string;\r\n fileUploaded :File;\r\n purchaseDate :Date;\r\n radiobuttonclickValue:boolean= true;\r\n invoiceSave: InvoiceDialogData={Id:0,WiringTableId:0, PurchaceOrderNo: '', PurchaceOrderDate:'',InvoiceNo:'',InvoiceDate:'',InvoiceAmount:'',uploadedFile:\"\",isConsent:true,createdBy:0,createdDate:new Date(),updatedBy:0,updatedDate:new Date()}\r\n attachmentAdd: AttachmentSave={Id:0,ProjectCclassAssemblyDtlId:0,FileName:'',FileExtension:'',UploadedDate:new Date(),\r\n Link:'',CategoryId:0,IsActive:true,IsABB:false,IsVendor:false,Remark:'',ProjectCclassAssemblyInvoicId: null,ProjectCClassAssemblyDisputeId:null,DisputeRaisedCategory:null}\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder, private invoiceSrv: InvoiceService, public dialogRef: MatDialogRef,private projectServ:ProjectService,\r\nprivate vendorService:VendorDataService, private datePipe: DatePipe) { }\r\n\r\n vendordataSource!: MatTableDataSource;\r\n\r\n addInvoiceData: InvoiceDialogData[] = [];\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n\r\n ngOnInit() {\r\n this.addInvoiceForm = this.formBuilder.group({\r\n selectBOMNumFormControl :[null,Validators.required],\r\n wiringTableFormControl :[null,Validators.required],\r\n PoNo: [null],\r\n PoDate: [null],\r\n InvoiceNo: [null, [Validators.required]], /* , containsAlphabetAndNumberValidator() */\r\n InvoiceDate: [null, Validators.required],\r\n InvoiceAmount: [null, [Validators.required, Validators.pattern(this.numberRegex)]],\r\n invoiceUpload: [null, Validators.required],\r\n isConsent:[true]\r\n });\r\n this.getBOMDetail(this.data.Id,0);\r\n\r\n\r\n }\r\n getBOMDetail(projectId,id){\r\n var vendorId = sessionStorage.getItem('vendorId');\r\n this.invoiceSrv.getInvoiceVendorBasedBOMDetailList(projectId,vendorId,id).subscribe((data:any)=>{\r\n this.BOMList = data;\r\n });\r\n }\r\n bomNumSelection(bomid: number) {\r\n this.selectedBomId = bomid;\r\n this.addInvoiceForm.controls['selectBOMNumFormControl'].patchValue(bomid);\r\n this.WiringTableList = [];\r\n\r\n this.wiringTableFormControl.reset();\r\n var vendorId = sessionStorage.getItem('vendorId');\r\n this.invoiceSrv.getInvoiceWiringTbleList(bomid,vendorId, 0).subscribe((data: any) => {\r\n this.WiringTableList = data, () => console.log('Get all complete');\r\n });\r\n }\r\n\r\n onClear() {\r\n this.addInvoiceForm.reset();\r\n this.addInvoiceForm.controls['isConsent'].patchValue(true);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n radiobuttonclick(event:any)\r\n {\r\n this.radiobuttonclickValue = event.checked;\r\n }\r\n onFileChange(event : any) {\r\n const file = event.target.files[0];\r\n if (file) { \r\n this.Uploadedfile = file.name;\r\n this.fileUploaded = file;\r\n }\r\n }\r\n wiringTableIdSelection(wiringTableId: number) {\r\n this.projectServ.getPurchaseDetails(this.data.Id,wiringTableId).subscribe((res:any)=>{\r\n if(res != null)\r\n {\r\n this.addInvoiceForm.controls['PoNo'].patchValue(res[0].purchaseNo);\r\n this.addInvoiceForm.controls['PoDate'].patchValue(res[0].purchaseDate);\r\n this.purchaseDate = new Date(res[0].purchaseDate);\r\n }\r\n\r\n });\r\n\r\n }\r\n onsubmit() {\r\n debugger;\r\n let invoiceDate = formatDate(this.addInvoiceForm.value.InvoiceDate,'MM/dd/yyyy','en_US');\r\n let invoiceDate2 = formatDate(this.addInvoiceForm.value.InvoiceDate, 'YYYY/MM/dd', 'en_US');\r\n let a = formatDate(this.addInvoiceForm.value.PoDate, 'YYYY/MM/dd', 'en_US')\r\n if (!this.addInvoiceForm.value.selectBOMNumFormControl) {\r\n this.projectServ.snackBarLoader('Please select BOM No', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.addInvoiceForm.value.wiringTableFormControl) {\r\n this.projectServ.snackBarLoader('Please select Wiring Table', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.addInvoiceForm.value.InvoiceNo) {\r\n this.projectServ.snackBarLoader('Please enter Invoice No.', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n /* if (this.addInvoiceForm.value.InvoiceNo <= 0) {\r\n this.projectServ.snackBarLoader('Please enter valid value for InvoiceNo', 'Done', '1000', 'red-snackbar')\r\n return;\r\n } */\r\n if (!this.addInvoiceForm.value.InvoiceDate) {\r\n this.projectServ.snackBarLoader('Please enter Invoice Date', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if ( invoiceDate2 <= formatDate(this.addInvoiceForm.value.PoDate,'YYYY/MM/dd','en_US'))\r\n {\r\n this.projectServ.snackBarLoader('Please enter Invoice Date greater than purchase date.', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.addInvoiceForm.value.InvoiceAmount) {\r\n this.projectServ.snackBarLoader('Please enter Invoice Amount', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n \r\n /* if (this.addInvoiceForm.get('InvoiceNo').hasError('containsAlphabet') ==true || this.addInvoiceForm.get('InvoiceNo').hasError('containsNumber') ==true )\r\n {\r\n this.projectServ.snackBarLoader('Please enter valid value for InvoiceNumber', 'Done', '1000', 'red-snackbar')\r\n return;\r\n } */\r\n if (this.addInvoiceForm.value.InvoiceAmount <= 0) {\r\n this.projectServ.snackBarLoader('Please enter valid value for InvoiceAmount', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.addInvoiceForm.value.invoiceUpload) {\r\n this.projectServ.snackBarLoader('Please upload Invoice file', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if(this.fileUploaded.name.split('.')[this.fileUploaded.name.split('.').length-1]!='png' && this.fileUploaded.name.split('.')[this.fileUploaded.name.split('.').length-1]!= 'pdf'){\r\n this.projectServ.snackBarLoader('Only .pdf or png files are allowed', 'Done', '1000', 'red-snackbar');\r\n return;\r\n }\r\n if (this.addInvoiceForm.valid) {\r\n var userId = sessionStorage.getItem('userId');\r\n this.invoiceSave.Id= this.index + 1;\r\n this.invoiceSave.WiringTableId= this.addInvoiceForm.get('wiringTableFormControl').value;\r\n this.invoiceSave.InvoiceNo= this.addInvoiceForm.get('InvoiceNo').value;\r\n this.invoiceSave.InvoiceDate= this.datePipe.transform( this.addInvoiceForm.get('InvoiceDate').value,'MM/dd/yyyy'),\r\n \r\n this.invoiceSave.InvoiceAmount= this.addInvoiceForm.get('InvoiceAmount').value;\r\n this.invoiceSave.uploadedFile= this.Uploadedfile,\r\n this.invoiceSave.isConsent =this.addInvoiceForm.get('isConsent').value;\r\n this.invoiceSave.createdBy = Number(userId);\r\n this.invoiceSave.createdDate = new Date();\r\n\r\n\r\n this.attachmentAdd.FileName = this.Uploadedfile;\r\n this.attachmentAdd.FileExtension = this.Uploadedfile.split('.')[this.fileUploaded.name.split('.').length-1];\r\n this.attachmentAdd.Link=\"\";\r\n this.attachmentAdd.IsVendor=true;\r\n this.attachmentAdd.IsABB= false;\r\n this.attachmentAdd.ProjectCclassAssemblyDtlId = this.addInvoiceForm.get('wiringTableFormControl').value;\r\n this.attachmentAdd.UploadedDate = new Date();\r\n this.attachmentAdd.IsActive = true;\r\n this.attachmentAdd.CategoryId=1;\r\n this.attachmentAdd.DisputeRaisedCategory=\"\";\r\n\r\n this.invoiceSrv.saveInvoiceDetails(this.invoiceSave).subscribe({\r\n next: (val :any) => {\r\n this.attachmentAdd.ProjectCclassAssemblyInvoicId = val;\r\n this.invoiceSrv.ABBAttachmentSaveInvoice(this.attachmentAdd).subscribe((data:any)=>{\r\n this.invoiceSrv.AddInvoiceFile(this.fileUploaded,this.attachmentAdd.ProjectCclassAssemblyDtlId).subscribe((data:any)=>{ \r\n }); \r\n this.vendorService.snackBarLoader('Submitted Successfully', 'Done', '1000', 'red-snackbar');\r\n this.dialogRef.close();\r\n \r\n /* this.dialogRef.close(); */\r\n });\r\n \r\n },\r\n error: (err: any) =>{\r\n this.projectServ.snackBarLoader(err.error,'Done','1000', 'red-snackbar')\r\n }\r\n });\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport function alphanumericValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n // Regex to check for at least one alphabet, one number, and one character\r\n const regex = /^(?=.*[A-Za-z])(?=.*\\d)(?=.*[^\\w\\s]).+$/;\r\n \r\n if (value && !regex.test(value)) {\r\n return { alphanumeric: true };\r\n }\r\n return null; // return null if validation passes\r\n };\r\n}\r\n\r\n\r\n\r\nexport function containsAlphabetAndNumberValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n\r\n // Regex to check for at least one alphabet and one number\r\n const hasAlphabet = /[A-Za-z]/.test(value); // Checks for at least one alphabet\r\n const hasNumber = /\\d/.test(value); // Checks for at least one number\r\n\r\n // Return an error if no alphabet or no number is found\r\n if (!hasAlphabet) {\r\n return { containsAlphabet: true };\r\n }\r\n\r\n if (!hasNumber) {\r\n return { containsNumber: true };\r\n }\r\n\r\n return null; // Valid if both conditions are met\r\n };\r\n}\r\n","
\r\n
\r\n

Add Invoice

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n Select BOM Number \r\n \r\n {{bomnum.name}}\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Select Wiring Table\r\n \r\n {{WiringTable.name}}\r\n \r\n \r\n
\r\n
\r\n \r\n Purchase Order No\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n Purchase Order Date\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Invoice No\r\n \r\n \r\n
\r\n
\r\n \r\n Invoice Date\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Invoice Amount\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n (choose only .png,pdf)\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n I hereby confirm that there is no excess material left over from the following project.
All materials have been accounted for and utilized as per the project requirements.
If we found any excess /left out material observed during verification same will be debited on your account.
\r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { AddInvoiceDialog } from './AddInvoiceDialog';\r\nimport { InvoiceData } from '../ProjectDetails_ABB/AddvendorConfigDialog';\r\nimport { InvoiceService } from '../Services/invoice.service';\r\nimport { VendorDataService } from '../Services/vendor-data.service';\r\nimport * as saveAs from 'file-saver';\r\n\r\nexport interface DialogData {\r\n Id: number;\r\n ProjectName: string;\r\n Plant: string;\r\n SalesOrderNo: string;\r\n Customer: string;\r\n ProjectStatus: string;\r\n IsActive: boolean;\r\n}\r\n\r\nexport interface VendorInvoiceData {\r\n Id: number,\r\n AttachmentId:number;\r\n ModuleName: string,\r\n VendorCode: string,\r\n VendorName: string,\r\n PoNo: string,\r\n PoDate: string,\r\n InvoiceNo: string,\r\n InvoiceDate: string,\r\n InvoiceAmt: string,\r\n invoiceUpload: any\r\n\r\n}\r\nexport let InvoiceTableData: VendorInvoiceData[] = [\r\n { Id: 1,AttachmentId:0, ModuleName: 'Panel-1', VendorCode: '1100077135', VendorName: 'INF', PoNo: '5191574055', PoDate: '14/6/2024', InvoiceNo: '51915740551', InvoiceDate: '15/6/2024', InvoiceAmt: '234', invoiceUpload: 'Book 1.xlsx' },\r\n { Id: 2,AttachmentId:0, ModuleName: 'Panel-2', VendorCode: '1100062565', VendorName: 'PCS', PoNo: '5191574045', PoDate: '14/6/2024', InvoiceNo: '51915740451', InvoiceDate: '17/6/2024', InvoiceAmt: '435', invoiceUpload: 'PCS.xlsx' },\r\n]\r\n\r\n@Component({\r\n selector: 'app-invoice-dialog',\r\n templateUrl: './InvoiceListingdialog.html',\r\n styleUrls: ['./ProjectDetails_Vendor.component.scss']\r\n})\r\nexport class VendorInvoiceDialog implements OnInit {\r\n role:string;\r\n ProjectName: any;\r\n Plant: any;\r\n SalesOrderNo: any;\r\n Customer: any;\r\n ProjectStatus: any;\r\n\r\n\r\n TableDataIndex: number = 0;\r\n displayedColumns: string[] = ['BOMNumber','spacerColumn','ModuleName', 'spacerColumn1','PoNo', 'PoDate', 'InvoiceNo', 'InvoiceDate', 'InvoiceAmt', 'InvoiceUpload'];\r\n invoiceDataSource!: MatTableDataSource;\r\n rows = [];\r\n invoiceForm: FormGroup;\r\n\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n ModuleName: any;\r\n VendorName: any;\r\n DriveType: any;\r\n VendorCode: any;\r\n PoNo: any;\r\n PoDate: any;\r\n PoQty: any;\r\n NoOfTls: any;\r\n NoOfCubicals: any;\r\n NoOfDrives: any;\r\n\r\n ngAfterViewInit() {\r\n this.invoiceDataSource.data = InvoiceTableData;\r\n this.invoiceDataSource.paginator = this.paginator;\r\n }\r\n\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder, public dialog: MatDialog, private apisrv: ApiservicesService, public dialogRef: MatDialogRef,private invoiceServ:InvoiceService) { }\r\n\r\n ngOnInit(): void {\r\n this.invoiceForm = this.formBuilder.group({\r\n ModuleName: [null, Validators.required],\r\n VendorCode: [null, Validators.required],\r\n VendorName: [null, Validators.required],\r\n PoNo: [null, Validators.required],\r\n PoDate: [null, Validators.required],\r\n InvoiceNo: [null, Validators.required],\r\n InvoiceDate: [null, Validators.required],\r\n InvoiceAmt: [null, Validators.required],\r\n invoiceUpload: [null, Validators.required]\r\n })\r\n\r\n this.invoiceDataSource = new MatTableDataSource(InvoiceTableData);\r\n\r\n this.tbldata();\r\n this.TableDataIndex = InvoiceTableData.length;\r\n\r\n console.log(sessionStorage.getItem('role'))\r\n this.role=sessionStorage.getItem('role');\r\n }\r\n\r\n tbldata() {\r\n\r\n var vendorId = (sessionStorage.getItem('role')=='Vendor')?sessionStorage.getItem('vendorId'):0;\r\n\r\n this.invoiceServ.getInvoiceDetails(this.data.Id,vendorId).subscribe((InvoiceTableData: any) => {\r\n this.invoiceDataSource = new MatTableDataSource(InvoiceTableData);\r\n });\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.invoiceDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n onClose() {\r\n this.dialogRef.close();\r\n }\r\n onclickSubmit() {\r\n debugger;\r\n const dialogRef = this.dialog.open(AddInvoiceDialog, {\r\n data: {Id:this.data.Id},\r\n height: '95%',\r\n width: '85%'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.tbldata();\r\n });\r\n }\r\n onFileChange() {\r\n\r\n }\r\n downloadFile(element){\r\n var data1= element.attachmentId+'_'+element.invoiceUpload;\r\n this.invoiceServ.GetInvoiceFileByName(data1).subscribe((data2:any)=>{\r\n var content= data2; \r\n console.log(content); \r\n this.SaveDemo(content, element.invoiceUpload);\r\n });\r\n }\r\n base64ToArrayBuffer(base64: any): ArrayBuffer {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n}\r\nSaveDemo(data2: any, data: string){\r\n var bytes= this.base64ToArrayBuffer(data2);\r\n let file = new Blob([bytes], { type: '' });\r\n saveAs(file, data); \r\n}\r\n onClear() {\r\n this.invoiceForm.reset();\r\n }\r\n}\r\n\r\n","
\r\n
\r\n

Invoice

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
BOM Number {{element.bomNumber}}Wiring Table Name {{element.moduleName}} Purchase Order No {{element.poNo}} Purchase Order Date {{element.poDate}} Invoice No {{element.invoiceNo}} Invoice Date {{element.invoiceDate}} Invoice Amount {{element.invoiceAmount}} Uploaded Invoice File {{element.invoiceUpload}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\n\r\nimport { DispatchData } from './ProjectDetails_Vendor.component';\r\nimport { ViewVendorData, ViewVendorDialogData } from '../ProjectDetails_ABB/projectDetails_ABB.component';\r\nimport { VendorDataService } from '../Services/vendor-data.service';\r\n\r\nimport * as XLSX from 'xlsx';\r\nimport { fontWeight } from 'html2canvas/dist/types/css/property-descriptors/font-weight';\r\nimport { VendorDialogData } from '../review-update-vendor-details/review-update-vendor-details.component';\r\nexport interface DialogData {\r\n Id: number;\r\n ProjectName: string;\r\n Plant: string;\r\n SalesOrderNo: string;\r\n Customer: string;\r\n ProjectStatus: string;\r\n IsActive: boolean;\r\n}\r\nexport interface VendorMaterialReviewData {\r\n ModuleName: string,\r\n VendorCode: string,\r\n VendorName: string,\r\n MaterialName: string,\r\n MaterialNo: string,\r\n MaterialType:string,\r\n UOM: string,\r\n UsedQty: number,\r\n UnitPrice: number,\r\n FinalPrice: number,\r\n Status: string,\r\n FileName:string,\r\n FileExtension:string\r\n}\r\n\r\nexport interface AttachmentSave{\r\n Id:number;\r\n ProjectCclassAssemblyDtlId: number;\r\n FileName:string;\r\n FileExtension: string;\r\n UploadedDate:Date;\r\n Link:string;\r\n CategoryId:number;\r\n IsActive: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'app-Vendor_MaterialReview-dialog',\r\n templateUrl: './MaterialReview.html',\r\n styleUrls: ['./ProjectDetails_Vendor.component.scss']\r\n})\r\nexport class VendorMaterialReview implements OnInit {\r\n\r\n ProjectName: any;\r\n Plant: any;\r\n SalesOrderNo: any;\r\n Customer: any;\r\n ProjectStatus: any;\r\n\r\n\r\n TableDataIndex: number = 0;\r\n displayedColumns: string[] = ['BOM','ModuleName', 'PoNo', 'PoDate', 'PoQty', 'DriveType', 'NoOfTls', 'NoOfCubicals', 'NoOfDrives', 'Status', 'View','ReportUpload'];\r\n materialReviewDataSource!: MatTableDataSource;\r\n rows = [];\r\n RemarkForm: FormGroup;\r\n\r\n @ViewChild(MatPaginator) paginator!: MatPaginator;\r\n\r\n dispatchDataSource!: MatTableDataSource;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n ModuleName: any;\r\n VendorName: any;\r\n DriveType: any;\r\n VendorCode: any;\r\n PoNo: any;\r\n PoDate: any;\r\n PoQty: any;\r\n NoOfTls: any;\r\n NoOfCubicals: any;\r\n NoOfDrives: any;\r\n filteredFileList:AttachmentSave[]=[];\r\n constructor(private formBuilder: FormBuilder, public dialog: MatDialog, private apisrv: ApiservicesService, public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n private vendServ: VendorDataService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.RemarkForm = this.formBuilder.group({\r\n ModuleName: [null, null],\r\n Remarks: [null],\r\n UploadTestFile: [null]\r\n });\r\n this.getMaterialReviewList();\r\n //this.TableDataIndex = InvoiceTableData.length;\r\n }\r\n getMaterialReviewList(){\r\n this.vendServ.getMaterialReviewList(this.data.Id,Number(sessionStorage.getItem('vendorId'))).subscribe((data:any)=>{\r\n this.materialReviewDataSource = new MatTableDataSource(data);\r\n this.materialReviewDataSource.paginator = this.paginator;\r\n console.log(this.materialReviewDataSource);\r\n });\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.materialReviewDataSource.filter = filterValue.trim().toLowerCase();\r\n this.materialReviewDataSource.paginator = this.paginator;\r\n }\r\n onFileSelected(event: Event, element){\r\n const input= event.target as HTMLInputElement;\r\n if(input.files && input.files.length>0){\r\n const file= input.files[0];\r\n if(file.name.split('.')[file.name.split('.').length-1]!='xlsx'){\r\n this.vendServ.snackBarLoader('Only .xlsx files are allowed', 'Done', '1000', 'red-snackbar');\r\n input.value='';\r\n return;\r\n }else{\r\n element.fileName= file.name;\r\n element.fileExtension= element.fileName.split('.')[file.name.split('.').length-1];\r\n \r\n }\r\n \r\n }\r\n }\r\n changeAttachment(element){\r\n element.fileName='',\r\n element.fileExtension='';\r\n element.fileDisplay=false;\r\n }\r\n onSubmit(){\r\n // this.filteredFileList=[];\r\n // for(let i=0;i{\r\n // this.vendServ.snackBarLoader('Submitted Successfully', 'Done', '1000', 'red-snackbar');\r\n // this.getMaterialReviewList();\r\n // this.dialogRef.close();\r\n // });\r\n }\r\n onClose() {\r\n this.dialogRef.close();\r\n }\r\n View(element: any) {\r\n const dialogRef = this.dialog.open(ViewVendorMaterialReview, {\r\n data: { Id: element.cClassId },\r\n height: '80%',\r\n width: '85%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getMaterialReviewList();\r\n\r\n\r\n });\r\n }\r\n onClickSubmit(){\r\n\r\n }\r\n onClear() {\r\n this.RemarkForm.reset();\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './ViewVendorMaterialReview.html',\r\n styleUrls: ['./ProjectDetails_Vendor.component.scss']\r\n})\r\n\r\nexport class ViewVendorMaterialReview {\r\n /**\r\n *\r\n */\r\n MaterialReviewVendorform: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n tempData:any[];\r\n @ViewChild('TABLE') table: ElementRef;\r\n searchValue:string='';\r\n displayedColumns: string[] = ['Module','MaterialType', 'MaterialName', 'MaterialNo', 'UOM', 'spacerColumn','UsedQty', 'spacerColumn','UnitPrice', 'TotalPrice'];\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: VendorDialogData, private _snackBar: MatSnackBar, private apisrv: ApiservicesService, public dialogRef: MatDialogRef,\r\nprivate vendServ:VendorDataService) { }\r\n\r\n viewMaterialDataSource: MatTableDataSource;\r\n viewMaterialDataSource2: MatTableDataSource;\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n ngOnInit() {\r\n this.getMaterialReviewFromCClassIDDetails();\r\n }\r\n getMaterialReviewFromCClassIDDetails(){\r\n this.vendServ.getMaterialReviewFromCClassIDDetails(this.data.Id,Number(sessionStorage.getItem('vendorId'))).subscribe((data:any)=>{\r\n this.tempData = data;\r\n this.viewMaterialDataSource = new MatTableDataSource(data);\r\n this.viewMaterialDataSource2 = new MatTableDataSource(data);\r\n this.viewMaterialDataSource.paginator= this.paginator;\r\n });\r\n }\r\n ExportTOExcel()\r\n {\r\n debugger;\r\n const ws: XLSX.WorkSheet=XLSX.utils.table_to_sheet(this.table.nativeElement);\r\n ws['!cols']=[{width:40},{width:40},{width:70},{width:40},{width:20},{width:0},{width:10},{width:0},{width:20},{width:10},{width:10}];\r\n\r\n\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n\r\n /* save to file */\r\n XLSX.writeFile(wb,'BomNo_'+this.data.BOMNumber+'_WiringTableName_'+ this.data.ModuleName+'.xlsx');\r\n \r\n }\r\n\r\n onClear() {\r\n this.MaterialReviewVendorform.reset();\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n onUpdate() {\r\n\r\n }\r\n exportExcel()\r\n {\r\n debugger;\r\n this.ExportTOExcel();\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.searchValue = filterValue;\r\n this.viewMaterialDataSource.filter = filterValue.trim().toLowerCase();\r\n this.viewMaterialDataSource2.filter = filterValue.trim().toLowerCase();\r\n }\r\n onsubmit() {\r\n if (this.MaterialReviewVendorform.valid) {\r\n if (this.data != null) {\r\n this._snackBar.open('Vendor details updated successfully', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n this.dialogRef.close();\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n","
\r\n
\r\n

Material Review

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
BOM Number {{element.bomNumber ? (element.bomNumber | slice:0:20) + '...' : ''}}Wiring Table Name {{element.moduleName ? (element.moduleName | slice:0:20) + '...' : ''}}Purchase Order No {{element.poNo}} Purchase Order Date {{element.poDate}} Purchase Qty {{element.poQty}} DriveType {{element.driveType}} No Of Tls {{element.noOfTls}} No Of Cubicles {{element.noOfCubicals}} No Of Drives {{element.noOfDrives}} Wiring Table Status {{element.status}} View \r\n View Report Upload \r\n \r\n {{element.fileName}}\r\n close\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n\r\n\r\n ","
\r\n
\r\n

View Material Details

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n \r\n\r\n Search \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Wiring Table Name {{element.moduleName}} Article Name {{element.materialName}} Article No {{element.materialNo}} Material Type {{element.materialType}} UOM {{element.uom}} Used Qty {{element.usedQty}} Unit Price {{element.unitPrice}} Final Price {{element.finalPrice}}
No records foundNo data matching the filter
\r\n
\r\n
\r\n \r\n
\r\n \r\n
","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { VendorInvoiceDialog, VendorInvoiceData, InvoiceTableData } from './InvoiceListingdialog';\r\nimport { VendorMaterialReview, ViewVendorMaterialReview } from './MaterialReview';\r\nimport { DialogData, DisputeSave, MaterialTableData, MaterialTableDataList, TableData, VendorDialogData, ViewVendorData, ViewVendorDialogData } from '../ProjectDetails_ABB/projectDetails_ABB.component';\r\nimport { BOMMST, WiringTableMST } from '../ProjectDetails_ABB/AddvendorConfigDialog';\r\nimport { ProjectService } from '../Services/project.service';\r\nimport { DisputeService } from '../Services/dispute.service';\r\nimport { VendorDataService } from '../Services/vendor-data.service';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport * as XLSX from 'xlsx';\r\nimport jsPDF from 'jspdf';\r\nimport html2canvas from 'html2canvas';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n\r\nexport interface DispatchData {\r\n cClassMatID:number,\r\n cClassId: number,\r\n //Module: string,\r\n articleName: string,\r\n articleNumber: string,\r\n uom: string,\r\n usedQty: number,\r\n unitPrice: number,\r\n finalPrice: number\r\n}\r\n\r\nexport interface ExcelDispatchData {\r\n cClassMatID:number,\r\n cClassId: number,\r\n bomNumber: string,\r\n wiringTable: string,\r\n articleName: string,\r\n articleNumber: string,\r\n uom: string,\r\n usedQty: number,\r\n unitPrice: number,\r\n finalPrice: number,\r\n projectName:string,\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-vendor_projectDetails-mst',\r\n templateUrl: './ProjectDetails_Vendor.component.html',\r\n styleUrls: ['./ProjectDetails_Vendor.component.scss']\r\n})\r\nexport class ProjectDetails_VendorComponent implements OnInit {\r\n\r\n ProjectName: any;\r\n Plant: any;\r\n SalesOrderNo: any;\r\n Customer: any;\r\n ProjectStatus: any;\r\n\r\n\r\n TableDataIndex: number = 1;\r\n //displayedColumns: string[] = ['ProjectName', 'Plant', 'SalesOrderNo', 'Customer', 'ProjectStatus', 'Material', 'MaterialReview', 'View', 'Invoice']\r\n displayedColumns: string[] = ['SalesOrderNo','spacerColumn','ProjectName','spacerColumn','Customer','spacerColumn', 'Plant','spacerColumn', 'ProjectStatus','spacerColumn','ProjectCreatedDate','spacerColumn','TargetDate','spacerColumn', 'Invoice']\r\n dataSource!: MatTableDataSource;\r\n vendordataSource!: MatTableDataSource;\r\n rows = [];\r\n\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n ModuleName: any;\r\n VendorName: any;\r\n DriveType: any;\r\n VendorCode: any;\r\n PoNo: any;\r\n PoDate: any;\r\n PoQty: any;\r\n NoOfTls: any;\r\n NoOfCubicals: any;\r\n NoOfDrives: any;\r\n vendorId: number;\r\n ngAfterViewInit() {\r\n this.dataSource.data = TableData;\r\n this.dataSource.paginator = this.paginator;\r\n }\r\n\r\n\r\n constructor(public dialog: MatDialog, private apisrv: ApiservicesService,private vendServ:VendorDataService,private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.dataSource = new MatTableDataSource(TableData);\r\n\r\n this.getProjectData();\r\n console.log(sessionStorage.getItem('userId'))\r\n console.log(sessionStorage.getItem('vendorId'))\r\n this.vendorId= Number(sessionStorage.getItem('vendorId'));\r\n this.TableDataIndex = TableData.length;\r\n }\r\n getProjectData(){\r\n\r\n var vendorIdNo = (sessionStorage.getItem('role')=='Vendor')?sessionStorage.getItem('vendorId'):0;\r\n\r\n this.vendServ.getVendorProjectList(Number(vendorIdNo)).subscribe((data:any)=>{\r\n this.dataSource = new MatTableDataSource(data);\r\n console.log(this.dataSource);\r\n this.dataSource.paginator = this.paginator;\r\n })\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n disputevendorMaterial(data: any) {\r\n const dialogRef = this.dialog.open(Vendor_DisputeDialog, {\r\n data: { Id: data.id, displayedColumns: this.displayedColumns },\r\n height: '90%',\r\n width: '80%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getProjectData();\r\n });\r\n\r\n }\r\n ViewProjectDailogue(data: any) {\r\n\r\n\r\n const dialogRef = this.dialog.open(Vendor_ViewProjectDialog, {\r\n data: {Id:data.id,IsActive:data.isActive,\r\n ProjectName: data.projectName, Plant: data.plant, SalesOrderNo: data.salesOrderNo, Customer: data.customer, ProjectStatus: data.projectStatus\r\n },\r\n height: '80%',\r\n width: '80%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getProjectData();\r\n\r\n });\r\n }\r\n\r\n material(event: any) {\r\n const dialogRef = this.dialog.open(DispatchDialog, {\r\n data: { Id: event.id },\r\n height: '95%',\r\n width: '85%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.getProjectData();\r\n\r\n });\r\n }\r\n materialreview(data: any) {\r\n if (data != null && data != undefined) {\r\n \r\n this.router.navigate(['/review-update-vendor-details', data.id]); // Redirect with parameter\r\n }\r\n }\r\n /* materialreview(event: any) {\r\n const dialogRef = this.dialog.open(VendorMaterialReview, {\r\n data: { Id: event.id },\r\n height: '90%',\r\n width: '95%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getProjectData();\r\n\r\n });\r\n } */\r\n invoice(data: any) {\r\n const dialogRef = this.dialog.open(VendorInvoiceDialog, {\r\n data: { Id:data.id, displayedColumns: this.displayedColumns },\r\n height: '80%',\r\n width: '80%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getProjectData();\r\n });\r\n }\r\n\r\n\r\n shouldActionButton(row: any,action:any): string {\r\n \r\n if(action==\"Material\")\r\n {\r\n if(row.isSubmitted==true)\r\n return 'disabled'; \r\n }\r\n else \r\n if(action==\"Invoice\")\r\n {\r\n if( row.isSubmitted==true)\r\n return 'disabled'; \r\n else\r\n return 'disabled' \r\n }\r\n \r\n return 'disabled'; \r\n }\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './ViewProjectDetails_Vendor.html',\r\n styleUrls: ['./ProjectDetails_Vendor.component.scss']\r\n})\r\n\r\nexport class Vendor_ViewProjectDialog {\r\n /**\r\n *\r\n */\r\n display: boolean = true;\r\n display2 :boolean = true;\r\n vendorCode: any;\r\n\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n invoicedataSource: MatTableDataSource;\r\n vendordataSource!: MatTableDataSource;\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData, @Inject(MAT_DIALOG_DATA) public vdata: VendorDialogData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, private projectServ:ProjectService,private vendorServ:VendorDataService, public dialogRef: MatDialogRef, public dialog: MatDialog) { }\r\n\r\n vendorArray: any[] = [];\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n viewProject :MaterialTableDataList[]=[];\r\n displayedColumns: string[] = ['ModuleName', 'spacerColumn', 'PoNo', 'PoDate', 'NoOfTls', 'NoOfCubicals', 'NoOfDrives', 'Status','View'];\r\n pdfDisplayedColumns: string[] = ['ModuleName', 'spacerColumn','PoNo', 'PoDate', 'NoOfTls', 'NoOfCubicals', 'NoOfDrives', 'Status'];\r\n invoicedisplayedColumns: string[] = ['ModuleName', 'spacerColumn','PoNo', 'PoDate', 'InvoiceNo', 'InvoiceDate', 'InvoiceAmt', 'invoiceUpload'];\r\n ngOnInit() {\r\n\r\n this.viewProject.push({\r\n Id:this.data.Id,\r\n ProjectName: this.data.ProjectName,\r\n Plant:this.data.Plant,\r\n Customer:this.data.Customer,\r\n ProjectStatus:this.data.ProjectStatus,\r\n SalesOrderNo:this.data.SalesOrderNo,\r\n IsActive:this.data.IsActive\r\n });\r\n this.vendortbldata(this.data.Id);\r\n\r\n }\r\n closeGroup(expansionName:string)\r\n {\r\n switch(expansionName)\r\n {\r\n case 'expansion1':\r\n this.display = false;\r\n break;\r\n case 'expansion2':\r\n this.display2 = false;\r\n break;\r\n \r\n }\r\n\r\n }\r\n openGroup(expansionName:string)\r\n {\r\n switch(expansionName)\r\n {\r\n case 'expansion1':\r\n this.display = true;\r\n break;\r\n case 'expansion2':\r\n this.display2 = true;\r\n break;\r\n \r\n }\r\n\r\n }\r\n View(element: any) {\r\n const dialogRef = this.dialog.open(ViewVendorMaterialReview, {\r\n data: { ProjectId:this.data.Id,BOMNumber:element.bomNumber, ModuleName: element.moduleName,Id: element.id, displayedColumns: this.displayedColumns },\r\n height: '600px',\r\n width: '980px'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n vendortbldata(projectId:number) {\r\n this.vendorServ.getVendorDataMaterialList(projectId,Number(sessionStorage.getItem('vendorId'))).subscribe((data: any) => {\r\n this.vendordataSource = new MatTableDataSource(data);\r\n });\r\n }\r\n\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n makePdf() {\r\n const data = document.getElementById('contentToConvert');\r\n data.hidden=false;\r\n html2canvas(data).then(canvas => {\r\n const imgWidth = 208;\r\n const pageHeight = 295;\r\n const imgHeight = canvas.height * imgWidth / canvas.width;\r\n const heightLeft = imgHeight;\r\n \r\n const contentDataURL = canvas.toDataURL('image/png');\r\n const pdf = new jsPDF('p', 'mm', 'a4'); // A4 size page of PDF\r\n \r\n let position = 10;\r\n data.hidden=true;\r\n pdf.addImage(contentDataURL, 'PNG', 5, position, imgWidth, imgHeight);\r\n pdf.save('ViewDetails.pdf');// Generated PDF\r\n });\r\n\r\n}\r\n\r\n}\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './Dispute.component.html',\r\n styleUrls: ['./ProjectDetails_Vendor.component.scss']\r\n})\r\n\r\nexport class Vendor_DisputeDialog {\r\n /**\r\n *\r\n */\r\n form: FormGroup;\r\n bomnoList: BOMMST[] = [];\r\n selectedBomNumValue = [];\r\n WiringTableList: WiringTableMST[] = [];\r\n wiringTableFormControl = new FormControl();\r\n selectBOMNumFormControl = new FormControl();\r\n selectedBomId: number;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n disputeSave: DisputeSave = {\r\n id: 0, wiringTableId: 0, remarks: '', resolutionRemarks: '', status: '', isActive: true,\r\n createdBy: 1, createdDate: new Date(), updatedBy: 1, updatedDate: new Date()\r\n }\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: VendorDialogData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, public dialogRef: MatDialogRef, public dialog: MatDialog, private projectServ: ProjectService, private disputeServ: DisputeService) {\r\n this.form = this.formBuilder.group({\r\n Remarks: ['Article missing'], // Default value set here\r\n // other form controls...\r\n });\r\n }\r\n\r\n displayedColumns: string[] = ['VendorCode', 'PoNo'];\r\n vendordataSource!: MatTableDataSource;\r\n\r\n ngOnInit() {\r\n this.getBOMDetail(this.data.Id, 0);\r\n this.form = this.formBuilder.group({\r\n selectBOMNumFormControl: [null, null],\r\n wiringTableFormControl: [null, null],\r\n Remarks: [null, null],\r\n ResolutionRemarks: [null, null],\r\n disputeStatus1: [\"resolved\", null]\r\n });\r\n\r\n }\r\n getBOMDetail(projectId, id) {\r\n\r\n this.projectServ.getBOMDetailList(projectId, id).subscribe((data: any) => {\r\n this.bomnoList = data;\r\n });\r\n }\r\n\r\n bomNumSelection(bomid: number) {\r\n this.selectedBomId = bomid;\r\n this.form.controls['selectBOMNumFormControl'].patchValue(bomid);\r\n this.WiringTableList = [];\r\n\r\n this.wiringTableFormControl.reset();\r\n\r\n this.projectServ.getWiringTbleList(bomid, 0).subscribe((data: any) => {\r\n this.WiringTableList = data, () => console.log('Get all complete');\r\n });\r\n }\r\n onClear() {\r\n this.form.controls['ResolutionRemarks'].patchValue(null);\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n wiringTableIdSelection(wiringTableId: number) {\r\n this.disputeServ.GetDispute(wiringTableId, 0).subscribe((data: any) => {\r\n if (data.length > 0) {\r\n this.form = this.formBuilder.group({\r\n Id: [data[0].id],\r\n selectBOMNumFormControl: [this.selectedBomId, Validators.required],\r\n wiringTableFormControl: [data[0].wiringTableId, Validators.required],\r\n Remarks: [data[0].remarks, null],\r\n ResolutionRemarks: [data[0].resolutionRemarks, null],\r\n disputeStatus1: [\"resolved\", null]\r\n });\r\n }\r\n else {\r\n this.form.controls['ResolutionRemarks'].reset();\r\n }\r\n });\r\n }\r\n onClickSave() {\r\n this.form.controls['wiringTableFormControl'].patchValue(this.wiringTableFormControl.value);\r\n if (!this.form.value.selectBOMNumFormControl) {\r\n this.projectServ.snackBarLoader('Please select BOM No', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.form.value.wiringTableFormControl) {\r\n this.projectServ.snackBarLoader('Please select Wiring Table', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.form.value.disputeStatus1) {\r\n this.projectServ.snackBarLoader('Please select any Status', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.form.value.ResolutionRemarks) {\r\n this.projectServ.snackBarLoader('Please enter Resolution Remarks', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.form.valid) {\r\n this.disputeSave.id = this.form.controls['Id'].value,\r\n this.disputeSave.wiringTableId = this.form.controls['wiringTableFormControl'].value;\r\n this.disputeSave.remarks = this.form.controls['Remarks'].value;\r\n this.disputeSave.resolutionRemarks = this.form.controls['ResolutionRemarks'].value;\r\n this.disputeSave.status = this.form.controls['disputeStatus1'].value;\r\n this.disputeServ.saveDispute(this.disputeSave).subscribe({\r\n next: (val: any) => {\r\n this.projectServ.snackBarLoader('Dispute resolved Successfully', 'Done', '1000', 'red-snackbar')\r\n this.dialogRef.close(true);\r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n }\r\n });\r\n this.dialogRef.close();\r\n }\r\n }\r\n\r\n}\r\n\r\nexport interface BOMWiringDetails{\r\n bomId:number,\r\n panelId:number,\r\n bomNumber:string,\r\n panelName:string,\r\n}\r\nexport interface BOMList{\r\n bomId:number,\r\n bomNumber:string,\r\n}\r\nexport interface WiringList{\r\n panelId:number,\r\n panelName:string,\r\n}\r\nexport interface MaterialList{\r\n id: number,\r\n materialName:string,\r\n articleNumber: string,\r\n materialNameArticleNumber: string\r\n}\r\nexport interface ArticleBulkSave{\r\n projectId: number,\r\n bom:string,\r\n wiring:string,\r\n articleNo:string,\r\n articleName:string,\r\n usedQty:number,\r\n updatedBy:number,\r\n updatedDate:Date,\r\n}\r\n\r\nexport interface BOMWiringDetails{\r\n bomId:number,\r\n panelId:number,\r\n bomNumber:string,\r\n panelName:string,\r\n}\r\nexport interface BOMList{\r\n bomId:number,\r\n bomNumber:string,\r\n}\r\nexport interface WiringList{\r\n panelId:number,\r\n panelName:string,\r\n}\r\nexport interface MaterialList{\r\n id: number,\r\n materialName:string,\r\n articleNumber: string,\r\n materialNameArticleNumber: string\r\n}\r\nexport interface ArticleSave{\r\n id:number,\r\n usedQty:number,\r\n updatedBy:number,\r\n updatedDate:Date,\r\n}\r\nexport interface ArticleBulkSave{\r\n projectId: number,\r\n bom:string,\r\n wiring:string,\r\n articleNo:string,\r\n articleName:string,\r\n usedQty:number,\r\n updatedBy:number,\r\n updatedDate:Date,\r\n vendorId:number,\r\n}\r\n\r\nexport interface MaterialType {\r\n id: number;\r\n materialType: string;\r\n materialDisplayName: string;\r\n category: string;\r\n isActive: boolean;\r\n createdBy: number;\r\n createdDate: Date;\r\n updatedBy: number;\r\n updatedDate: Date;\r\n}\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './DispatchDialog.html',\r\n styleUrls: ['./ProjectDetails_Vendor.component.scss']\r\n})\r\n\r\nexport class DispatchDialog {\r\n /**\r\n *\r\n */\r\n\r\n role:string;\r\n materialNoControl = new FormControl();\r\n options: string[] = [\r\n '3AYN211810-322',\r\n '3AYN211810-107M',\r\n '3AYN211810-058M',\r\n '3AYN211810-067M',\r\n '3AYN211810-323M',\r\n '3AYN211810-001M',\r\n '3AYN211810-003M',\r\n '3AYN211810-004M',\r\n ];\r\n\r\n\r\n filteredOptions: string[] = [];\r\n dispatchForm: FormGroup;\r\n index: number = 0;\r\n selectedData: any;\r\n selectedDropValue: any;\r\n dispatchDataSource!: MatTableDataSource;\r\n dispatchAllDataSource!: MatTableDataSource;\r\n bomPanelList: BOMWiringDetails[]=[];\r\n bomList:BOMList[]=[];\r\n wiringList:WiringList[]=[];\r\n materailList:MaterialList[]=[];\r\n materialTypeList: MaterialType[];\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n MaterialName: string = '';\r\n UsedQty: Number = 0;\r\n tempData: DispatchData[] = [];\r\n articlesSaveToSend: ArticleSave[] = [];\r\n @ViewChild('searchMaterial') searchMaterailTextBox: ElementRef;\r\n selectMaterialFormControl = new FormControl([]);\r\n searchMaterialTextboxControl = new FormControl();\r\n selectedMaterialValues = [];\r\n MaterialFilteredOptions: Observable= of(this.materailList);\r\n selectedMaterialId= new FormControl([]);\r\n selectedMaterialValue= new FormControl([]);\r\n excelArticleData: any[]=[];\r\n bulkUpload:boolean=false;\r\n bulkMaterialDataToSend: ArticleBulkSave[] = [];\r\n materialModelBulkUpload: ExcelDispatchData= {} as ExcelDispatchData;\r\n constructor(private vendServ: VendorDataService,@Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder?: FormBuilder, public dialogRef?: MatDialogRef, public dialog?: MatDialog\r\n) { }\r\n\r\n\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n articleSave: ArticleSave={ id:0, usedQty: 1, updatedBy:1, updatedDate:new Date()}\r\n\r\n displayedColumns: string[] = ['MaterialName', 'MaterialNo', 'UOM', 'UsedQty', 'UnitPrice', 'TotalPrice'];//, 'DeleteVendor'\r\n ngOnInit() {\r\n this.dispatchForm = this.formBuilder.group({\r\n BOMNumber:[null, Validators.required],\r\n Module: [null, Validators.required],\r\n MaterialNo: [null, Validators.required],\r\n MaterialType: [null]\r\n //MaterialName: [null, Validators.required],\r\n });\r\n this.getBOMPanelDetailsFromProject();\r\n //this.getMaterialDetails();\r\n this.getMaterialTypeList();\r\n this.filteredOptions = this.options; // Initialize filtered options\r\n this.materialNoControl.valueChanges.subscribe(value => {\r\n this.filterOptions(value);\r\n });\r\n\r\n console.log(sessionStorage.getItem('role'))\r\n this.role=sessionStorage.getItem('role');\r\n }\r\n getAllArticleGridDetails(){\r\n\r\n this.vendServ.getAllArticleGridDetails(this.data.Id,Number(sessionStorage.getItem('vendorId'))).subscribe((excelList:any)=>{\r\n this.dispatchAllDataSource=new MatTableDataSource(excelList); \r\n console.log(this.dispatchAllDataSource);\r\n });\r\n }\r\n getMaterialTypeList() {\r\n this.vendServ.getMaterialTypeList().subscribe((matTypeList: any) => {\r\n this.materialTypeList = matTypeList.filter(x => x.isActive == true);\r\n });\r\n }\r\n getMaterialDetails(){\r\n this.vendServ.getMaterialDetails().subscribe((matList:any)=>{\r\n this.materailList= matList,\r\n this.MaterialFilteredOptions = this.searchMaterialTextboxControl.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(name => this.MaterialFilter(name))\r\n );\r\n () => console.log('Get all complete'); \r\n });\r\n }\r\n getBOMPanelDetailsFromProject(){\r\n this.vendServ.getBOMPanelDetailsFromProject(this.data.Id,Number(sessionStorage.getItem('vendorId'))).subscribe((dataList:any)=>{\r\n this.bomPanelList=dataList;\r\n this.getBOMList();\r\n });\r\n }\r\n getBOMList(){\r\n this.bomList= this.bomPanelList.map(item=>({\r\n bomId: item.bomId, bomNumber: item.bomNumber\r\n }));\r\n this.bomList=this.bomList.filter((value,index,self)=>\r\n index===self.findIndex((t)=>t.bomId===value.bomId)\r\n );\r\n \r\n }\r\n onBOMChange(bomId){\r\n console.log(this.bomPanelList);\r\n this.wiringList= this.bomPanelList.map(item=>({\r\n bomId:item.bomId, panelId:item.panelId,panelName:item.panelName\r\n })).filter(x=>x.bomId==bomId);\r\n console.log(this.wiringList);\r\n }\r\n onSearch(){\r\n debugger;\r\n if(!this.dispatchForm.value.BOMNumber){\r\n this.vendServ.snackBarLoader('Please Choose BOM Number','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n if(!this.dispatchForm.value.Module){\r\n this.vendServ.snackBarLoader('Please Choose Wiring Table','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n var cClassID=0\r\n // var articleIds=\"0\"\r\n var matTypeIds=\"0\"\r\n if(this.dispatchForm.value.MaterialType!=null)\r\n matTypeIds=this.dispatchForm.value.MaterialType.toString()\r\n const myData = { cClassID: this.dispatchForm.value.Module, \r\n matHDRIds: matTypeIds };\r\n this.vendServ.getArticleGridDetails(myData).subscribe((gridList:any)=>{\r\n this.dispatchDataSource=new MatTableDataSource(gridList); \r\n this.dispatchDataSource.paginator = this.paginator;\r\n console.log(this.dispatchDataSource);\r\n });\r\n }\r\n applyArticleFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dispatchDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n onUsedQtyChange(element){\r\n element.finalPrice= element.usedQty * element.unitPrice;\r\n element.finalPrice= element.finalPrice.toFixed(3);\r\n }\r\n Save(){\r\nvar isPositiveUsedQty=true;\r\n console.log(this.dispatchDataSource.filteredData);\r\n this.articlesSaveToSend=[];\r\n for(let i=0;i{\r\n this.vendServ.snackBarLoader('Updated successfully','Done','1000', 'red-snackbar');\r\n this.dialogRef.close();\r\n });\r\n }\r\n \r\n}\r\n private MaterialFilter(name: string) {\r\n const filterValue = name.toLowerCase();\r\n this.selectedMaterialId= new FormControl([]);\r\n this.selectedMaterialValue= new FormControl([]);\r\n if(this.dispatchForm.value.MaterialName !=null){\r\n this.dispatchForm.value.MaterialName.forEach(item=> {\r\n this.selectedMaterialId.value.push(item.id);\r\n this.selectedMaterialValue.value.push(item.materialNameArticleNumber);\r\n });\r\n }\r\n let filteredList = this.materailList.filter(option => option.materialNameArticleNumber.toLowerCase().includes(filterValue.toLowerCase()));\r\n return filteredList;\r\n }\r\n\r\n MaterialSelectionChange(event) {\r\n if (event.isUserInput && event.source.selected == false) {\r\n let index = this.selectedMaterialValues.indexOf(event.source.value);\r\n this.selectedMaterialValues.splice(index, 1)\r\n }\r\n }\r\n openedMaterialChange(e) {\r\n // Set search textbox value as empty while opening selectbox \r\n this.searchMaterialTextboxControl.patchValue('');\r\n // Focus to search textbox while clicking on selectbox\r\n if (e == true) {\r\n this.searchMaterailTextBox.nativeElement.focus();\r\n }\r\n }\r\n handleInput(event: KeyboardEvent): void{\r\n event.stopPropagation();\r\n } \r\n clearMaterialSearch(event) {\r\n event.stopPropagation();\r\n this.searchMaterialTextboxControl.patchValue('');\r\n }\r\n MaterialSelection(){\r\n this.selectedMaterialId= new FormControl([]);\r\n this.selectedMaterialValue= new FormControl([]);\r\n this.dispatchForm.value.MaterialName.forEach(item=> {\r\n this.selectedMaterialId.value.push(item.id);\r\n this.selectedMaterialValue.value.push(item.materialNameArticleNumber);\r\n });\r\n\r\n }\r\n selectedMaterialIdExists(id: number):boolean{\r\n return this.selectedMaterialId.value.some(item=>item === id);\r\n }\r\n selectedMaterialValueExists(value: string):boolean{\r\n return this.selectedMaterialValue.value.some(item=>item === value);\r\n }\r\n filterOptions(value: string = '') {\r\n const filterValue = value?.toLowerCase();\r\n this.filteredOptions = this.options.filter(option => option.toLowerCase().includes(filterValue));\r\n this.dispatchForm.controls['MaterialNo'].patchValue(value);\r\n }\r\n onClear() {\r\n this.filteredOptions = [];\r\n this.materialNoControl.reset();\r\n this.dispatchForm.reset();\r\n this.dispatchDataSource=null;\r\n }\r\n // dispatchtbldata() {\r\n // this.dispatchDataSource = new MatTableDataSource(dispatchTableData);\r\n // this.dispatchDataSource.paginator = this.paginator;\r\n // return dispatchTableData;\r\n // }\r\n EditDispatchDailogue(data: any) {\r\n const dialogRef = this.dialog.open(Vendor_editDispatchDialog, {\r\n data: { Module: data.Module, MaterialName: data.MaterialName, MaterialNo: data.MaterialNo, UsedQty: data.UsedQty },\r\n height: '80%',\r\n width: '80%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n //this.dispatchtbldata();\r\n });\r\n\r\n }\r\n onDeleteDispatch(data: any) {\r\n console.log('dataaa',data)\r\n if (confirm(\"Are you sure you want to delete?\")) { \r\n this.vendServ.deleteMaterialDet(data.cClassMatID).subscribe(() => { \r\n this.vendServ.snackBarLoader('Deleted Successfully','Done','1000', 'red-snackbar')\r\n this.onSearch();\r\n }); \r\n }\r\n } \r\n onCheckboxChange(event)\r\n {\r\n this.dispatchForm.value.BOMNumber=null;\r\n this.dispatchForm.value.Module=null;\r\n this.dispatchDataSource=null;\r\n if(event.checked==true){\r\n this.bulkUpload=true;\r\n this.getAllArticleGridDetails();\r\n }\r\n else{\r\n this.bulkUpload=false;\r\n }\r\n }\r\n uploadArticle(){\r\n this.bulkMaterialDataToSend=[];\r\n if(this.excelArticleData.length ==0){\r\n this.vendServ.snackBarLoader(\"Please Choose file\",'Done','1000', 'red-snackbar');\r\n }\r\n else if(this.excelArticleData[0][0] !='BOM No' && this.excelArticleData[0][1]!='Wiring Table' && this.excelArticleData[0][2]!='Article No'&& this.excelArticleData[0][3]!='ArticleName'\r\n && this.excelArticleData[0][4]!='UOM' && this.excelArticleData[0][5]!='Used Qty'&& this.excelArticleData[0][6]!='Unit Price'&& this.excelArticleData[0][7]!='Final Price'\r\n ){\r\n this.vendServ.snackBarLoader(\"Please Upload Correct format. Refer sample by clicking the download icon\",'Done','1000', 'red-snackbar')\r\n }\r\n else if(this.excelArticleData.length ==1){\r\n this.vendServ.snackBarLoader(\"Please Upload Valid file with Data\",'Done','1000', 'red-snackbar');\r\n }\r\n else{\r\n\r\n var isPositiveUsedQty=true;\r\n\r\n this.excelArticleData.shift();\r\n for(let b=0;b< this.excelArticleData.length; b++){\r\n this.materialModelBulkUpload.bomNumber= this.excelArticleData[b][0];\r\n this.materialModelBulkUpload.wiringTable= this.excelArticleData[b][1];\r\n this.materialModelBulkUpload.articleNumber= this.excelArticleData[b][2];\r\n this.materialModelBulkUpload.articleName= this.excelArticleData[b][3];\r\n this.materialModelBulkUpload.usedQty= this.excelArticleData[b][5];\r\n this.bulkMaterialDataToSend.push({\r\n projectId:this.data.Id,\r\n bom:this.materialModelBulkUpload.bomNumber,\r\n wiring:this.materialModelBulkUpload.wiringTable,\r\n articleNo:this.materialModelBulkUpload.articleNumber,\r\n articleName:this.materialModelBulkUpload.articleName,\r\n usedQty:this.materialModelBulkUpload.usedQty,\r\n updatedBy:Number(sessionStorage.getItem('userId')),\r\n updatedDate:new Date(),\r\n vendorId:Number(sessionStorage.getItem('vendorId'))\r\n });\r\n\r\n if(this.materialModelBulkUpload.usedQty <0)\r\n {\r\n isPositiveUsedQty=false;\r\n }\r\n }\r\n\r\n \r\n \r\n if(isPositiveUsedQty==false)\r\n {\r\n const fileInput = document.getElementById('fileInput') as HTMLInputElement;\r\n if (fileInput) {\r\n fileInput.value = ''; // Clear the file input\r\n }\r\n this.vendServ.snackBarLoader('Used quantity value should not be less than 0. Please update valid used quantity and upload file again.','Done','1000', 'red-snackbar');\r\n\r\n return;\r\n }\r\n else\r\n {\r\n console.log(this.bulkMaterialDataToSend);\r\n this.vendServ.saveMaterialDetBulkData(this.bulkMaterialDataToSend).subscribe((data:any)=>{\r\n console.log(data);\r\n this.vendServ.snackBarLoader(data,'Done','1000', 'red-snackbar');\r\n }) \r\n }\r\n\r\n }\r\n }\r\n cancelForm(){\r\n const inputElements= document.querySelectorAll('input[type=\"file\"]');\r\n inputElements.forEach((element:any)=>{\r\n element.value='';\r\n });\r\n this.dialogRef.close(true);\r\n }\r\n onFileChangeClick(event: any) {\r\n this.excelArticleData=[];\r\n const target: DataTransfer = (event.target);\r\n const file: File= event.target.files[0];\r\n \r\n if(file){\r\n const fileSizeInBytes= file.size;\r\n const fileSizeInKB= fileSizeInBytes/1024;\r\n const fileSizeInMB= fileSizeInKB/1024;\r\n console.log(fileSizeInMB);\r\n if(fileSizeInMB > 1){\r\n this.vendServ.snackBarLoader(\"Uploaded file size exceeded\",'Done','1000', 'red-snackbar');\r\n const inputElements= document.querySelectorAll('input[type=\"file\"]');\r\n inputElements.forEach((element:any)=>{\r\n element.value='';\r\n })\r\n }\r\n }\r\n \r\n if (target.files.length !== 1) throw new Error('Cannot use multiple files');\r\n \r\n const reader: FileReader = new FileReader();\r\n \r\n reader.onload = (e: any) => {\r\n const binaryStr: string = e.target.result;\r\n const workbook: XLSX.WorkBook = XLSX.read(binaryStr, { type: 'binary' });\r\n \r\n const firstSheetName: string = workbook.SheetNames[0];\r\n const worksheet: XLSX.WorkSheet = workbook.Sheets[firstSheetName];\r\n this.excelArticleData = XLSX.utils.sheet_to_json(worksheet, { header: 1 }); \r\n console.log(this.excelArticleData);\r\n };\r\n \r\n reader.readAsBinaryString(target.files[0]);\r\n }\r\n generateExcel(){\r\n \r\n const ProjectName1=this.dispatchAllDataSource.filteredData.map(row=>row.projectName);\r\n \r\n const ProjectName = ProjectName1[0];\r\n\r\n\r\n const articleData= this.dispatchAllDataSource.filteredData.map(row=>[row.bomNumber,row.wiringTable,row.articleNumber, row.articleName,row.uom, row.usedQty, row.unitPrice,row.finalPrice]);\r\n const dataReading=[\r\n [\"BOM No\",\"Wiring Table\",\"Article No\",\"ArticleName\",\"UOM\",\"Used Qty\",\"Unit Price\",\"Final Price\"],\r\n ...articleData\r\n ];\r\n const workSheet_Article: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(dataReading);\r\n workSheet_Article['!cols']=[{width:30},{width:30},{width:40},{width:40},{width:10},{width:10},{width:15},{width:20}];\r\n for (var i in workSheet_Article) {\r\n workSheet_Article['A1'].s={\r\n border:{},\r\n font:{\r\n bold: true,\r\n color:{rgb:\"000000\"},\r\n name: 'ABBvoice',\r\n },\r\n },\r\n workSheet_Article['B1'].s={\r\n border:{},\r\n font:{\r\n bold: true,\r\n color:{rgb:\"000000\"},\r\n name: 'ABBvoice',\r\n },\r\n },\r\n workSheet_Article['C1'].s={\r\n border:{},\r\n font:{\r\n bold: true,\r\n color:{rgb:\"000000\"},\r\n name: 'ABBvoice',\r\n },\r\n },\r\n workSheet_Article['D1'].s={\r\n border:{},\r\n font:{\r\n bold: true,\r\n color:{rgb:\"000000\"},\r\n name: 'ABBvoice',\r\n },\r\n },\r\n workSheet_Article['E1'].s={\r\n border:{},\r\n font:{\r\n bold: true,\r\n color:{rgb:\"000000\"},\r\n name: 'ABBvoice',\r\n },\r\n },\r\n workSheet_Article['F1'].s={\r\n border:{},\r\n font:{\r\n bold: true,\r\n color:{rgb:\"000000\"},\r\n name: 'ABBvoice',\r\n },\r\n },\r\n workSheet_Article['G1'].s={\r\n border:{},\r\n font:{\r\n bold: true,\r\n color:{rgb:\"000000\"},\r\n name: 'ABBvoice',\r\n },\r\n },\r\n workSheet_Article['H1'].s={\r\n border:{},\r\n font:{\r\n bold: true,\r\n color:{rgb:\"000000\"},\r\n name: 'ABBvoice',\r\n },\r\n }\r\n }\r\n // const editableColumn='D';\r\n // const allColumns=['A','B','C','E','F'];\r\n // for(let i=1; i<=articleData.length+1;i++){\r\n // allColumns.forEach(col=>{\r\n // const cellRef= `${col}${i}`;\r\n // if(workSheet_Article[cellRef]){\r\n // workSheet_Article[cellRef].s={\r\n // protection:{locked:col!==editableColumn}\r\n // };\r\n // }\r\n // });\r\n // }\r\n // workSheet_Article['!protect']={selectLockedCells:true, selectUnlockedCells:true};\r\n for(let row=2; row<= articleData.length+1;row++){\r\n const quantityCell=`F${row}`;\r\n const unitPriceCell=`G${row}`;\r\n const finalPriceCell=`H${row}`;\r\n workSheet_Article[finalPriceCell]={\r\n f:`${quantityCell}*${unitPriceCell}`,\r\n }\r\n }\r\n const combined_wb= XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(combined_wb, workSheet_Article, 'Article');\r\n XLSX.writeFile(combined_wb,'MaterialTemplateForProject_'+ProjectName+'.xlsx');\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n onFileChange() {\r\n // if (this.tempData.length > 0) {\r\n // dispatchTableData = [];\r\n // dispatchTableData = this.tempData;\r\n // }\r\n\r\n // this.dispatchtbldata();\r\n }\r\n}\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './EditDispatch.html',\r\n styleUrls: ['./ProjectDetails_Vendor.component.scss']\r\n})\r\n\r\nexport class Vendor_editDispatchDialog {\r\n /**\r\n *\r\n */\r\n editDispatchform: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DispatchData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, public dialogRef: MatDialogRef, public dialog: MatDialog) { }\r\n\r\n\r\n ngOnInit() {\r\n this.editDispatchform = this.formBuilder.group({\r\n //Module: [this.data.Module, Validators.required],\r\n MaterialName: [this.data.articleName, Validators.required],\r\n MaterialNo: [this.data.articleNumber, Validators.required],\r\n UsedQty: [this.data.usedQty, Validators.required]\r\n });\r\n\r\n }\r\n onUpdate() {\r\n if (this.editDispatchform.valid) {\r\n\r\n }\r\n }\r\n onsaveMaterial() {\r\n if (this.editDispatchform.valid) {\r\n if (this.data != null) {\r\n this._snackBar.open('Material created successfully', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n this.dialogRef.close({ event: null, data: this.editDispatchform.value });\r\n }\r\n }\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n onClear() {\r\n this.editDispatchform.reset();\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","\r\n\r\n

Project Details

\r\n
\r\n
\r\n
\r\n \r\n\r\n Search \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n -->\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
Project Name {{element.projectName}} Plant {{element.plant}} Customer {{element.customer}} Project Status \r\n {{element.projectStatus}}\r\n Sale Order Number {{element.salesOrderNo}} Project Created Date {{element.projectCreatedDate}} Target Date {{element.targetDate}} Actions\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
No data matching the filter \"{{input.value}}\"
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n","
\r\n
\r\n

View Project

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n \r\n Project Details\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n Wiring Table Details\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n
Wiring Table Name {{element.moduleName}} Purchase Order No {{element.poNo}} Purchase Order Date {{element.poDate}} No Of Tls {{element.noOfTls}} No Of Cubicles {{element.noOfCubicals}} No Of Drives {{element.noOfDrives}} Panel Status{{element.status}}View\r\n Materials\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n","
\r\n
\r\n

Raise Dispute

\r\n
\r\n
\r\n close\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n Dispute Resolved\r\n
\r\n\r\n
\r\n
\r\n \r\n BOM NO\r\n \r\n {{bomNo.name}}\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Wiring Table\r\n \r\n {{WiringTable.name}}\r\n\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n Dispute Status\r\n \r\n Resolved\r\n\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n Raised Remarks\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n Resolved Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
","\r\n
\r\n
\r\n

Materials

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n\r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n Note:\"Please download material data and update only the 'Used Qty' column. Do not modify any other columns\"\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n (.xlsx,.xls)\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n BOM Number\r\n \r\n {{bom.bomNumber}}\r\n \r\n \r\n
\r\n
\r\n \r\n Wiring Table\r\n \r\n {{wiring.panelName}}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Material Type\r\n \r\n {{materialType.materialType}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Search \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Article Name {{element.articleName}} Article No {{element.articleNumber}} UOM {{element.uom}} Used Qty \r\n Unit Price {{element.unitPrice}} Final Price {{element.finalPrice !=null ?element.finalPrice : 0}}
No data matching the filter
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n ","
\r\n
\r\n

Edit Project Material Details

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Wiring Table\r\n \r\n Panel-1\r\n Panel-2\r\n Panel-3\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Material Name\r\n \r\n DOOR LABLE FIXING SCREW\r\n H.T Hex Screws 8.8 Zinc Plated M5X20\r\n H.T NUTS ZINC M5\r\n M5 PLAIN WASHER\r\n M5 SPRING WASHER\r\n H.T Hex Screws 8.8 Zinc Plated M\r\n 6X16\r\n H.T Hex Screws 8.8 Zinc Plated M\r\n 6X20\r\n H.T Hex Screws 8.8 Zinc Plated M\r\n 6X25\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Article No\r\n \r\n 3AYN211810-322\r\n 3AYN211810-107M\r\n 3AYN211810-058M\r\n 3AYN211810-067M\r\n 3AYN211810-323M\r\n 3AYN211810-001M\r\n 3AYN211810-003M\r\n 3AYN211810-004M\r\n \r\n \r\n
\r\n
\r\n \r\n Used Quantity\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ViewVendorData, ViewVendorDialogData } from '../ProjectDetails_ABB/projectDetails_ABB.component';\r\n\r\nimport { MaterialDialogData } from '../material/material.component';\r\nimport { InvoiceData } from '../ProjectDetails_ABB/AddvendorConfigDialog';\r\nimport { ReportService } from '../Services/report.service';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport jspdf from 'jspdf';\r\nimport html2canvas from 'html2canvas';\r\nimport * as XLSX from 'xlsx-js-style';\r\nimport { InvoiceService } from '../Services/invoice.service';\r\nimport * as saveAs from 'file-saver';\r\n\r\nexport interface ReportData {\r\n plant: string;\r\n projectName: string;\r\n cClassName: string;\r\n salesOrderNo: string;\r\n customerName: string;\r\n bomNumber: string;\r\n driveType: string;\r\n noOfTls: number;\r\n noOfCubicles: number;\r\n noOfDrives: number;\r\n vendorName: string;\r\n vendorCode: string;\r\n purchaseOrderNo: string;\r\n purchaseOrderDate: string;\r\n purchaseOrderQty:number;\r\n driveRating:number;\r\n status: string;\r\n invoiceNo:number;\r\n invoiceDate:Date;\r\n invoiceAmount:number;\r\n attachmentId:number;\r\n uploadedFile:string;\r\n materialName:string;\r\n articleName:string;\r\n uom:string;\r\n unitPrice:number;\r\n vendorQty:number;\r\n vendorPrice:number;\r\n materialType:string;\r\n createdBy:string;\r\n createdDate:Date;\r\n historyCode:string;\r\n verifiedQty:number;\r\n verifiedPrice:number;\r\n}\r\n\r\nexport interface ProjectReportParameters{\r\n reportType: string;\r\n projectId:number;\r\n vendorId:number;\r\n startDate:string;\r\n endDate:string;\r\n bomId:number;\r\n wiringTableId:number;\r\n historyId:number;\r\n}\r\nexport interface Project{\r\n projectId:number;\r\n projectName:string;\r\n}\r\n\r\nexport interface MaterialHistory{\r\n historyId:number;\r\n historyCode:string;\r\n}\r\n\r\nexport interface Vendor{\r\n vendorId:number;\r\n vendorNameCode:string;\r\n}\r\nexport interface WiringTable{\r\n id:number;\r\n name:string;\r\n}\r\nexport interface BOM{\r\n id:number;\r\n name:string;\r\n}\r\n@Component({\r\n selector: 'app-report',\r\n templateUrl: './projectReport.component.html',\r\n styleUrls: ['./projectReport.component.scss']\r\n})\r\nexport class ProjectReportComponent implements OnInit {\r\n role:string;\r\n dataSource: any;\r\n selectedReport: string = 'Project';\r\n projectLst: Project[];\r\n vendorLst: Vendor[];\r\n wiringTableLst: WiringTable[];\r\n materialHistoryLst: MaterialHistory[];\r\n selectedProjectId:number=0;\r\n selectedVendorId:number=0;\r\n bomLst: BOM[];\r\n dataSourceReport:any;\r\n dataSourceReportDummy:any;\r\n formReport:FormGroup;\r\n formProject: FormGroup;\r\n formVendor: FormGroup;\r\n formHistory:FormGroup;\r\n formBom:FormGroup;\r\n formWiring:FormGroup;\r\n formDateRange:FormGroup;\r\n today: Date= new Date();\r\n showdownload:boolean=false;\r\n searchValue : string = '';\r\n\r\n projectReportParameters: ProjectReportParameters={reportType:'Project',projectId:0,vendorId:0,startDate:'',endDate:'',bomId:0,wiringTableId:0,historyId:0};\r\n\r\n displayedProjectColumns: string[] = ['Plant','spacerColumn', 'ProjectName','spacerColumn', 'ModuleName','spacerColumn', 'SaleOrderNo','spacerColumn',\r\n 'Customer', 'spacerColumn','BillOfMaterial','spacerColumn', 'DriveType','spacerColumn','DriveRating','spacerColumn', 'PoQuantity','spacerColumn',\r\n 'NoOfTLs', 'spacerColumn','NoOfCubiccals', 'spacerColumn','NoOfDrives', 'spacerColumn','VendorName','spacerColumn', 'VendorCode', 'spacerColumn',\r\n 'PoNo','spacerColumn', 'PoDate','spacerColumn', 'Status'];\r\n\r\n displayedInvoiceColumns: string[] = ['Plant','spacerColumn', 'ProjectName','spacerColumn', 'ModuleName','spacerColumn','VendorName','spacerColumn', 'VendorCode', 'spacerColumn',\r\n 'PoNo','spacerColumn', 'PoDate','spacerColumn','InvoiceNo','spacerColumn','InvoiceDate','spacerColumn','InvoiceAmount','spacerColumn','UploadedFile'];\r\n \r\n displayedMaterialColumns:string[]=['Plant','spacerColumn', 'ProjectName','spacerColumn', 'ModuleName','spacerColumn','BillOfMaterial','spacerColumn','VendorName','spacerColumn', 'VendorCode', 'spacerColumn',\r\n 'MaterialName','spacerColumn','ArticleName','spacerColumn','UOM','spacerColumn','UnitPrice','spacerColumn','VendorQty','spacerColumn','VendorPrice','spacerColumn','VerifiedQty','spacerColumn','VerifiedPrice'];\r\n\r\n displayedProjectColumnsDummy: string[] = ['Plant','ProjectName','ModuleName','SaleOrderNo','Customer', 'BillOfMaterial','DriveType','DriveRating', 'PoQuantity',\r\n 'NoOfTLs', 'NoOfCubiccals', 'NoOfDrives','VendorName', 'VendorCode','PoNo','PoDate', 'Status'];\r\n \r\n displayedInvoiceColumnsDummy: string[] = ['Plant','ProjectName', 'ModuleName','VendorName','VendorCode',\r\n 'PoNo','PoDate','InvoiceNo','InvoiceDate','InvoiceAmount','UploadedFile'];\r\n\r\n displayedMaterialColumnsDummy:string[]=['Plant', 'ProjectName','ModuleName','BillOfMaterial','VendorName', 'VendorCode',\r\n 'MaterialName','ArticleName','UOM','UnitPrice','VendorQty','VendorPrice','VerifiedQty','VerifiedPrice'];\r\n \r\n\r\n displayedMaterialHistoryColumns:string[]=[ 'HistoryCode', 'spacerColumn', 'MaterialName','spacerColumn','ArticleName','spacerColumn','MaterialType','spacerColumn','UOM','spacerColumn','UnitPrice','spacerColumn','CreatedBy','spacerColumn','CreatedDate'];\r\n\r\n displayedMaterialHistoryColumnsDummy:string[]=[ 'HistoryCode','MaterialName','ArticleName','MaterialType','UOM','UnitPrice','CreatedBy','CreatedDate'];\r\n\r\n\r\n\r\n constructor(private reportServ: ReportService,private snackBar: MatSnackBar,private inv:InvoiceService) { \r\n this.formReport = new FormGroup({\r\n \"reportTypeControl\":new FormControl('', Validators.required),\r\n });\r\n this.formProject = new FormGroup({\r\n \"projectControl\":new FormControl(''),\r\n });\r\n\r\n this.formHistory = new FormGroup({\r\n \"historyControl\":new FormControl(''),\r\n });\r\n this.formVendor = new FormGroup({\r\n \"vendorControl\":new FormControl(''),\r\n });\r\n this.formBom = new FormGroup({\r\n \"bomControl\":new FormControl(''),\r\n });\r\n this.formWiring = new FormGroup({\r\n \"wiringControl\":new FormControl(''),\r\n });\r\n this.formDateRange = new FormGroup({\r\n \"startDateControl\":new FormControl(''),\r\n \"endDateControl\":new FormControl('')\r\n });\r\n }\r\n @ViewChild(MatSort) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n ngOnInit() {\r\n this.getProjectDetails();\r\n // this.getVendorDetails();\r\n this.getHistoryDetails();\r\n console.log(sessionStorage.getItem('role'))\r\n this.role=sessionStorage.getItem('role');\r\n \r\n this.formReport.get('reportTypeControl')?.setValue('Project');\r\n if(this.role!='SCM')\r\n {\r\n this.RetrieveData();\r\n }\r\n \r\n\r\n \r\n }\r\n getProjectDetails(){\r\n this.reportServ.getProjectDetails().subscribe((data:any)=>{\r\n this.projectLst=data;\r\n });\r\n }\r\n getSubmittedProjectDetails(){\r\n this.reportServ.getSubmittedProjectDetails().subscribe((data:any)=>{\r\n this.projectLst=data;\r\n });\r\n }\r\n onVendorChange(vendorId)\r\n { \r\n debugger;\r\n this.reportServ.getSubmittedBOMDetails(this.selectedProjectId).subscribe((data:any)=>{\r\n this.bomLst=data.filter(x => x.vendorId == vendorId);\r\n this.selectedVendorId = vendorId;\r\n this.formWiring.reset(); \r\n this.formBom.reset();\r\n this.formDateRange.reset();\r\n this.dataSourceReport=new MatTableDataSource();\r\n this.dataSourceReportDummy=new MatTableDataSource();\r\n this.dataSourceReport.paginator= this.paginator;\r\n });\r\n\r\n }\r\n onProjectChange(projectId){\r\n\r\n this.selectedProjectId =projectId;\r\n this.formVendor.value.vendorControl='';\r\n this.formWiring.reset(); \r\n this.formVendor.reset();\r\n this.formBom.reset();\r\n this.formHistory.reset();\r\n this.formDateRange.reset();\r\n this.dataSourceReport=new MatTableDataSource();\r\n this.dataSourceReportDummy=new MatTableDataSource();\r\n this.dataSourceReport.paginator= this.paginator;\r\n this.getVendorDetails(projectId);\r\n }\r\n onBOMChange(bomId){\r\n this.reportServ.getSubmittedWiringTableDetails(bomId).subscribe((data:any)=>{\r\n debugger;\r\n this.wiringTableLst=data.filter(x => x.vendorId == this.selectedVendorId);\r\n this.formWiring.reset();\r\n this.dataSourceReport=new MatTableDataSource();\r\n this.dataSourceReportDummy=new MatTableDataSource();\r\n this.dataSourceReport.paginator= this.paginator;\r\n });\r\n }\r\n onWiringChange(wiringId)\r\n {\r\n this.dataSourceReport=new MatTableDataSource();\r\n this.dataSourceReportDummy=new MatTableDataSource();\r\n this.dataSourceReport.paginator= this.paginator;\r\n }\r\n getVendorDetails(projectId){\r\n this.reportServ.getVendorDetails(projectId).subscribe((data:any)=>{\r\n this.vendorLst=data;\r\n });\r\n }\r\n getHistoryDetails(){\r\n this.reportServ.getHistoryDetails().subscribe((data:any)=>{\r\n this.materialHistoryLst=data;\r\n });\r\n }\r\n getProjectGridDetails(){\r\n console.log(this.projectReportParameters);\r\n this.reportServ.getProjectGridDetails(this.projectReportParameters).subscribe((data:any)=>{\r\n this.dataSourceReport=new MatTableDataSource(data);\r\n this.dataSourceReportDummy=new MatTableDataSource(data);\r\n this.dataSourceReport.paginator= this.paginator;\r\n if(this.dataSourceReport.filteredData.length >0){\r\n this.showdownload= true;\r\n }\r\n });\r\n }\r\n RetrieveData(){\r\n if(!this.formReport.value.reportTypeControl){\r\n this.snackBarLoader('Please choose Report Type','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n \r\n this.projectReportParameters.reportType=this.selectedReport;\r\n this.projectReportParameters.projectId=this.formProject.value.projectControl==''?0: Number(this.formProject.value.projectControl);\r\n this.projectReportParameters.vendorId= this.formVendor.value.vendorControl == ''? 0 : Number(this.formVendor.value.vendorControl);\r\n this.projectReportParameters.startDate=this.formDateRange.value.startDateControl==null?'':this.formDateRange.value.startDateControl;\r\n this.projectReportParameters.endDate=this.formDateRange.value.endDateControl==null?'':this.formDateRange.value.endDateControl;\r\n this.projectReportParameters.bomId=this.formBom.value.bomControl==''?0:Number(this.formBom.value.bomControl);\r\n this.projectReportParameters.wiringTableId=this.formWiring.value.wiringControl==''?0:Number(this.formWiring.value.wiringControl);\r\n this.projectReportParameters.historyId=this.formHistory.value.historyControl==''?0:Number(this.formHistory.value.historyControl);\r\n this.getProjectGridDetails();\r\n }\r\n downloadFile(element){\r\n var data1= element.attachmentId+'_'+element.uploadedFile;\r\n this.inv.GetInvoiceFileByName(data1).subscribe((data2:any)=>{\r\n var content= data2; \r\n console.log(content); \r\n this.SaveDemo(content, element.uploadedFile);\r\n });\r\n }\r\n base64ToArrayBuffer(base64: any): ArrayBuffer {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n}\r\nSaveDemo(data2: any, data: string){\r\n var bytes= this.base64ToArrayBuffer(data2);\r\n let file = new Blob([bytes], { type: '' });\r\n saveAs(file, data); \r\n}\r\n resetForm() { \r\n this.searchValue='';\r\n this.dataSourceReport=[];\r\n if(this.formReport.value!=null){\r\n this.formReport.reset(); \r\n this.formReport.status == \"INVALID\"; \r\n }\r\n if(this.formProject.value!=null){\r\n this.formProject.reset(); \r\n this.formProject.status == \"INVALID\"; \r\n }\r\n if(this.formVendor.value!=null){\r\n this.formVendor.reset(); \r\n this.formVendor.status == \"INVALID\";\r\n }\r\n if(this.formDateRange.value!=null){\r\n this.formDateRange.reset(); \r\n this.formDateRange.status == \"INVALID\";\r\n }\r\n this.showdownload=false;\r\n\r\n\r\n if(this.formHistory.value!=null){\r\n this.formHistory.reset(); \r\n this.formHistory.status == \"INVALID\"; \r\n }\r\n\r\n if(this.formBom.value!=null){\r\n this.formBom.reset(); \r\n this.formBom.status == \"INVALID\"; \r\n }\r\n if(this.formWiring.value!=null){\r\n this.formWiring.reset(); \r\n this.formWiring.status == \"INVALID\"; \r\n }\r\n\r\n}\r\nsnackBarLoader(content, action, duration, color){\r\n this.snackBar.open(content, action, {\r\n duration: 2000,\r\n verticalPosition: \"top\", \r\n horizontalPosition: \"center\", \r\n panelClass: [color]\r\n });\r\n}\r\napplyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSourceReport.filter = filterValue.trim().toLowerCase();\r\n this.dataSourceReportDummy.filter = filterValue.trim().toLowerCase();\r\n}\r\n onReportChange(data: any) {\r\n debugger;\r\n if(data=='Invoice' || data=='Material'){\r\n this.getSubmittedProjectDetails();\r\n }else{\r\n this.getProjectDetails();\r\n }\r\n this.showdownload=false;\r\n this.dataSourceReport=[];\r\n this.selectedReport = data;\r\n if(this.formProject.value!=null){\r\n this.formProject.reset(); \r\n this.formProject.status == \"INVALID\"; \r\n }\r\n if(this.formVendor.value!=null){\r\n this.formVendor.reset(); \r\n this.formVendor.status == \"INVALID\";\r\n }\r\n if(this.formDateRange.value!=null){\r\n this.formDateRange.reset(); \r\n this.formDateRange.status == \"INVALID\";\r\n }\r\n if(this.formHistory.value !=null)\r\n {\r\n this.formHistory.reset(); \r\n this.formHistory.status == \"INVALID\";\r\n }\r\n if(this.formBom.value !=null)\r\n {\r\n this.formBom.reset(); \r\n this.formBom.status == \"INVALID\";\r\n }\r\n if(this.formWiring.value !=null)\r\n {\r\n this.formWiring.reset(); \r\n this.formWiring.status == \"INVALID\";\r\n }\r\n }\r\n exportExcel(dataSourceexcel){\r\n const header_Style= {\r\n font:{\r\n bold: true,\r\n name: 'ABBvoice',\r\n },\r\n alignment: {\r\n vertical: 'center',\r\n horizontal: 'center',\r\n wrapText: '1', // any truthy value here\r\n },\r\n border: {\r\n right: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n bottom: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n top: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n left: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n },\r\n }\r\n if(this.selectedReport=='Project'){\r\n const table = document.getElementById('ProjectTable');\r\n const workSheet: XLSX.WorkSheet= XLSX.utils.table_to_sheet(table);\r\n var range = XLSX.utils.decode_range(workSheet['!ref']);\r\n for (var C = range.s.r; C <= range.e.c; ++C) {\r\n var address = XLSX.utils.encode_col(C) + '1'; // <-- first row, column number C\r\n if (!workSheet[address]) continue;\r\n workSheet[address].v = workSheet[address].v.toUpperCase();\r\n }\r\n workSheet['!cols']=[{width:15},{width:35},{width:30},{width:30},{width:30},{width:20},{width:20},{width:15},{width:15},{width:15}\r\n ,{width:15},{width:20},{width:30},{width:20},{width:30},{width:20},{width:20}\r\n ];\r\n workSheet['!rows']=[{hpx:20}];\r\n for (var i in workSheet) {\r\n workSheet['A1'].s= header_Style;\r\n workSheet['B1'].s= header_Style\r\n workSheet['C1'].s=header_Style;\r\n workSheet['D1'].s=header_Style\r\n workSheet['E1'].s=header_Style\r\n workSheet['F1'].s=header_Style\r\n workSheet['G1'].s=header_Style\r\n workSheet['H1'].s=header_Style\r\n workSheet['I1'].s=header_Style\r\n workSheet['J1'].s=header_Style\r\n workSheet['K1'].s=header_Style\r\n workSheet['L1'].s=header_Style\r\n workSheet['M1'].s=header_Style\r\n workSheet['N1'].s=header_Style\r\n workSheet['O1'].s=header_Style\r\n workSheet['P1'].s=header_Style\r\n workSheet['Q1'].s=header_Style\r\n if (typeof workSheet[i] != 'object') continue;\r\n \r\n let cell = XLSX.utils.decode_cell(i);\r\n workSheet[i].s = {\r\n wch: 50,\r\n // styling for all cells\r\n font: {\r\n name: 'ABBvoice',\r\n },\r\n alignment: {\r\n vertical: 'center',\r\n horizontal: 'center',\r\n wrapText: '1', // any truthy value here\r\n },\r\n border: {\r\n right: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n bottom: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n top: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n left: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n },\r\n };\r\n }\r\n \r\n const workbook: XLSX.WorkBook= XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(workbook, workSheet, 'Project Details');\r\n XLSX.writeFile(workbook, this.selectedReport+' Details_'+new Date()+'.xlsx');\r\n }\r\n else if(this.selectedReport=='Invoice') {\r\n const table = document.getElementById('InvoiceTable');\r\n const workSheet: XLSX.WorkSheet= XLSX.utils.table_to_sheet(table);\r\n var range = XLSX.utils.decode_range(workSheet['!ref']);\r\n for (var C = range.s.r; C <= range.e.c; ++C) {\r\n var address = XLSX.utils.encode_col(C) + '1'; // <-- first row, column number C\r\n if (!workSheet[address]) continue;\r\n workSheet[address].v = workSheet[address].v.toUpperCase();\r\n }\r\n workSheet['!cols']=[{width:15},{width:35},{width:30},{width:30},{width:30},{width:20},{width:30},{width:15},{width:30},{width:20},{width:15}];\r\n workSheet['!rows']=[{hpx:15}];\r\n for (var i in workSheet) {\r\n workSheet['A1'].s= header_Style;\r\n workSheet['B1'].s= header_Style\r\n workSheet['C1'].s=header_Style;\r\n workSheet['D1'].s=header_Style\r\n workSheet['E1'].s=header_Style\r\n workSheet['F1'].s=header_Style\r\n workSheet['G1'].s=header_Style\r\n workSheet['H1'].s=header_Style\r\n workSheet['I1'].s=header_Style\r\n workSheet['J1'].s=header_Style\r\n workSheet['K1'].s=header_Style\r\n if (typeof workSheet[i] != 'object') continue;\r\n \r\n let cell = XLSX.utils.decode_cell(i);\r\n workSheet[i].s = {\r\n wch: 50,\r\n // styling for all cells\r\n font: {\r\n name: 'ABBvoice',\r\n },\r\n alignment: {\r\n vertical: 'center',\r\n horizontal: 'center',\r\n wrapText: '1', // any truthy value here\r\n },\r\n border: {\r\n right: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n bottom: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n top: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n left: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n },\r\n };\r\n }\r\n const workbook: XLSX.WorkBook= XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(workbook, workSheet, 'Invoice Details');\r\n XLSX.writeFile(workbook, this.selectedReport+' Details_'+new Date()+'.xlsx');\r\n }\r\n else if(this.selectedReport=='Material'){\r\n const table = document.getElementById('MaterialTable');\r\n const workSheet: XLSX.WorkSheet= XLSX.utils.table_to_sheet(table);\r\n var range = XLSX.utils.decode_range(workSheet['!ref']);\r\n for (var C = range.s.r; C <= range.e.c; ++C) {\r\n var address = XLSX.utils.encode_col(C) + '1'; // <-- first row, column number C\r\n if (!workSheet[address]) continue;\r\n workSheet[address].v = workSheet[address].v.toUpperCase();\r\n }\r\n workSheet['!cols']=[{width:15},{width:35},{width:30},{width:30},{width:30},{width:20},{width:30},{width:30},{width:30},{width:20},{width:15},{width:20},{width:15},{width:20}];\r\n workSheet['!rows']=[{hpx:15}];\r\n for (var i in workSheet) {\r\n workSheet['A1'].s= header_Style;\r\n workSheet['B1'].s= header_Style\r\n workSheet['C1'].s=header_Style;\r\n workSheet['D1'].s=header_Style\r\n workSheet['E1'].s=header_Style\r\n workSheet['F1'].s=header_Style\r\n workSheet['G1'].s=header_Style\r\n workSheet['H1'].s=header_Style\r\n workSheet['I1'].s=header_Style\r\n workSheet['J1'].s=header_Style\r\n workSheet['K1'].s=header_Style\r\n workSheet['L1'].s=header_Style\r\n workSheet['M1'].s=header_Style\r\n workSheet['N1'].s=header_Style\r\n if (typeof workSheet[i] != 'object') continue;\r\n \r\n let cell = XLSX.utils.decode_cell(i);\r\n workSheet[i].s = {\r\n wch: 50,\r\n // styling for all cells\r\n font: {\r\n name: 'ABBvoice',\r\n },\r\n alignment: {\r\n vertical: 'center',\r\n horizontal: 'center',\r\n wrapText: '1', // any truthy value here\r\n },\r\n border: {\r\n right: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n bottom: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n top: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n left: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n },\r\n };\r\n }\r\n const workbook: XLSX.WorkBook= XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(workbook, workSheet, 'Material Details');\r\n XLSX.writeFile(workbook, this.selectedReport+' Details_'+new Date()+'.xlsx');\r\n }\r\n else if(this.selectedReport=='MaterialHistory'){\r\n const table = document.getElementById('MaterialHistoryTable');\r\n const workSheet: XLSX.WorkSheet= XLSX.utils.table_to_sheet(table);\r\n var range = XLSX.utils.decode_range(workSheet['!ref']);\r\n for (var C = range.s.r; C <= range.e.c; ++C) {\r\n var address = XLSX.utils.encode_col(C) + '1'; // <-- first row, column number C\r\n if (!workSheet[address]) continue;\r\n workSheet[address].v = workSheet[address].v.toUpperCase();\r\n }\r\n workSheet['!cols']=[{width:15},{width:35},{width:30},{width:30},{width:30},{width:20},{width:30},{width:30},{width:30},{width:20},{width:15},{width:20}];\r\n workSheet['!rows']=[{hpx:15}];\r\n for (var i in workSheet) {\r\n workSheet['A1'].s= header_Style;\r\n workSheet['B1'].s= header_Style\r\n workSheet['C1'].s=header_Style;\r\n workSheet['D1'].s=header_Style\r\n workSheet['E1'].s=header_Style\r\n workSheet['F1'].s=header_Style\r\n workSheet['G1'].s=header_Style\r\n workSheet['H1'].s=header_Style\r\n \r\n if (typeof workSheet[i] != 'object') continue;\r\n \r\n let cell = XLSX.utils.decode_cell(i);\r\n workSheet[i].s = {\r\n wch: 50,\r\n // styling for all cells\r\n font: {\r\n name: 'ABBvoice',\r\n },\r\n alignment: {\r\n vertical: 'center',\r\n horizontal: 'center',\r\n wrapText: '1', // any truthy value here\r\n },\r\n border: {\r\n right: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n bottom: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n top: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n left: {\r\n style: 'thin',\r\n color: '000000',\r\n },\r\n },\r\n };\r\n }\r\n const workbook: XLSX.WorkBook= XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(workbook, workSheet, 'Material Details');\r\n XLSX.writeFile(workbook, this.selectedReport+' Details_'+new Date()+'.xlsx');\r\n }\r\n }\r\n}\r\n","\r\n\r\n

Reports

\r\n\r\n
\r\n
\r\n
\r\n \r\n Report Type\r\n \r\n Project Details\r\n Invoice Details\r\n Material Details\r\n Material History Details\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Select Project\r\n \r\n {{project.projectName}}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Select Vendor\r\n \r\n {{vendor.vendorNameCode}}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Enter a date range\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n Select History Code\r\n \r\n {{history.historyCode}}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Select BOM Number\r\n \r\n {{bom.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Select WiringTable\r\n \r\n {{wiringTable.name}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Search \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n get_app\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Plant {{element.plant}} Project Name {{element.projectName }} Wiring Table Name {{element.cClassName }} Sale Order No {{element.salesOrderNo}} Customer Name {{element.customerName}} Bill Of Material {{element.bomNumber}} Derive Type {{element.driveType}} Drive Rating {{element.driveRating}} Po Quantity {{element.purchaseOrderQty}} No Of TLs {{element.noOfTls}} No Of Cubicles {{element.noOfCubicles}} No Of Drives {{element.noOfDrives}} Vendor Name {{element.vendorName}} Vendor Code {{element.vendorCode}} Po No {{element.purchaseOrderNo}} Po Date {{element.purchaseOrderDate}} Status {{element.status}}
No data matching the filter
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Plant {{element.plant}} Project Name {{element.projectName}} Wiring Table Name {{element.cClassName}} Vendor Name {{element.vendorName}} Vendor Code {{element.vendorCode}} Po No {{element.purchaseOrderNo}} Po Date {{element.purchaseOrderDate}} Invoice No {{element.invoiceNo}} Invoice Date {{element.invoiceDate}} Invoice Amount {{element.invoiceAmount}} Uploaded Invoice File {{element.uploadedFile}} get_app\r\n
No data matching the filter
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Plant {{element.plant}} Project Name {{element.projectName}} Wiring Table Name {{element.cClassName}} Bill Of Material {{element.bomNumber}} Vendor Name {{element.vendorName}} Vendor Code {{element.vendorCode}} Material Name {{element.materialName}} Article Name {{element.articleName}} UOM {{element.uom}} Unit Price {{element.unitPrice}} Vendor Qty {{element.vendorQty}} Vendor Price {{element.vendorPrice}} Verified Qty {{element.verifiedQty}} Verified Price {{element.verifiedPrice}}
No data matching the filter
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
History Code {{element.historyCode}} Material Name {{element.materialName}} Article Name {{element.articleName}} Material Type {{element.materialType}} UOM {{element.uom}} Unit Price {{element.unitPrice}} Created By {{element.createdBy}} Created Date {{element.createdDate}}
No data matching the filter
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Plant {{element.plant}} Project Name {{element.projectName}} Wiring Table Name {{element.cClassName}} Sale Order No {{element.salesOrderNo}} Customer Name {{element.customerName}} Bill Of Material {{element.bomNumber}} Drive Type {{element.driveType}} Drive Rating {{element.driveRating}} Po Quantity {{element.purchaseOrderQty}} No Of TLs {{element.noOfTls}} No Of Cubicles {{element.noOfCubicles}} No Of Drives {{element.noOfDrives}} Vendor Name {{element.vendorName}} Vendor Code {{element.vendorCode}} Po No {{element.purchaseOrderNo}} Po Date {{element.purchaseOrderDate}} Status {{element.status}}
No data matching the filter
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Plant {{element.plant}} Project Name {{element.projectName}} Wiring Table Name {{element.cClassName}} Vendor Name {{element.vendorName}} Vendor Code {{element.vendorCode}} Po No {{element.purchaseOrderNo}} Po Date {{element.purchaseOrderDate}} Invoice No {{element.invoiceNo}} Invoice Date {{element.invoiceDate}} Invoice Amount {{element.invoiceAmount}} Uploaded Invoice File {{element.uploadedFile}}
No data matching the filter
\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Plant {{element.plant}} Project Name {{element.projectName}} Wiring Table Name {{element.cClassName}} Bill Of Material {{element.bomNumber}} Vendor Name {{element.vendorName}} Vendor Code {{element.vendorCode}} Material Name {{element.materialName}} Article Name {{element.articleName}} UOM {{element.uom}} Unit Price {{element.unitPrice}} Vendor Qty {{element.vendorQty}} Vendor Price {{element.vendorPrice}} Verified Qty {{element.verifiedQty}} Verified Price {{element.verifiedPrice}}
No data matching the filter
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
History Code {{element.historyCode}} Material Name {{element.materialName}} Article Name {{element.articleName}} Material Type {{element.materialType}} UOM {{element.uom}} Unit Price {{element.unitPrice}} Created By {{element.createdBy}} Created Date {{element.createdDate}}
No data matching the filter
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpClientModule, HttpParams } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators'\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { MaterialDialogData } from '../material/material.component';\r\nimport { VendorDialogData } from '../ProjectDetails_ABB/projectDetails_ABB.component';\r\nimport { Vendordata } from '../Vendor/vendor.component';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ApiservicesService {\r\n webApiUrl = environment.webApiUrl\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n constructor(private http: HttpClient, private _snackBar: MatSnackBar) { }\r\n createAuthorizationHeader(headers: HttpHeaders) {\r\n headers.append('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n }\r\n\r\n gettoken(userName: any, password: any) {\r\n var data = JSON.stringify({\r\n \"username\": userName,\r\n \"password\": password\r\n });\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/Account', data, { headers: reqHeader });\r\n }\r\n Gethostname(data) {\r\n return this.http.get(this.webApiUrl + 'api/Graph/SerachbyName?displayname=' + data);\r\n }\r\n Servicelistbyid(data) {\r\n return this.http.get(this.webApiUrl + 'api/Service/GetServicelistbyid?id=' + data);\r\n }\r\n\r\n private selectedValueSubject = new BehaviorSubject(null);\r\n selectedValue$ = this.selectedValueSubject.asObservable();\r\n\r\n setSelectedValue(value: string): void {\r\n this.selectedValueSubject.next(value);\r\n }\r\n\r\n GetABBLogin(email:any)\r\n {\r\n var reqHeader = new HttpHeaders({\r\n 'Content-Type': 'application/json'\r\n });\r\n return this.http.post(this.webApiUrl + 'api/Login/authenticate?email='+ email , {headers: reqHeader});\r\n }\r\n\r\n\r\n\r\n ShowSnackBar(data: any,color: any)\r\n {\r\n this._snackBar.open(data,'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000,\r\n panelClass: [color]\r\n });\r\n }\r\n \r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpClientModule} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DisputeSave, ProjectSave } from '../ProjectDetails_ABB/projectDetails_ABB.component';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DisputeService {\r\n //rooturl = 'https://localhost:7063/';\r\n rooturl = environment.webApiUrl;\r\n constructor(private http: HttpClient,private snackBar: MatSnackBar) { }\r\n \r\n saveDispute(data: DisputeSave): Observable {\r\n console.log('savedata',data);\r\n var headers = new HttpHeaders();\r\n //headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.post(this.rooturl + 'Api/Dispute/SaveDispute',data);\r\n }\r\n GetDispute(AssemblyId,Id): Observable {\r\n return this.http.get(this.rooturl + 'api/Dispute/getDisputeDetailList?assemblyId=' +AssemblyId+'&Id='+Id);\r\n } \r\n getDisputeAttachmentList(cClassDisputeId): Observable {\r\n return this.http.get(this.rooturl + 'api/Dispute/GetDisputeAttachmentList?cClassDisputeId='+cClassDisputeId);\r\n \r\n } \r\n DisputeAttachmentSave(attachments :any): Observable {\r\n return this.http.post(this.rooturl + 'api/Dispute/DisputeAttachmentSave',attachments,{responseType:'text'});\r\n } \r\n deleteDisputeAttachment(Id:number): Observable{\r\n var headers = new HttpHeaders();\r\n //headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/Dispute/DeleteDisputeAttachment?Id=' + Id);\r\n }\r\n AddFileDetails(file,cClassId): Observable\r\n {\r\n const fileData = new FormData();\r\n for(let i=0;i {\r\n return this.http.get(this.rooturl + 'api/Dispute/getDisputeDetailListForQE?assemblyId=' +AssemblyId+'&Id='+Id+'&QualityEngineerId='+QualityEngineerId);\r\n} \r\n\r\n\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpClientModule} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { InvoiceDialogData } from '../ProjectDetails_Vendor/AddInvoiceDialog';\r\nimport { environment } from 'src/environments/environment';\r\nimport { AttachmentSave } from '../create-assign-vendor/create-assign-vendor.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InvoiceService {\r\n //rooturl = 'https://localhost:7063/';\r\n rooturl = environment.webApiUrl;\r\n constructor(private http: HttpClient,private snackBar: MatSnackBar) { }\r\n\r\n saveInvoiceDetails(addData: InvoiceDialogData): Observable {\r\n var headers = new HttpHeaders();\r\n return this.http.post(this.rooturl + 'api/Invoice/saveInvoice',addData);\r\n }\r\n getInvoiceDataList(projectId,vendorId){\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/Invoice/getInvoiceDataList?projectId='+projectId+'&VendorId='+vendorId);\r\n \r\n } \r\n getInvoiceDetails(projectId,vendorId){\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/Invoice/getInvoiceDetails?projectId='+projectId+'&VendorId='+vendorId);\r\n \r\n } \r\n getInvoiceWiringTbleList(bomId,vendorId,Id){\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/Invoice/getInvoiceWiringTbleList?Id='+ Id + '&bomId='+bomId+'&VendorId='+vendorId);\r\n \r\n } \r\n getInvoiceVendorBasedBOMDetailList(projectId,vendorId, Id): Observable {\r\n return this.http.get(this.rooturl + 'api/Invoice/getVendorBasedBOMDetailList?projectId=' +projectId+'&Id='+Id +'&VendorId='+vendorId);\r\n } \r\n GetInvoiceFileByName(data:any)\r\n {\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n console.log(headers);\r\n return this.http.post(this.rooturl + 'api/Common/GetInvoiceFileByName?fileName='+ data, {observe: 'response', responseType:'blob'}, {headers: headers});\r\n \r\n }\r\n AddInvoiceFile(file,cClassId): Observable\r\n {\r\n const fileData = new FormData();\r\n fileData.append('fileData',file, cClassId+','+file.name);\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.post(this.rooturl + 'api/Common/InvoicePostFileAsync', fileData, {headers: headers});\r\n }\r\n ABBAttachmentSaveInvoice(attachments :any): Observable {\r\n return this.http.post(this.rooturl + 'api/Invoice/ABBAttachmentSaveInvoice',attachments,{responseType:'text'});\r\n } \r\n \r\n}","import { Component, OnInit, Inject, OnDestroy, Injectable } from '@angular/core';\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\nimport { AuthenticationResult, InteractionStatus, InteractionType, PopupRequest, RedirectRequest } from '@azure/msal-browser';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpResponse\r\n} from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError, map, retry, tap } from 'rxjs/operators';\r\nimport { BnNgIdleService } from 'bn-ng-idle';\r\n\r\n\r\nimport { LoadingService, LoadingOverlayRef } from './loading.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\n\r\n\r\n@Injectable()\r\nexport class LoadingInterceptor implements HttpInterceptor {\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n Email : string;\r\n constructor(@Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MsalGuardConfiguration, private loadingService: LoadingService,\r\n \r\n /* Start Process 1 */\r\n \r\n private _snackBar: MatSnackBar, private bnIdle: BnNgIdleService,private authService: MsalService) {\r\n \r\n\r\n /* Start Process 2 */\r\n this.bnIdle.startWatching(4000).subscribe((res) => {\r\n if(res) \r\n {\r\n this.Email = sessionStorage.getItem('LoginEmail');\r\n\r\n if(this.Email.includes('@in.abb.com') || this.Email.includes('abb.com'))\r\n {\r\n \r\n sessionStorage.removeItem('menuTitle');\r\n sessionStorage.removeItem('menuIcon');\r\n sessionStorage.removeItem('menuLink');\r\n sessionStorage.removeItem('roleId');\r\n sessionStorage.removeItem('role');\r\n sessionStorage.removeItem('LoginEmail');\r\n sessionStorage.removeItem('userId');\r\n sessionStorage.removeItem('userToken');\r\n sessionStorage.removeItem('tokenExpiration');\r\n sessionStorage.removeItem('menuTitle2');\r\n sessionStorage.removeItem('menuIcon2');\r\n sessionStorage.removeItem('menuLink2');\r\n\r\n\r\n console.log('logoutABB');\r\n if (this.msalGuardConfig.interactionType === InteractionType.Popup) {\r\n this.authService.logoutPopup({\r\n postLogoutRedirectUri: \"/\",\r\n mainWindowRedirectUri: \"/\"\r\n });\r\n } else {\r\n this.authService.logoutRedirect({\r\n postLogoutRedirectUri: \"/\",\r\n });\r\n }\r\n\r\n this._snackBar.open(\"Session Timeout, Please login once again!\",'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000,\r\n panelClass: ['red-snackbar']\r\n });\r\n setTimeout(() => {\r\n window.location.reload(); \r\n }, 500);\r\n }\r\n else\r\n {\r\n\r\n \r\n sessionStorage.removeItem('menuTitle');\r\n sessionStorage.removeItem('menuIcon');\r\n sessionStorage.removeItem('menuLink');\r\n sessionStorage.removeItem('roleId');\r\n sessionStorage.removeItem('role');\r\n sessionStorage.removeItem('LoginEmail');\r\n sessionStorage.removeItem('userId');\r\n sessionStorage.removeItem('userToken');\r\n sessionStorage.removeItem('tokenExpiration');\r\n sessionStorage.removeItem('menuTitle2');\r\n sessionStorage.removeItem('menuIcon2');\r\n sessionStorage.removeItem('menuLink2');\r\n\r\n\r\n\r\n this._snackBar.open(\"Session Timeout, Please login once again!!\",'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000,\r\n panelClass: ['red-snackbar']\r\n });\r\n setTimeout(() => {\r\n window.location.reload(); \r\n }, 500);\r\n }\r\n }\r\n })\r\n /* END Process 2 */\r\n \r\n }\r\n/* END Process 1 */\r\n\r\n/* Start Process 3 */\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n let loadingRef: LoadingOverlayRef;\r\n Promise.resolve(null).then(() => loadingRef = this.loadingService.open());\r\n var tokenExpiration = sessionStorage.getItem(\"tokenExpiration\");\r\n console.log(tokenExpiration);\r\n\r\n /* Start Process 4 */\r\nif(tokenExpiration == null){\r\n console.log('token is null here');\r\n console.log(tokenExpiration);\r\n return next.handle(req).pipe(tap(event => {\r\n if (event instanceof HttpResponse && loadingRef) {\r\n loadingRef.close();\r\n }\r\n })).pipe(catchError((err) => {\r\n if (loadingRef) {\r\n loadingRef.close();\r\n }\r\n throw err;\r\n \r\n }));\r\n}\r\nelse\r\n{\r\n\r\n console.log('token exists');\r\n console.log(tokenExpiration);\r\n\r\n\r\n /* Start Process 5 */\r\n return next.handle(req).pipe(tap(event => {\r\n if (event instanceof HttpResponse && loadingRef) {\r\n loadingRef.close();\r\n }\r\n })).pipe(catchError((err) => {\r\n \r\n if (loadingRef) {\r\n loadingRef.close();\r\n }\r\n console.log('getting tokenExp');\r\n console.log(sessionStorage.getItem(\"tokenExpiration\"));\r\n var tokenExpiration = sessionStorage.getItem(\"tokenExpiration\");\r\n let tokenExpirationDate = new Date(tokenExpiration);\r\n let currentDate = new Date();\r\n\r\n\r\n console.log('getting tokenExpirationDate');\r\n console.log(tokenExpirationDate);\r\n\r\n console.log('getting currentDate');\r\n console.log(currentDate);\r\n\r\n\r\n if(tokenExpirationDate > currentDate){\r\n\r\n }\r\n else if(tokenExpirationDate < currentDate)\r\n {\r\n \r\n this.Email = sessionStorage.getItem('LoginEmail');\r\n\r\n \r\n sessionStorage.removeItem('menuTitle');\r\n sessionStorage.removeItem('menuIcon');\r\n sessionStorage.removeItem('menuLink');\r\n sessionStorage.removeItem('roleId');\r\n sessionStorage.removeItem('role');\r\n sessionStorage.removeItem('LoginEmail');\r\n sessionStorage.removeItem('userId');\r\n sessionStorage.removeItem('userToken');\r\n sessionStorage.removeItem('tokenExpiration');\r\n sessionStorage.removeItem('menuTitle2');\r\n sessionStorage.removeItem('menuIcon2');\r\n sessionStorage.removeItem('menuLink2');\r\n\r\n\r\n console.log('logoutABB');\r\n if (this.msalGuardConfig.interactionType === InteractionType.Popup) {\r\n this.authService.logoutPopup({\r\n postLogoutRedirectUri: \"/\",\r\n mainWindowRedirectUri: \"/\"\r\n });\r\n } else {\r\n this.authService.logoutRedirect({\r\n postLogoutRedirectUri: \"/\",\r\n });\r\n }\r\n\r\n this._snackBar.open(\"Session Timeout, Please login once again!!!\",'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000,\r\n panelClass: ['red-snackbar']\r\n });\r\n setTimeout(() => {\r\n window.location.reload(); \r\n }, 500);\r\n \r\n }\r\n else{\r\n this._snackBar.open(\"Something Went wrong\",'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000,\r\n panelClass: ['red-snackbar']\r\n });\r\n }\r\n throw err;\r\n \r\n }));\r\n\r\n /* END Process 5 */\r\n\r\n}\r\n /* END Process 4 */ \r\n \r\n }\r\n\r\n /* END Process 3 */\r\n\r\n\r\n}\r\n","import { ComponentRef, Injectable, Injector } from '@angular/core';\r\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal, PortalInjector } from '@angular/cdk/portal';\r\n\r\nimport { LoadingComponentComponent } from '../loading/loading-component/loading-component.component'\r\n\r\nexport class LoadingOverlayRef {\r\n constructor(private overlayRef: OverlayRef) { }\r\n\r\n close(): void {\r\n this.overlayRef.dispose();\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class LoadingService {\r\n constructor(private injector: Injector, private overlay: Overlay) {\r\n }\r\n\r\n open(): LoadingOverlayRef {\r\n const overlayRef = this.createOverlay();\r\n const dialogRef = new LoadingOverlayRef(overlayRef);\r\n const overlayComponent = this.attachDialogContainer(overlayRef, dialogRef);\r\n\r\n return dialogRef;\r\n }\r\n\r\n private createOverlay(): OverlayRef {\r\n const positionStrategy = this.overlay\r\n .position()\r\n .global()\r\n .centerHorizontally()\r\n .centerVertically();\r\n const overlayConfig = new OverlayConfig({\r\n hasBackdrop: true,\r\n scrollStrategy: this.overlay.scrollStrategies.block(),\r\n positionStrategy\r\n });\r\n\r\n return this.overlay.create(overlayConfig);\r\n }\r\n\r\n private attachDialogContainer(overlayRef: OverlayRef, dialogRef: LoadingOverlayRef): LoadingComponentComponent {\r\n const injector = this.createInjector(dialogRef);\r\n const containerPortal = new ComponentPortal(LoadingComponentComponent, null, injector);\r\n const containerRef: ComponentRef = overlayRef.attach(containerPortal);\r\n\r\n return containerRef.instance;\r\n }\r\n\r\n createInjector(dataToPass: any): PortalInjector {\r\n const injectorTokens = new WeakMap();\r\n injectorTokens.set(LoadingOverlayRef, dataToPass);\r\n return new PortalInjector(this.injector, injectorTokens);\r\n}\r\n\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpClientModule, HttpParams } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators'\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BehaviorSubject,Observable } from 'rxjs';\r\nimport { excelBulkMaterialSave, excelMaterialSave, MaterialDialogData, MaterialType, UOM } from '../material/material.component';\r\nimport { Vendordata } from '../Vendor/vendor.component';\r\nimport { RoleMaster } from '../role-master/role-master.component';\r\nimport { UserRoleSave } from '../user-role-mapping/user-role-mapping.component';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MasterService {\r\n webApiUrl = environment.webApiUrl\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n constructor(private http: HttpClient, private _snackBar: MatSnackBar) { }\r\n createAuthorizationHeader(headers: HttpHeaders) {\r\n headers.append('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n }\r\n\r\n gettoken(userName: any, password: any) {\r\n var data = JSON.stringify({\r\n \"username\": userName,\r\n \"password\": password\r\n });\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/Account', data, { headers: reqHeader });\r\n }\r\n //---------------------------------------Material Module--------------------------------------------\r\n GetMaterialList() {\r\n return this.http.get(this.webApiUrl + 'api/MaterialMaster/GetMaterialList');\r\n }\r\n getMaterialTypeList()\r\n {\r\n return this.http.get(this.webApiUrl + 'api/MaterialMaster/GetMaterialTypeList');\r\n }\r\n GetMaterialUOMList()\r\n {\r\n return this.http.get(this.webApiUrl + 'api/MaterialMaster/GetMaterialUOMList');\r\n }\r\n UpdateMaterial(editMaterial: MaterialDialogData) {\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/MaterialMaster/UpdateMaterial', editMaterial, { headers: reqHeader });\r\n }\r\n AddMaterial(Material: MaterialDialogData) {\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/MaterialMaster/AddMaterial', Material, { headers: reqHeader,responseType:'text' });\r\n }\r\n AddUploadMaterial(addMaterials: excelBulkMaterialSave[]) {\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/MaterialMaster/AddUploadMaterial', addMaterials, { headers: reqHeader,responseType:'text' });\r\n }\r\n DeleteMaterial(deleteMaterial: MaterialDialogData) {\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/MaterialMaster/DeleteMaterial', deleteMaterial, { headers: reqHeader });\r\n }\r\n addMaterialType(addMaterialType:MaterialType)\r\n {\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/MaterialMaster/addMaterialType', addMaterialType, {headers: reqHeader,responseType:'text'});\r\n }\r\n editMaterialType(editMaterialType:MaterialType)\r\n {\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/MaterialMaster/updateMaterialType', editMaterialType, { headers: reqHeader });\r\n }\r\n GetAllMaterialGridDetails()\r\n {\r\n return this.http.get(this.webApiUrl + 'api/MaterialMaster/GetAllMaterialGridDetails');\r\n }\r\n adduom(addUOM:UOM)\r\n {\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/MaterialMaster/addUOM', addUOM, {headers: reqHeader,responseType:'text'});\r\n }\r\n edituom(editUOM:UOM)\r\n {\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/MaterialMaster/updateUOM', editUOM, { headers: reqHeader });\r\n }\r\n //---------------------------------------Vendor Module--------------------------------------------\r\n GetVendorsList() {\r\n return this.http.get(this.webApiUrl + 'api/VendorMaster/GetVendorsList');\r\n }\r\n AddUpdateVendor(addVendor: Vendordata) {\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/VendorMaster/AddUpdateVendor', addVendor, { headers: reqHeader });\r\n }\r\n\r\n CheckForVendorExist(code,name,emailId,id) {\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n\r\n return this.http.get(this.webApiUrl + 'api/VendorMaster/CheckForVendorExist?code='+ code +'&name='+name+'&emailId='+emailId+'&id='+id,{responseType:'text'});\r\n }\r\n\r\n \r\n DeleteVendor(deleteVendorId: number) {\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/VendorMaster/DeleteVendor', deleteVendorId, { headers: reqHeader });\r\n }\r\n //------------------------------------------Role Master -----------------------------------------------------//\r\n GetRoleMasterList(){\r\n return this.http.get(this.webApiUrl + 'api/RoleMaster/GetRoleMasterList');\r\n }\r\n AddUpdateRole(data:RoleMaster)\r\n {\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/RoleMaster/AddUpdateRole', data, { headers: reqHeader });\r\n }\r\n DeleteRole(data:RoleMaster)\r\n {\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/RoleMaster/DeleteRole', data, { headers: reqHeader });\r\n }\r\n GetExternalVendorValue(){\r\n return this.http.get(this.webApiUrl + 'api/UserRoleMap/GetExternalVendorValue');\r\n }\r\n//------------------------------------------User Module-------------------------------------------\r\n getRoleDetails (){\r\n return this.http.get(this.webApiUrl + 'api/UserRoleMap/GetRoleDetails');\r\n }\r\n getVendorDetails (){\r\n return this.http.get(this.webApiUrl + 'api/UserRoleMap/GetVendorDetails');\r\n }\r\n getAllUserDetails (){\r\n return this.http.get(this.webApiUrl + 'api/UserRoleMap/GetAllUserDetails');\r\n }\r\n getUserDetailsByEmail(email : string){\r\n return this.http.get(this.webApiUrl + 'api/UserRoleMap/GetUserDetailsByEmail?email=' + email);\r\n }\r\n save(data : UserRoleSave){\r\n return this.http.post(this.webApiUrl + 'api/UserRoleMap/SaveUserRoleMap',data);\r\n }\r\n update(data : any){\r\n return this.http.post(this.webApiUrl + 'api/UserRoleMap/SaveUserRoleMap',data);\r\n }\r\n deleteUserDet(userId:number): Observable{\r\n return this.http.get(this.webApiUrl + 'api/UserRoleMap/DeleteUserDet?userId=' + userId);\r\n }\r\n snackBarLoader(content, action, duration, color){\r\n this._snackBar.open(content, action, {\r\n duration: 2000,\r\n verticalPosition: \"top\", \r\n horizontalPosition: \"center\", \r\n panelClass: [color]\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpClientModule} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { ProjectSave } from '../ProjectDetails_ABBQualityEngineer/ProjectDetails_ABBQualityEngineer.component';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { WiringTableSave } from '../ProjectDetails_ABB/AddvendorConfigDialog';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectQEDataService {\r\n //rooturl = 'https://localhost:7063/';\r\n rooturl = environment.webApiUrl;\r\n constructor(private http: HttpClient,private snackBar: MatSnackBar) { }\r\n\r\n getPlant(){\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/QualityEngineerDetails/GetPlant');\r\n \r\n }\r\n getProjectHDR(QualityEngineerId:number){\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/QualityEngineerDetails/GetProjectHDR?QualityEngineerId='+QualityEngineerId);\r\n \r\n }\r\n\r\n\r\n assignQualityEngineer( data: WiringTableSave): Observable {\r\n /* var headers = new HttpHeaders(); */\r\n return this.http.post(this.rooturl + 'api/QualityEngineerDetails/assignQualityEngineer', data);\r\n // return this.http.post(this.rooturl + 'api/QualityEngineerDetails/assignQualityEngineer',WiringTableId);\r\n \r\n } \r\n\r\n getVendorDataList(projectId,QualityEngineerId){\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/QualityEngineerDetails/getVendorDataList?projectId='+projectId +'&qualityEngineerId='+ QualityEngineerId);\r\n \r\n }\r\n getMaterialReviewFromCClassIDDetails(cClassid,vendorId): Observable {\r\n return this.http.get(this.rooturl + 'api/QualityEngineerDetails/GetMaterialReviewFromCClassIDDetails?cClassid='+cClassid +'&vendorId='+vendorId);\r\n } \r\n saveArticle(data:any): Observable {\r\n console.log('savedata',data);\r\n var headers = new HttpHeaders();\r\n //headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.post(this.rooturl + 'Api/QualityEngineerDetails/SaveMaterialDet',data);\r\n }\r\n\r\n saveVerification( data: WiringTableSave): Observable {\r\n return this.http.post(this.rooturl + 'api/QualityEngineerDetails/saveVerification', data);\r\n \r\n } \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n snackBarLoader(content, action, duration, color){\r\n this.snackBar.open(content, action, {\r\n duration: 2000,\r\n verticalPosition: \"top\", \r\n horizontalPosition: \"center\", \r\n panelClass: [color]\r\n });\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpClientModule} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { ProjectSave } from '../ProjectDetails_ABB/projectDetails_ABB.component';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { WiringTableSave } from '../ProjectDetails_ABB/AddvendorConfigDialog';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjectService {\r\n //rooturl = 'https://localhost:7063/';\r\n rooturl = environment.webApiUrl;\r\n constructor(private http: HttpClient,private snackBar: MatSnackBar) { }\r\n\r\n getPlant(){\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/Project/GetPlant');\r\n \r\n }\r\n getProjectHDR(){\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/Project/GetProjectHDR');\r\n \r\n }\r\n saveProject(data: ProjectSave): Observable {\r\n console.log('savedata',data);\r\n var headers = new HttpHeaders();\r\n //headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.post(this.rooturl + 'Api/Project/SaveProject',data);\r\n }\r\n deleteProject(Id:number): Observable{\r\n var headers = new HttpHeaders();\r\n //headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/Project/DeleteProjectData?Id=' + Id);\r\n }\r\n closeProject(projectId:number): Observable{\r\n var headers = new HttpHeaders();\r\n //headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/Project/CloseProject?projectId=' + projectId);\r\n }\r\n\r\n\r\n/* Used below methods for Vendor Assign */\r\nsaveVendorDetails(data: WiringTableSave): Observable {\r\n console.log('savedata',data);\r\n var headers = new HttpHeaders();\r\n //headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.post(this.rooturl + 'Api/Project/saveVendorDetails',data);\r\n}\r\n\r\n getVendorDataList(projectId){\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/Project/getVendorDataList?projectId='+projectId);\r\n \r\n }\r\n \r\n\r\n getBOMDetailList(projectId, Id): Observable {\r\n return this.http.get(this.rooturl + 'api/Project/getBOMDetailList?projectId=' +projectId+'&Id='+Id);\r\n } \r\n\r\n\r\n getWiringTbleList( bomId,Id): Observable {\r\n return this.http.get(this.rooturl + 'api/Project/getWiringTbleList?Id='+ Id + '&bomId='+bomId);\r\n } \r\n\r\n GetDriveRatingListForAutoSuggest(): Observable {\r\n return this.http.get(this.rooturl + 'api/Project/GetDriveRatingListForAutoSuggest');\r\n }\r\n assignCommonWiringTable( data: WiringTableSave[]): Observable {\r\n return this.http.post(this.rooturl + 'api/Project/assignCommonWiringTable', data);\r\n \r\n } \r\n assignWiringTable( data: WiringTableSave): Observable {\r\n /* var headers = new HttpHeaders(); */\r\n return this.http.post(this.rooturl + 'api/Project/assignWiringTable', data);\r\n // return this.http.post(this.rooturl + 'api/Project/assignWiringTable',WiringTableId);\r\n \r\n } \r\n getABBAttachmentDetails(cClassId): Observable {\r\n return this.http.get(this.rooturl + 'api/Project/GetABBAttachmentList?cClassId='+cClassId);\r\n \r\n } \r\n ABBAttachmentSave(attachments :any): Observable {\r\n return this.http.post(this.rooturl + 'api/Project/ABBAttachmentSave',attachments,{responseType:'text'});\r\n } \r\n deleteAttachment(Id:number): Observable{\r\n var headers = new HttpHeaders();\r\n //headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/Project/DeleteAttachment?Id=' + Id);\r\n }\r\n checkIfSavedPONumber(PONumber): Observable {\r\n return this.http.get(this.rooturl + 'api/Project/CheckIfSavedPONumber?PONumber='+ PONumber,{responseType:'text'});\r\n } \r\n checkIfSavedProjectNumber(projectName): Observable {\r\n return this.http.get(this.rooturl + 'api/Project/CheckIfSavedProjectNumber?projectName='+ projectName,{responseType:'text'});\r\n } \r\n CheckIfSavedSalesOrderNo(salesOrderNo):Observable {\r\n return this.http.get(this.rooturl + 'api/Project/CheckIfSavedSalesOrderNo?salesOrderNo='+ salesOrderNo,{responseType:'text'});\r\n } \r\n\r\n getPurchaseDetails(projectId :number,wiringTableId:number): Observable {\r\n return this.http.get(this.rooturl + 'api/Project/getPurchaseDetails?projectId='+ projectId +'&wiringTableId='+wiringTableId);\r\n } \r\n\r\n getQEDetails(){\r\n return this.http.get(this.rooturl + 'api/Project/getQEDetails');\r\n }\r\n saveQEDetails(data: WiringTableSave): Observable {\r\n console.log('savedata',data);\r\n var headers = new HttpHeaders();\r\n //headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.post(this.rooturl + 'Api/Project/updateQEDetails',data);\r\n }\r\n snackBarLoader(content, action, duration, color){\r\n this.snackBar.open(content, action, {\r\n duration: 2000,\r\n verticalPosition: \"top\", \r\n horizontalPosition: \"center\", \r\n panelClass: [color]\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpClientModule, HttpParams } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators'\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BehaviorSubject,Observable } from 'rxjs';\r\nimport { ProjectReportParameters } from '../Reports/projectReport.component';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ReportService {\r\n webApiUrl = environment.webApiUrl\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n constructor(private http: HttpClient, private _snackBar: MatSnackBar) { }\r\n createAuthorizationHeader(headers: HttpHeaders) {\r\n headers.append('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n }\r\n\r\n gettoken(userName: any, password: any) {\r\n var data = JSON.stringify({\r\n \"username\": userName,\r\n \"password\": password\r\n });\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.webApiUrl + 'api/Account', data, { headers: reqHeader });\r\n }\r\n //---------------------------------------Project Details--------------------------------------------\r\n getProjectGridDetails(myData :ProjectReportParameters): Observable {\r\n return this.http.post(this.webApiUrl + 'api/Report/GetReport',myData); \r\n }\r\n\r\n getProjectDetails(){\r\n return this.http.get(this.webApiUrl + 'api/Report/GetProjectDetails');\r\n }\r\n getSubmittedProjectDetails(){\r\n return this.http.get(this.webApiUrl + 'api/Report/GetSubmittedProjectDetails');\r\n }\r\n getSubmittedBOMDetails(projectId:number): Observable{\r\n return this.http.get(this.webApiUrl + 'api/Report/GetSubmittedBOMDetails?projectId=' + projectId);\r\n }\r\n getSubmittedWiringTableDetails(bomId:number): Observable{\r\n return this.http.get(this.webApiUrl + 'api/Report/GetSubmittedWiringTableDetails?bomId=' + bomId);\r\n }\r\n \r\n getVendorDetails(projectId:number){\r\n return this.http.get(this.webApiUrl + 'api/Report/GetVendorDetails?projectId=' + projectId);\r\n }\r\n\r\n getHistoryDetails(){\r\n return this.http.get(this.webApiUrl + 'api/Report/GetHistoryDetails');\r\n }\r\n\r\n snackBarLoader(content, action, duration, color){\r\n this._snackBar.open(content, action, {\r\n duration: 2000,\r\n verticalPosition: \"top\", \r\n horizontalPosition: \"center\", \r\n panelClass: [color]\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpClientModule, HttpParams } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators'\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { MaterialDialogData } from '../material/material.component';\r\n/* import { Vendordata } from '../Vendor/vendor.component'; */\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class VendorDataService {\r\n \r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n // rooturl = 'https://localhost:7063/';\r\n rooturl = environment.webApiUrl;\r\n constructor(private http: HttpClient, private snackBar: MatSnackBar) { }\r\n createAuthorizationHeader(headers: HttpHeaders) {\r\n\r\n headers.append('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n }\r\n\r\n gettoken(userName: any, password: any) {\r\n var data = JSON.stringify({\r\n \"username\": userName,\r\n \"password\": password\r\n });\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True' });\r\n return this.http.post(this.rooturl + 'api/Account', data, { headers: reqHeader });\r\n }\r\n getVendorProjectList(vendorId:number): Observable{\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/Vendor/GetVendorProjectDetails?VendorId='+vendorId);\r\n }\r\n getMaterialDetails(){\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/Vendor/GetMaterialDetails');\r\n }\r\n \r\n saveArticle(data:any): Observable {\r\n console.log('savedata',data);\r\n var headers = new HttpHeaders();\r\n //headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.post(this.rooturl + 'Api/Vendor/SaveMaterialDet',data);\r\n }\r\n saveMaterialDetBulkData(data){\r\n return this.http.post(this.rooturl + 'api/Vendor/SaveMaterialDetBulkData',data,{responseType:'text'});\r\n } \r\n deleteMaterialDet(Id:number): Observable{\r\n var headers = new HttpHeaders();\r\n //headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/Vendor/DeleteMaterialDet?Id=' + Id);\r\n }\r\n getMaterialTypeList()\r\n {\r\n return this.http.get(this.rooturl + 'api/Vendor/GetMaterialTypeList');\r\n }\r\n getArticleGridDetails(myData :any): Observable {\r\n \r\n return this.http.post(this.rooturl + 'api/Vendor/GetArticleGridDetails',myData);\r\n \r\n } \r\n getAllArticleGridDetails(projectID :any,vendorId:any): Observable {\r\n \r\n return this.http.get(this.rooturl + 'api/Vendor/GetAllArticleGridDetails?projectID='+projectID +'&vendorId='+vendorId);\r\n \r\n } \r\n\r\n getMaterialTypeAndVendorQty(projectId,vendorId): Observable {\r\n return this.http.get(this.rooturl + 'api/Common/GetUsedMaterialQty?projectId='+projectId+'&vendorId='+vendorId);\r\n \r\n }\r\n getVendorDataMaterialList(projectId,vendorId){\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'api/Vendor/getVendorDataMaterialList?projectId='+projectId +'&vendorId='+vendorId);\r\n }\r\n\r\n getBOMPanelDetailsFromProject(Id:number,vendorId){\r\n var headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer ' + sessionStorage.getItem('userToken'));\r\n return this.http.get(this.rooturl + 'Api/Vendor/GetBOMPanelDetailsFromProject?Id='+Id+'&vendorId='+vendorId);\r\n }\r\n getVendorList(Id): Observable {\r\n return this.http.get(this.rooturl + 'api/Vendor/getVendorList?Id='+Id); \r\n } \r\n getMaterialReviewList(projectId,vendorId): Observable {\r\n return this.http.get(this.rooturl + 'api/Vendor/GetMaterialReviewDetails?projectId='+projectId +'&vendorId='+vendorId);\r\n } \r\n getMaterialReviewFromCClassIDDetails(cClassid,vendorId): Observable {\r\n return this.http.get(this.rooturl + 'api/Vendor/GetMaterialReviewFromCClassIDDetails?cClassid='+cClassid +'&vendorId='+vendorId);\r\n } \r\n\r\n getMaterialStatus(projectId,vendorId): Observable {\r\n return this.http.get(this.rooturl + 'api/Vendor/GetMaterialStatus?projectId='+ projectId +'&vendorId='+vendorId);\r\n } \r\n\r\n getWiringTableStatus(projectId): Observable {\r\n return this.http.get(this.rooturl + 'api/Vendor/GetWiringTableStatus?projectId='+ projectId );\r\n } \r\n\r\n VendorAttachmentSave(attachments :any): Observable {\r\n return this.http.post(this.rooturl + 'api/Vendor/VendorAttachmentSave',attachments,{responseType:'text'});\r\n } \r\n reportAttachmentSave(attachments :any): Observable {\r\n return this.http.post(this.rooturl + 'api/Vendor/ReportAttachmentSave',attachments);\r\n } \r\n AddFileDetails(file,cClassId): Observable\r\n {\r\n const fileData = new FormData();\r\n for(let i=0;i {\r\n return this.http.get(this.rooturl + 'api/Vendor/GetAttachmentList?cClassId='+cClassId+'&vendorId='+vendorId);\r\n \r\n } \r\n getRemarks(projectId,vendorId): Observable {\r\n return this.http.get(this.rooturl + 'api/Vendor/GetRemarks?projectId='+projectId+'&vendorId='+vendorId);\r\n \r\n } \r\n snackBarLoader(content, action, duration, color){\r\n this.snackBar.open(content, action, {\r\n duration: 2000,\r\n verticalPosition: \"top\", \r\n horizontalPosition: \"center\", \r\n panelClass: [color]\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { Component, Inject } from \"@angular/core\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { Vendordata } from \"./vendor.component\";\r\nimport { FormGroup, FormBuilder, Validators } from \"@angular/forms\";\r\nimport { MasterService } from '../Services/master.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from \"@angular/material/snack-bar\";\r\n\r\n\r\n@Component({\r\n selector: 'app-vendor',\r\n templateUrl: './EditVendordetails.html',\r\n styleUrls: ['./vendor.scss']\r\n})\r\n\r\nexport class EditVendordetails {\r\n EditvendorcodeForm: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n editSave : Vendordata= {\r\n id:0 ,name:'',code:'',contactNumber:'',emailId:'',address:'',isActive:true,status:'',createdBy:0,createdDate: new Date(),updatedBy:0,updatedDate:new Date()\r\n }\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: Vendordata, public dialog: MatDialog, public dialogRef: MatDialogRef, private formBuilder: FormBuilder, private masterServ: MasterService, private _snackBar: MatSnackBar) { }\r\n\r\n ngOnInit(): void {\r\n this.EditvendorcodeForm = this.formBuilder.group({\r\n code: [this.data.code, Validators.required],\r\n name: [this.data.name, Validators.required],\r\n contactNumber: [this.data.contactNumber, Validators.required],\r\n emailId: [this.data.emailId, Validators.required],\r\n address: [this.data.address, Validators.required],\r\n active:[this.data.isActive]\r\n\r\n });\r\n\r\n }\r\n onClear() {\r\n this.EditvendorcodeForm.reset();\r\n }\r\n\r\n onClickEdit() {\r\n if (this.EditvendorcodeForm.valid) {\r\n\r\n this.editSave.id=this.data.id,\r\n this.editSave.code= this.EditvendorcodeForm.controls['code'].value,\r\n this.editSave.name= this.EditvendorcodeForm.controls['name'].value,\r\n this.editSave.contactNumber= this.EditvendorcodeForm.controls['contactNumber'].value,\r\n this.editSave.emailId= this.EditvendorcodeForm.controls['emailId'].value,\r\n this.editSave.address= this.EditvendorcodeForm.controls['address'].value,\r\n this.editSave.isActive= this.EditvendorcodeForm.controls['active'].value,\r\n this.editSave.updatedBy = Number(sessionStorage.getItem('userId')),\r\n this.editSave.updatedDate = new Date(),\r\n this.masterServ.CheckForVendorExist( this.editSave.code,this.editSave.name,this.editSave.emailId,this.editSave.id).subscribe((data:any)=>{\r\n if(data >0){\r\n this._snackBar.open('Vendor is already exist with either same Code, Name or Email. It is not allowed.', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n return;\r\n }\r\n else\r\n {\r\n this.masterServ.AddUpdateVendor(this.editSave).subscribe((res: Vendordata[]) => {\r\n this._snackBar.open('Vendor updated successfully', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n this.dialogRef.close({ event: null, data: res });\r\n });\r\n\r\n }\r\n\r\n });\r\n\r\n}\r\n\r\n \r\n }\r\n close() {\r\n this.dialogRef.close();\r\n\r\n }\r\n}","
\r\n\r\n\r\n
\r\n

Edit Vendor

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n Vendor Code\r\n\r\n \r\n \r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n Vendor Name\r\n\r\n \r\n \r\n\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n Contact Number\r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n Emailid\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n Address\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n Active\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, ViewChild } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nexport { EditVendordetails };\r\n\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\r\nimport { EditVendordetails } from './Edit-Vendor';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { MasterService } from '../Services/master.service';\r\n\r\nexport interface Vendordata {\r\n id: number;\r\n name: string;\r\n code: string;\r\n contactNumber : string;\r\n emailId: string;\r\n address: string;\r\n isActive: boolean;\r\n status:string;\r\n createdBy:number;\r\n createdDate :Date;\r\n updatedBy: number;\r\n updatedDate : Date;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-vendor',\r\n templateUrl: './vendor.component.html',\r\n styleUrls: ['./vendor.scss']\r\n})\r\nexport class Vendor {\r\n close1() {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n vendordataSource!: MatTableDataSource;\r\n displayedColumns: string[] = ['code', 'name', 'contactNo', 'emailId', 'address', 'Status','Edit', 'Delete']\r\n\r\n @ViewChild(MatPaginator)\r\n Paginator!: MatPaginator;\r\n dataSource: any;\r\n TableDataIndex: number;\r\n\r\n constructor(public dialog: MatDialog, private masterServ: MasterService) { }\r\n\r\n ngOnInit(): void {\r\n this.VendorTabledata();\r\n }\r\n VendorTabledata() {\r\n this.masterServ.GetVendorsList().subscribe((res: Vendordata[]) => {\r\n debugger;\r\n this.vendordataSource = new MatTableDataSource(res);\r\n this.vendordataSource.paginator = this.Paginator;\r\n });\r\n\r\n }\r\n EditVendorDialog(data: any) {\r\n debugger;\r\n const dialogRef = this.dialog.open(EditVendordetails, {\r\n data: { id: data.id, code: data.code, name: data.name, contactNumber: data.contactNo, emailId: data.emailId, address: data.address ,isActive: (data.status == 'Active')?true:false},\r\n height: '90%',\r\n width: '80%'\r\n\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.VendorTabledata();\r\n });\r\n }\r\n onDelete(data: any) {\r\n debugger;\r\n if (confirm(\"Are sure you want to delete the vendor details: \" + data.name)) {\r\n this.masterServ.DeleteVendor(data.id).subscribe((res: any) => {\r\n this.VendorTabledata();\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.vendordataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n openDialog() {\r\n const dialogRef = this.dialog.open(vendorAdddialog, {\r\n data: {},\r\n height: '90%',\r\n width: '80%'\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.VendorTabledata();\r\n }\r\n\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-vendor',\r\n templateUrl: './Addvendordialog.html',\r\n styleUrls: ['./vendor.scss']\r\n})\r\nexport class vendorAdddialog {\r\n vendorcode: any;\r\n VendorCode: any;\r\n VendorName: any;\r\n addvendorcodeForm: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n phonenNumberRegex = '(([+][(]?[0-9]{1,3}[)]?)|([(]?[0-9]{4}[)]?))\\s*[)]?[-\\s\\.]?[(]?[0-9]{1,3}[)]?([-\\s\\.]?[0-9]{2})([-\\s\\.]?[0-9]{3,4})';\r\n emailRegex = '^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$';\r\n\r\n addVendorSave : Vendordata= {\r\n id:0 ,name:'',code:'',contactNumber:'',emailId:'',address:'',isActive:true,status:'',createdBy:0,createdDate: new Date(),updatedBy:0,updatedDate:new Date()\r\n }\r\n constructor(private formBuilder: FormBuilder, public dialog: MatDialog, private apisr: MasterService, private _snackBar: MatSnackBar, public dialogRef: MatDialogRef,private masterServ: MasterService) {\r\n\r\n }\r\n ngOnInit(): void {\r\n this.addvendorcodeForm = this.formBuilder.group({\r\n code: [null, Validators.required],\r\n name: [null, Validators.required],\r\n contactNumber: [null, [Validators.required, Validators.pattern(this.phonenNumberRegex)]],\r\n emailId: [null, [Validators.required, Validators.pattern(this.emailRegex)]],\r\n address: [null, Validators.required],\r\n active :[true]\r\n });\r\n }\r\n onClickSave() {\r\n debugger;\r\n\r\n if (this.addvendorcodeForm.valid) {\r\n this.addVendorSave.id=0,\r\n this.addVendorSave.code= this.addvendorcodeForm.controls['code'].value,\r\n this.addVendorSave.name= this.addvendorcodeForm.controls['name'].value,\r\n this.addVendorSave.contactNumber= this.addvendorcodeForm.controls['contactNumber'].value,\r\n this.addVendorSave.emailId= this.addvendorcodeForm.controls['emailId'].value,\r\n this.addVendorSave.address= this.addvendorcodeForm.controls['address'].value,\r\n this.addVendorSave.isActive= this.addvendorcodeForm.controls['active'].value,\r\n this.addVendorSave.createdBy = Number(sessionStorage.getItem('userId')),\r\n this.addVendorSave.createdDate = new Date()\r\n\r\n this.masterServ.CheckForVendorExist( this.addVendorSave.code,this.addVendorSave.name,this.addVendorSave.emailId,0).subscribe((data:any)=>{\r\n if(data >0){\r\n this._snackBar.open('Vendor is already exist with either same Code, Name or Email. It is not allowed.', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n return;\r\n }\r\n else\r\n {\r\n this.masterServ.AddUpdateVendor(this.addVendorSave).subscribe((res: Vendordata[]) => {\r\n this._snackBar.open('Vendor created successfully', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n this.dialogRef.close({ event: null, data: res });\r\n });\r\n }\r\n });\r\n\r\n }\r\n}\r\n onClear() {\r\n this.addvendorcodeForm.reset();\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n\r\n }\r\n OnActiveChange(event :Event)\r\n {\r\n\r\n }\r\n}\r\n\r\n\r\n","\r\n\r\n\r\n

Vendor Details

\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n Search \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Vendor Code {{element.code}} Vendor Name {{element.name}} Contact No {{element.contactNo}} Email id {{element.emailId}} Address {{element.address}} Status {{element.status}} Edit\r\n \r\n Delete\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
","
\r\n
\r\n

Add Vendor

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n Vendor Code\r\n\r\n \r\n \r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n Vendor Name\r\n\r\n \r\n \r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n Contact Number\r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n Emailid\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n Address\r\n \r\n \r\n
\r\n\r\n
\r\n Active\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\nimport { projectDetails_ABB_Component } from './ProjectDetails_ABB/projectDetails_ABB.component';\r\nimport { Vendor } from './Vendor/vendor.component';\r\nimport { MaterialComponent } from './material/material.component';\r\nimport { ProjectReportComponent } from './Reports/projectReport.component';\r\n\r\nimport { DasboardComponent } from './dasboard/dasboard.component';\r\nimport { ProjectDetails_VendorComponent } from './ProjectDetails_Vendor/ProjectDetails_Vendor.component';\r\nimport { CreateAssignVendorComponent } from './create-assign-vendor/create-assign-vendor.component';\r\nimport { ReviewUpdateVendorDetailsComponent} from './review-update-vendor-details/review-update-vendor-details.component'\r\nimport { UserRoleMappingComponent } from './user-role-mapping/user-role-mapping.component';\r\nimport { RoleMasterComponent } from './role-master/role-master.component';\r\nimport {ProjectDetails_ABBQualityEngineer_Component} from './ProjectDetails_ABBQualityEngineer/ProjectDetails_ABBQualityEngineer.component'\r\nimport { ReviewVerifyMaterialDetailsComponent } from './review-verify-material-details/review-verify-material-details.component'\r\nimport { RoleGuard } from './role.guard';\r\n\r\nconst routes: Routes = [\r\n \r\n{path:'dashboard', component: DasboardComponent},\r\n{\r\n path: 'dashboard',\r\n component: DasboardComponent,\r\n canActivate: [\r\n MsalGuard\r\n ]\r\n},\r\n{\r\n path: 'ProjectDetails',\r\n component: projectDetails_ABB_Component,\r\n canActivate: [\r\n MsalGuard\r\n ]\r\n},\r\n{\r\n path: 'ProjectDetailsQE',\r\n component: ProjectDetails_ABBQualityEngineer_Component,\r\n canActivate: [\r\n MsalGuard\r\n ]\r\n},\r\n{\r\n path: 'VendorProjectDetails',\r\n component: ProjectDetails_VendorComponent,\r\n canActivate: [\r\n RoleGuard\r\n ],\r\n data: { role: 'Vendor'},\r\n},\r\n{\r\n path: 'Vendor',\r\n component: Vendor,\r\n},\r\n{\r\n path: 'Material',\r\n component: MaterialComponent,\r\n},\r\n{\r\n path: 'ProjectReport',\r\n component: ProjectReportComponent,\r\n},\r\n{ path: 'create-assign-vendor/:id', component: CreateAssignVendorComponent },\r\n{ path: 'review-verify-material-details/:id', component: ReviewVerifyMaterialDetailsComponent },\r\n{ path: 'review-update-vendor-details/:id', component: ReviewUpdateVendorDetailsComponent },\r\n{\r\n path:'UserRoleMapping',\r\n component:UserRoleMappingComponent,\r\n canActivate: [\r\n RoleGuard\r\n ],\r\n data: { \"role\": [\"Admin\", \"Project Manager\"]},\r\n},\r\n{\r\n path: 'Role',\r\n component: RoleMasterComponent,\r\n}\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { useHash: true })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","/* import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n title = 'FCAPP';\r\n}\r\n */\r\n\r\n\r\n\r\nimport { Component, OnInit, Inject, OnDestroy } from '@angular/core';\r\n/* import { BnNgIdleService } from 'bn-ng-idle'; */\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n title = 'AVM';\r\n \r\n // enableProdMode();\r\n\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n\r\n // constructor(private bnIdle: BnNgIdleService,private _snackBar: MatSnackBar) { // initiate it in your component constructor\r\n // this.bnIdle.startWatching(60).subscribe((res) => {\r\n // if(res) {\r\n // console.log(\"session expired\");\r\n\r\n // sessionStorage.removeItem(\"userToken\");\r\n // this._snackBar.open(\"Session Timeout, Please login once again\",'Close', {\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // duration: 2 * 1000,\r\n // panelClass: ['red-snackbar']\r\n // });\r\n // setTimeout(() => {\r\n // window.location.reload(); \r\n // }, 500);\r\n // }\r\n // })\r\n // }\r\n}\r\n","\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule,ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { AppComponent } from './app.component';\r\nimport { SideNavComponent } from './sidenav/side-nav.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { AppMaterialModule } from './shared/app-material.module';\r\nimport { FlexLayoutModule } from \"@angular/flex-layout\";\r\nimport { IPublicClientApplication, PublicClientApplication, InteractionType, BrowserCacheLocation, LogLevel } from '@azure/msal-browser';\r\nimport { MsalGuard, MsalInterceptor, MsalBroadcastService, MsalInterceptorConfiguration, MsalModule, MsalService, MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalGuardConfiguration, MsalRedirectComponent } from '@azure/msal-angular';\r\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\n\r\nimport {MatDialog, MAT_DIALOG_DEFAULT_OPTIONS, MatDialogRef } from '@angular/material/dialog';\r\nimport {MatBadgeModule} from '@angular/material/badge';\r\nimport { AvatarModule } from 'ngx-avatar';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport {DragDropModule} from '@angular/cdk/drag-drop';\r\nimport { MaterialElevationDirective } from './material-elevation.directive';\r\nimport { LoadingComponentComponent } from './loading/loading-component/loading-component.component';\r\nimport { LoadingService} from './Services/loading.service';\r\nimport { LoadingInterceptor } from './Services/loading.interceptor';\r\nimport { DatePipe } from '@angular/common';\r\nimport {IvyCarouselModule} from 'angular-responsive-carousel';\r\nimport * as XLSX from 'xlsx';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport {MatExpansionModule} from '@angular/material/expansion';\r\nimport { environment } from 'src/environments/environment';\r\nimport { NgxGaugeModule } from 'ngx-gauge';\r\nimport { AddProjectDetails, projectDetails_ABB_Component,DisputeDialog,EditvendorConfigDialog, VendorMaterialDialog, ViewProjectDialog, EditProjectDialog, ViewMaterialReview} from './ProjectDetails_ABB/projectDetails_ABB.component';\r\nimport { AddMaterialDialog, MaterialComponent,EditMaterialDialog } from './material/material.component'\r\nimport { EditVendordetails, Vendor, vendorAdddialog} from './Vendor/vendor.component';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport {ProjectReportComponent} from './Reports/projectReport.component'\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { DasboardComponent } from './dasboard/dasboard.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport{NgApexchartsModule} from \"ng-apexcharts\";\r\nimport { TopWidgetsComponent } from './dasboard/top-widgets/top-widgets.component';\r\nimport { MiddleWidgetsComponent } from './dasboard/middle-widgets/middle-widgets.component';\r\nimport { AppMiddleWidgetsRightComponent } from './dasboard/middle-widgets-right/middle-widgets-right.component';\r\nimport { VendorMaterialReview, ViewVendorMaterialReview } from './ProjectDetails_Vendor/MaterialReview';\r\nimport { DispatchDialog, Vendor_DisputeDialog, Vendor_editDispatchDialog, Vendor_ViewProjectDialog, ProjectDetails_VendorComponent } from './ProjectDetails_Vendor/ProjectDetails_Vendor.component';\r\nimport { AddInvoiceDialog } from './ProjectDetails_Vendor/AddInvoiceDialog';\r\nimport { AddvendorConfigDialog } from './ProjectDetails_ABB/AddvendorConfigDialog';\r\nimport { AddvendorDetailConfigDialog } from './create-assign-vendor/AddvendorDetailConfigDialog'\r\nimport { VendorInvoiceDialog } from './ProjectDetails_Vendor/InvoiceListingdialog';\r\nimport { CreateAssignVendorComponent,DisputeListingDialog,DisputeRequestDialog,EditvendorDetailConfigDialog ,ABB_OpenAttachment,ABB_AssignQE} from './create-assign-vendor/create-assign-vendor.component';\r\nimport { ReviewUpdateVendorDetailsComponent,ViewVendorMaterialReviewDetails,DisputeResolvedDialog, DisputeListingDialog_Vendor,Vendor_OpenAttachment } from './review-update-vendor-details/review-update-vendor-details.component';\r\nimport { UserRoleMappingComponent ,AddUserRoleMappingDialogComponent} from './user-role-mapping/user-role-mapping.component';\r\nimport { RoleMasterComponent } from './role-master/role-master.component';\r\nimport { AddRoleMaster } from './role-master/AddRoleMaster';\r\nimport { EditRoleMaster } from './role-master/EditRoleMaster';\r\nimport { MaterialTypeListingDialog } from './material/MaterialTypeListingDialog';\r\nimport { AddMaterialTypeDialog } from './material/AddMaterialTypeDialog';\r\nimport { EditMaterialTypeDialog } from './material/EditMaterialTypeDialog';\r\nimport { UOMListingDialog } from './material/UOMListingDialog';\r\nimport { AddUOMDialog } from './material/AddUOMDialog';\r\nimport { EditUOMDialog } from './material/EditUOMDialog';\r\nimport { ProjectDetails_ABBQualityEngineer_Component } from './ProjectDetails_ABBQualityEngineer/ProjectDetails_ABBQualityEngineer.component';\r\nimport { ReviewVerifyMaterialDetailsComponent,DisputeQERequestDialog,DisputeQEListingDialog, MaterialDetailsQE } from './review-verify-material-details/review-verify-material-details.component';\r\n\r\nconst avatarColors = [\"#e7cb25\", \"#95a5a6\", \"#f39c12\", \"#ffd100\", \"#5bbb4c\",\"#a9a9a9\", \"#262626\"];\r\nconst isIE = window.navigator.userAgent.indexOf(\"MSIE \") > -1 || window.navigator.userAgent.indexOf(\"Trident/\") > -1;\r\nexport function loggerCallback(logLevel: LogLevel, message: string) {\r\n\r\n}\r\nexport function MSALInstanceFactory(): IPublicClientApplication {\r\n return new PublicClientApplication({\r\n auth: {\r\n //clientId: '94929b7a-6c22-46d7-97e7-8d616d5185e6', for QA\r\n // clientId: '59da47ed-9a05-4995-bad2-59e8b0733fa1',\r\n clientId: environment.clientIdForLogin,\r\n authority: 'https://login.microsoftonline.com/372ee9e0-9ce0-4033-a64a-c07073a91ecd',\r\n redirectUri: environment.redirectUri\r\n\r\n },\r\n cache: {\r\n cacheLocation: BrowserCacheLocation.SessionStorage,\r\n storeAuthStateInCookie: isIE, // set to true for IE 11\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback,\r\n logLevel: LogLevel.Info,\r\n piiLoggingEnabled: false\r\n }\r\n }\r\n });\r\n}\r\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\r\n const protectedResourceMap = new Map>();\r\n protectedResourceMap.set('https://graph.microsoft.com/v1.0/me', ['user.read']);\r\n\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n protectedResourceMap\r\n };\r\n}\r\n\r\n\r\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\r\n return { \r\n interactionType: InteractionType.Redirect,\r\n authRequest: {\r\n scopes: ['user.read']\r\n }\r\n };\r\n}\r\n@NgModule({\r\n declarations: [\r\n AppComponent,SideNavComponent, \r\n MaterialElevationDirective, TopWidgetsComponent,MiddleWidgetsComponent,AppMiddleWidgetsRightComponent,\r\n LoadingComponentComponent,DasboardComponent,MaterialComponent,AddMaterialDialog,\r\n EditMaterialDialog,vendorAdddialog, ProjectReportComponent ,Vendor, vendorAdddialog, EditVendordetails, \r\n //Vendor\r\n VendorMaterialReview,ViewVendorMaterialReview,VendorMaterialDialog,DisputeDialog,Vendor_ViewProjectDialog,\r\n VendorInvoiceDialog,Vendor_DisputeDialog,Vendor_editDispatchDialog,DispatchDialog, AddInvoiceDialog, ViewMaterialReview,\r\n //ABB\r\n projectDetails_ABB_Component, AddProjectDetails , EditProjectDialog ,\r\n ViewProjectDialog,AddvendorConfigDialog,DisputeListingDialog,DisputeListingDialog_Vendor,\r\n ProjectDetails_VendorComponent, EditvendorConfigDialog, \r\n CreateAssignVendorComponent,AddvendorDetailConfigDialog,DisputeRequestDialog,EditvendorDetailConfigDialog, ABB_OpenAttachment, ABB_AssignQE,\r\n ReviewUpdateVendorDetailsComponent,ViewVendorMaterialReviewDetails,DisputeResolvedDialog,Vendor_OpenAttachment, \r\n UserRoleMappingComponent,AddUserRoleMappingDialogComponent,\r\n // Role Master\r\n RoleMasterComponent,AddRoleMaster,EditRoleMaster,\r\n //Material Master\r\n MaterialTypeListingDialog,AddMaterialTypeDialog,EditMaterialTypeDialog,UOMListingDialog,AddUOMDialog,EditUOMDialog, \r\n ProjectDetails_ABBQualityEngineer_Component, ReviewVerifyMaterialDetailsComponent,DisputeQERequestDialog,DisputeQEListingDialog,\r\n //Quality Engineer \r\n MaterialDetailsQE,\r\n ],\r\n imports: [\r\n AppRoutingModule,\r\n BrowserModule,IvyCarouselModule,\r\n DragDropModule,\r\n BrowserAnimationsModule,\r\n AppMaterialModule,FlexLayoutModule, FormsModule, MatCardModule,NgApexchartsModule,\r\n HttpClientModule, MsalModule, ReactiveFormsModule, NgbModule,AvatarModule.forRoot({\r\n colors: avatarColors\r\n }),\r\n MatBadgeModule,\r\n MatAutocompleteModule,\r\n NgxGaugeModule ,MatExpansionModule,MatFormFieldModule ,MatInputModule\r\n \r\n ],\r\n providers: [{\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: LoadingInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALInstanceFactory\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALGuardConfigFactory\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n useFactory: MSALInterceptorConfigFactory\r\n },\r\n MsalService,\r\n MsalGuard,\r\n MsalBroadcastService,LoadingService,DatePipe,MatTableDataSource,DispatchDialog,\r\n {provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: {hasBackdrop: true}}],\r\n bootstrap: [AppComponent,MsalRedirectComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Component, ElementRef, Inject, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {Observable, of} from 'rxjs';\r\nimport {map, startWith} from 'rxjs/operators';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { VendorDataService } from 'src/app/Services/vendor-data.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators, FormControl} from '@angular/forms';\r\nimport { CreateAssignVendorComponent, VendorDialogData } from './create-assign-vendor.component';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { ProjectService } from '../Services/project.service';\r\nimport { DatePipe, formatDate } from '@angular/common';\r\nexport interface VendorMST{\r\n vendorId:number;\r\n name: string;\r\n}\r\nexport interface BOMMST{\r\n bomId:number;\r\n name: string;\r\n}\r\nexport interface WiringTableMST{\r\n wiringTableId:number;\r\n name: string;\r\n}\r\nexport interface DialogData {\r\n Id : number;\r\n ProjectName : string;\r\n Plant : string;\r\n SalesOrderNo : string;\r\n Customer : string;\r\n ProjectStatus : string;\r\n // Products:string;\r\n IsActive:boolean;\r\n}\r\n\r\nexport interface InvoiceData\r\n{\r\n Id:number,\r\n BomNo:number,\r\n WiringTableId:number,\r\n VendorCode:string,\r\n VendorName:string,\r\n PoNo:string,\r\n PoDate:string,\r\n InvoiceNo:string,\r\n InvoiceDate :string,\r\n InvoiceAmt :string,\r\n invoiceUpload:any\r\n\r\n}\r\n\r\nexport interface WiringTableSave{\r\n WiringTableId: number,\r\n VendorId:number\r\n PurchaceOrderNo:string,\r\n PurchaceOrderDate:string, \r\n PurchaceOrderQty:number,\r\n NoOfTls:number,\r\n NoOfCubicles:number,\r\n NoOfdrives:number,\r\n DriveType:string,\r\n DriveRating:string,\r\n createdBy:number\r\n TargetDate:string,\r\n ApplicationDetails:string\r\n}\r\n\r\nexport interface DriveRatingAutoSuggestList{\r\n driveRating:string;\r\n}\r\nconst UploadVendorData: VendorDialogData[]=[];\r\n\r\n\r\n @Component ({\r\n selector: 'app-dialog3',\r\n templateUrl: './AddvendorDetailConfigDialog.html',\r\n styleUrls:['./create-assign-vendor.component.scss']})\r\n \r\n export class AddvendorDetailConfigDialog {\r\n /**\r\n *\r\n */\r\n formEntity: FormGroup;\r\n BOMList: BOMMST[]=[];\r\n selectBOMNumFormControl = new FormControl();\r\n selectedBomNumValue = [];\r\n displayedColumns: string[] = [];\r\n WiringTableList:WiringTableMST[]=[];\r\n wiringTableFormControl = new FormControl();\r\n \r\n wiringTableSave: WiringTableSave={WiringTableId:0,VendorId:0, PurchaceOrderNo: '', PurchaceOrderDate:'',PurchaceOrderQty:0,NoOfTls: 0,NoOfCubicles:0,NoOfdrives: 0,DriveType:'',DriveRating:'',createdBy:0,\r\n TargetDate:'',ApplicationDetails:''\r\n }\r\n VendorList: VendorMST[]=[];\r\n\r\n\r\n\r\n\r\n @ViewChild('select') select: MatSelect;\r\n searchValueText: string = '';\r\n @ViewChild('searchVendor') searchVendorTextBox: ElementRef;\r\n selectVendorFormControl = new FormControl([]);\r\n searchVendorTextboxControl = new FormControl();\r\n selectedVendorValues = [];\r\n vendorFilteredOptions: Observable= of(this.VendorList);\r\n selectedVendorId= new FormControl([]);\r\n selectedVendorValue= new FormControl([]);\r\n \r\n\r\n\r\n\r\n /* formInstance : FormGroup; */\r\n index:number =0;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n formInstance: FormGroup;\r\n \r\n constructor(@Inject(MAT_DIALOG_DATA) public data: VendorDialogData ,private _formBuilder: FormBuilder,private _snackBar: MatSnackBar, private formBuilder: FormBuilder,private apisrv:ApiservicesService,private vendorData: VendorDataService , private projectServ: ProjectService, public dialogRef: MatDialogRef,private snackBar: MatSnackBar, private datePipe: DatePipe) {\r\n\r\n this.formInstance = _formBuilder.group({\r\n \"vendorControl\":['', Validators.required] \r\n });\r\n }\r\n driveRatingSuggestion = new FormControl('');\r\n driveRatingSuggestionList: string[] = [];\r\n driveRatingSuggestionFilteredOptions!: Observable;\r\n\r\n myControl = new FormControl('');\r\n options: string[] = ['iPhone', 'Mouse', 'Monitor', 'Keyboard', 'Tab'];\r\n filteredOptions!: Observable;\r\n today: Date= new Date();\r\n \r\n myControl1 = new FormControl('');\r\n options1: string[] = ['12 256GB', '13 64GB', '13 128GB', 'Keyboard', 'Tab'];\r\n filteredOptions1!: Observable;\r\n vendordataSource!: MatTableDataSource;\r\n\r\n addVendorData:VendorDialogData[]=[];\r\n \r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n\r\n \r\n ngOnInit(){\r\n if(this.data !=null && this.data !=undefined)\r\n {\r\n this.getBOMDetail(this.data.ProjectId,0)\r\n this.getVendorData(0);\r\n }\r\n this.vendordataSource= new MatTableDataSource(UploadVendorData);\r\n this.formInstance = this.formBuilder.group({\r\n selectBOMNumFormControl :[null,Validators.required],\r\n wiringTableFormControl :[null,Validators.required],\r\n VendorName :[null,Validators.required],\r\n DriveType : [null, Validators.required],\r\n DriveRating: [null, Validators.required],\r\n PoNo: [null, Validators.required],\r\n PoDate:[null, Validators.required],\r\n PoQty : [null, Validators.required],\r\n NoOfTls: [null, Validators.required],\r\n NoOfDrives: [null, Validators.required],\r\n NoOfCubicals :[null,Validators.required],\r\n TargetDate:[null, Validators.required],\r\n ApplicationDetails : [null, Validators.required],\r\n });\r\n this.getDriveRatingSuggestions();\r\n }\r\n getDriveRatingSuggestions(){\r\n \r\n this.projectServ.GetDriveRatingListForAutoSuggest().subscribe((dataa:any)=>{\r\n this.driveRatingSuggestionList=dataa.map(item=>item.driveRating);\r\n this.driveRatingSuggestionFilteredOptions = this.formInstance.get('DriveRating').valueChanges.pipe(\r\n startWith(''),\r\n map(value => this._driveRatingFilter(value || '')),\r\n );\r\n })\r\n }\r\n private _driveRatingFilter(value: string): string[] {\r\n const filterValue = value.toLowerCase();\r\n debugger;\r\n return this.driveRatingSuggestionList.filter(option => option.toLowerCase().includes(filterValue));\r\n }\r\n\r\n \r\n getVendorDataList() {\r\n this.projectServ.getVendorDataList(this.data.ProjectId).subscribe((data: any) => {\r\n console.log(data);\r\n /* this.VendorDialogData= data; */\r\n this.vendordataSource = new MatTableDataSource(data);\r\n })\r\n }\r\n\r\n getBOMDetail(projectId,id){\r\n \r\n this.projectServ.getBOMDetailList(projectId,id).subscribe((data:any)=>{\r\n this.BOMList= data;\r\n console.log(data)\r\n let bomId: number;\r\n if (this.BOMList && this.BOMList.length > 0) {\r\n this.BOMList.forEach((e) => {\r\n /* if(e.code == 'IN01'){ */\r\n bomId= e.bomId;\r\n if (this.selectedBomNumValue.indexOf(e) == -1) {\r\n this.selectedBomNumValue.push(e);\r\n }\r\n /* } */ \r\n });\r\n }\r\n this.selectBOMNumFormControl.patchValue(this.selectedBomNumValue[0]);\r\n this.projectServ.getWiringTbleList(bomId,id).subscribe((data:any)=>{\r\n this.WiringTableList = data, () => console.log('Get all complete'); \r\n });\r\n });\r\n }\r\n\r\n \r\n bomNumSelection(bomid:number){\r\n this.WiringTableList=[];\r\n \r\n this.wiringTableFormControl.reset(); \r\n \r\n this.projectServ.getWiringTbleList(bomid,0).subscribe((data:any)=>{\r\n debugger;\r\n this.WiringTableList = data, () => console.log('Get all complete'); \r\n });\r\n }\r\n\r\n\r\n/* wiringTableSelection() {\r\n \r\n \r\n this.formInstance.value.wiringTableFormControl = this.wiringTableFormControl.value;\r\n \r\n \r\n } */\r\n\r\n\r\n \r\n\r\n\r\n\r\n/* Start- Binding methods of Vendor Dropdown with search and single value selection */\r\n getVendorData(id){\r\n this.vendorData.getVendorList(id).subscribe((data:any)=>{\r\n console.log(data);\r\n this.VendorList = data,\r\n this.vendorFilteredOptions = this.searchVendorTextboxControl.valueChanges \r\n .pipe(\r\n startWith(''),\r\n map(name => this.VendorFilter(name))\r\n );\r\n () => console.log('Get all complete'); \r\n }\r\n );\r\n }\r\n\r\n\r\n private VendorFilter(name: string) {\r\n const filterValue = name.toLowerCase();\r\n this.selectedVendorId= new FormControl([]);\r\n this.selectedVendorValue= new FormControl([]);\r\n if(this.formInstance.value.VendorName !=null){\r\n this.selectedVendorValue.value.push(this.formInstance.value.VendorName);\r\n }\r\n let filteredList = this.VendorList.filter(option => option.name.toLowerCase().includes(filterValue.toLowerCase()));\r\n return filteredList;\r\n }\r\n \r\n openedVendorChange(e) {\r\n // Set search textbox value as empty while opening selectbox \r\n this.searchVendorTextboxControl.patchValue('');\r\n // Focus to search textbox while clicking on selectbox\r\n if (e == true) {\r\n this.searchVendorTextBox.nativeElement.focus();\r\n }\r\n }\r\n \r\n clearVendorSearch(event) {\r\n event.stopPropagation();\r\n this.searchVendorTextboxControl.patchValue('');\r\n }\r\n \r\n vendorSelection() {\r\n this.selectedVendorValue= new FormControl([]);\r\n this.selectedVendorValue.value.push(this.formInstance.value.VendorName); \r\n }\r\n \r\n selectedVendorIdExists(id: number):boolean{\r\n return this.selectedVendorId.value.some(item=>item === id);\r\n }\r\n selectedVendorValueExists(value: string):boolean{\r\n return this.selectedVendorValue.value.some(item=>item === value);\r\n }\r\n/* END- Binding methods of Vendor Dropdown with search and single value selection */\r\n handleInput(event: KeyboardEvent): void{\r\n event.stopPropagation();\r\n } \r\n\r\n\r\n\r\n\r\n\r\n onClear()\r\n {\r\n this.formInstance.reset();\r\n }\r\n private _filter(value: string): string[] {\r\n const filterValue = value.toLowerCase();\r\n \r\n return this.options.filter(option => option.toLowerCase().includes(filterValue));\r\n }\r\n private _filter1(value: string): string[] {\r\n const filterValue1 = value.toLowerCase();\r\n \r\n return this.options1.filter(option1 => option1.toLowerCase().includes(filterValue1));\r\n }\r\n \r\n close() {\r\n this.dialogRef.close();\r\n }\r\n snackBarLoader(content, action, duration, color){\r\n this.snackBar.open(content, action, {\r\n duration: 2000,\r\n verticalPosition: \"top\", \r\n horizontalPosition: \"center\", \r\n panelClass: [color]\r\n });\r\n }\r\n \r\n \r\n \r\n onsubmit()\r\n\r\n {\r\n debugger;\r\nconsole.log(this.VendorList);\r\n if(this.formInstance.value.selectBOMNumFormControl==0){\r\n this.snackBarLoader('Please select BOM Number from list','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n if(this.formInstance.value.wiringTableFormControl==0){\r\n this.snackBarLoader('Please select wiring table from list','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n if(this.formInstance.value.selectVendorFormControl==0){\r\n this.snackBarLoader('Please select vendor','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n if(this.formInstance.value.PoQty<=0 || this.formInstance.value.PoQty>100000){\r\n this.snackBarLoader('Please enter proper value for Purchase quantity.','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n\r\n if(this.formInstance.value.NoOfTls<=0){\r\n this.snackBarLoader('Please enter proper value for No of TLS.','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n if(this.formInstance.value.NoOfCubicals<=0){\r\n this.snackBarLoader('Please enter proper value for No of Cubicles.','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n if(this.formInstance.value.NoOfDrives<0){\r\n this.snackBarLoader('Please enter proper value for No of Drives.','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n if(this.formInstance.value.TargetDate==0 ||this.formInstance.value.TargetDate== null){\r\n this.snackBarLoader('Please enter proper value for TargetDate','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n if(formatDate(this.formInstance.value.TargetDate, 'YYYY/MM/dd', 'en_US')< (formatDate(this.today, 'YYYY/MM/dd', 'en_US')) && formatDate(this.formInstance.value.TargetDate, 'YYYY/MM/dd', 'en_US') != (formatDate(this.today, 'YYYY/MM/dd', 'en_US'))){\r\n this.snackBarLoader('Target date cannot not be in past date','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n\r\n\r\n if(this.formInstance.value.PoNo){\r\n /* this.projectServ.checkIfSavedPONumber(this.formInstance.value.PoNo).subscribe((data:any)=>{\r\n if(data >0){\r\n this.snackBarLoader('Purchase Order No already exists','Done','1000', 'red-snackbar')\r\n return;\r\n }else{*/\r\n var userId = sessionStorage.getItem('userId');\r\n /* this.formInstance.controls['WiringTableStatus'].patchValue('New'); */\r\n if (this.formInstance.valid ) {\r\n \r\n this.wiringTableSave.WiringTableId= this.formInstance.get('wiringTableFormControl').value;\r\n \r\n /* this.wiringTableSave.Status= this.formInstance.get('WiringTableStatus').value; */\r\n this.wiringTableSave.VendorId= this.VendorList.find(i=>i.name==this.formInstance.get('VendorName').value).vendorId\r\n this.wiringTableSave.PurchaceOrderNo = String(this.formInstance.get('PoNo').value),\r\n this.wiringTableSave.PurchaceOrderDate=this.datePipe.transform( this.formInstance.get('PoDate').value,'MM/dd/yyyy'),\r\n this.wiringTableSave.PurchaceOrderQty= this.formInstance.get('PoQty').value,\r\n \r\n this.wiringTableSave.NoOfTls= this.formInstance.get('NoOfTls').value ,\r\n this.wiringTableSave.NoOfCubicles= this.formInstance.get('NoOfCubicals').value,\r\n this.wiringTableSave.NoOfdrives=this.formInstance.get('NoOfDrives').value;\r\n this.wiringTableSave.DriveType= this.formInstance.get('DriveType').value, \r\n this.wiringTableSave.DriveRating= this.formInstance.get('DriveRating').value, \r\n \r\n this.wiringTableSave.createdBy=Number(userId);\r\n this.wiringTableSave.TargetDate=this.datePipe.transform( this.formInstance.get('TargetDate').value,'MM/dd/yyyy'),\r\n this.wiringTableSave.ApplicationDetails= this.formInstance.get('ApplicationDetails').value\r\n console.log(this.wiringTableSave);\r\n this.projectServ.saveVendorDetails(this.wiringTableSave).subscribe({\r\n next: (val :any) => {\r\n this.projectServ.snackBarLoader('Submitted Successfully','Done','1000', 'red-snackbar')\r\n this.getVendorDataList();\r\n this.dialogRef.close(true);\r\n },\r\n error: (err: any) =>{\r\n this.projectServ.snackBarLoader(err.error,'Done','1000', 'red-snackbar')\r\n }\r\n });\r\n \r\n \r\n }\r\n //} \r\n //})\r\n }\r\n \r\n \r\n // this.dialogRef.close({event:null,data: { MaterialTableDataList: this.data, displayedColumns: this.displayedColumns }}); /* */\r\n }\r\n \r\n\r\n }","
\r\n
\r\n

Add Vendor Configuration Details

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n Select BOM Number \r\n \r\n {{bomnum.name}}\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n Select Wiring Table\r\n \r\n {{WiringTable.name}}\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n Select Vendor\r\n \r\n \r\n {{selectedVendorValue.value}} \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
No results found!
\r\n
\r\n \r\n {{vendor.name}} \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n Purchase Order No\r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n
\r\n \r\n Purchase Order Date\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n PO Qty\r\n \r\n \r\n
\r\n
\r\n \r\n No of TLs\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n No of Cubicles\r\n \r\n \r\n
\r\n
\r\n \r\n No Of Drives\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Drive Type\r\n \r\n \r\n
\r\n
\r\n \r\n Drive Rating\r\n \r\n \r\n {{option}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Select Target Date\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Application Details\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators, FormArray, FormControl } from '@angular/forms';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\n\r\n\r\nimport { AddvendorDetailConfigDialog, BOMMST, InvoiceData, VendorMST, WiringTableMST, WiringTableSave } from './AddvendorDetailConfigDialog';\r\nimport { ViewVendorMaterialReview } from '../ProjectDetails_Vendor/MaterialReview';\r\nimport { ProjectService } from '../Services/project.service';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { DisputeService } from '../Services/dispute.service';\r\nimport { JSDocComment } from '@angular/compiler';\r\nimport { Observable, of } from 'rxjs';\r\nimport { VendorDataService } from '../Services/vendor-data.service';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DatePipe, formatDate } from '@angular/common';\r\nimport * as saveAs from 'file-saver';\r\nimport { tick } from '@angular/core/testing';\r\n\r\nexport interface DialogData {\r\n Id: number;\r\n ProjectName: string;\r\n Plant: string;\r\n SalesOrderNo: string;\r\n Customer: string;\r\n ProjectStatus: string;\r\n IsActive: boolean;\r\n}\r\n\r\nexport interface DisputeDialogData {\r\n id: number;\r\n projectId: number;\r\n bomNumber: string;\r\n bomNumberId: number;\r\n wiringTableId:number\r\n moduleName: string;\r\n attachmentId:number;\r\n fileName:string;\r\n raisedRemarks: string;\r\n resolutionRemarks: string;\r\n status: string;\r\n disputeStatus: string;\r\n flag: string,\r\n remarkDetails:RemarkDetails[];\r\n projStatus:string;\r\n sequenceNo:string;\r\n disputeClosedBy:string;\r\n disputeClosedDate:string;\r\n}\r\nexport interface FileList {\r\n id: number;\r\n fileName: string;\r\n}\r\nexport interface RemarkDetails {\r\n id: number;\r\n disputeReason: string;\r\n disputeResolution: string;\r\n fileListABB:FileList[];\r\n fileListVendor:FileList[];\r\n \r\n disputeCreateBy :string;\r\n disputeResolvedBy : string;\r\n disputeCreatedDate :string;\r\n disputeResolveDate :string;\r\n \r\n \r\n}\r\nexport interface disputeFormData\r\n{\r\n id:number;\r\n wiringTableId :number;\r\n wiringTableName:string;\r\n remarks: string;\r\n resolutionRemarks: string;\r\n status: string;\r\n disputeStatus: string;\r\n isChecked:boolean;\r\n \r\n}\r\n\r\nexport interface VendorDialogData {\r\n\r\n id: number;\r\n ProjectId: number;\r\n ModuleName: string;\r\n VendorName: string;\r\n VendorCode: string;\r\n BOMNumber: string;\r\n PoNo: string;\r\n PoDate: string;\r\n PoQty: number;\r\n NoOfTls: number;\r\n NoOfCubicals: number;\r\n NoOfDrives: number;\r\n DriveType: string;\r\n DriveRating: string,\r\n status: string,\r\n FileName:string[];\r\n FileDisplay:boolean[];\r\n ChooseFile:boolean[];\r\n IsABB:boolean[];\r\n IsVendor:boolean[];\r\n ProjectStatus: string,\r\n isDisplayAssign:boolean,\r\n IsResolvedDispute:boolean,\r\n TargetDate:string,\r\n ApplicationDetails:string,\r\n assign:boolean,\r\n qeAssign:boolean,\r\n qeName:string,\r\n projStatus:string,\r\n fontColor:string\r\n}\r\n\r\nexport interface AttachmentSave{\r\n Id:number;\r\n ProjectCclassAssemblyDtlId: number;\r\n FileName:string;\r\n FileExtension: string;\r\n UploadedDate:Date;\r\n Link:string;\r\n CategoryId:number;\r\n IsActive: boolean;\r\n Remark:string;\r\n IsABB:boolean;\r\n IsVendor:boolean;\r\n ProjectCclassAssemblyInvoicId:number;\r\n ProjectCClassAssemblyDisputeId:number;\r\n DisputeRaisedCategory:string;\r\n}\r\nexport interface VendorDialogList {\r\n MaterialTableDataList: any[]; // or a more specific type if known\r\n displayedColumns: string[];\r\n}\r\n\r\nexport let UploadVendorData: VendorDialogData[] = []\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-create-assign-vendor',\r\n templateUrl: './create-assign-vendor.component.html',\r\n styleUrls: ['./create-assign-vendor.component.scss']\r\n})\r\nexport class CreateAssignVendorComponent implements OnInit {\r\n\r\n id: number;\r\n role:string;\r\n AssignActivateVendor: FormGroup;\r\n index: number = 0;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n \r\n\r\n //displayedColumns: string[] = ['BOMNumber', 'ModuleName', 'VendorName', 'VendorCode', 'DriveType', 'DriveRating', 'PoNo', 'PoDate', 'PoQty', 'NoOfTls', 'NoOfCubicals', 'NoOfDrives', 'Status', 'Edit','Dispute','File'];\r\n displayedColumns: string[] = ['BOMNumber','spacerColumn', 'ModuleName','spacerColumn', 'VendorName','spacerColumn', 'VendorCode','spacerColumn', 'DriveType','spacerColumn', 'DriveRating','spacerColumn', 'PoNo','spacerColumn', 'PoDate','spacerColumn', 'PoQty','spacerColumn', 'NoOfTls','spacerColumn', 'NoOfCubicals','spacerColumn', 'NoOfDrives','spacerColumn', 'Status','spacerColumn','TargetDate','qeAssign','File','spacerColumn','Assign','spacerColumn','AssignQE'];\r\n vendordataSource!: MatTableDataSource;\r\n wiringTableSave: WiringTableSave = { WiringTableId: 0, VendorId: 0, PurchaceOrderNo: '', PurchaceOrderDate: '', PurchaceOrderQty: 0, NoOfTls: 0, NoOfCubicles: 0, NoOfdrives: 0, DriveType: '', DriveRating: '', createdBy: 0 ,\r\n TargetDate:'',ApplicationDetails:''\r\n }\r\n commonWiringTableSave:WiringTableSave[]=[];\r\n attachmentUpdate: AttachmentSave={Id:0,ProjectCclassAssemblyDtlId:0,FileName:'',FileExtension:'',UploadedDate:new Date(),\r\n Link:'',CategoryId:0,IsActive:true,IsABB:false,IsVendor:false,Remark:'',ProjectCclassAssemblyInvoicId:null, ProjectCClassAssemblyDisputeId:null,DisputeRaisedCategory:null}\r\n changedFileName:string;\r\n changedFileExtn:string;\r\n showAssign:boolean=true;\r\n showNewVendor:boolean=true;\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n shouldDisplayColumn:boolean=false;\r\n\r\n ngAfterViewInit()\r\n {\r\n this.route.paramMap.subscribe(params => {\r\n this.id = +params.get('id');\r\n this.getVendorData(this.id);\r\n });\r\n }\r\n constructor(private formBuilder: FormBuilder, private apisrv: ApiservicesService, public dialog: MatDialog, private projectServ: ProjectService, private route: ActivatedRoute,\r\n private vendServ:VendorDataService,private router: Router\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.route.paramMap.subscribe(params => {\r\n this.id = +params.get('id');\r\n this.getVendorData(this.id);\r\n });\r\n console.log(sessionStorage.getItem('role'))\r\n this.role=sessionStorage.getItem('role');\r\n if(this.role==\"Project Engineer\" || this.role==\"Project Manager\")\r\n {\r\n \r\n\r\n this.displayedColumns = ['BOMNumber','spacerColumn', 'ModuleName','spacerColumn', 'VendorName','spacerColumn', 'VendorCode','spacerColumn', 'DriveType','spacerColumn', 'DriveRating','spacerColumn', 'PoNo','spacerColumn', 'PoDate','spacerColumn', 'PoQty','spacerColumn', 'NoOfTls','spacerColumn', 'NoOfCubicals','spacerColumn', 'NoOfDrives','spacerColumn', 'Status','spacerColumn','TargetDate','spacerColumn','qeName','File','spacerColumn','Assign','spacerColumn','AssignQE'];\r\n \r\n }\r\n else{\r\n this.displayedColumns = ['BOMNumber','spacerColumn', 'ModuleName','spacerColumn', 'VendorName','spacerColumn', 'VendorCode','spacerColumn', 'DriveType','spacerColumn', 'DriveRating','spacerColumn', 'PoNo','spacerColumn', 'PoDate','spacerColumn', 'PoQty','spacerColumn', 'NoOfTls','spacerColumn', 'NoOfCubicals','spacerColumn', 'NoOfDrives','spacerColumn', 'Status','spacerColumn','TargetDate','File'];\r\n }\r\n \r\n /* this.AssignActivateVendor = this.formBuilder.group({\r\n \r\n ModuleName: [null, null],\r\n VendorCode: [null, Validators.required],\r\n VendorName: [null, Validators.required],\r\n PoNo: [null, [Validators.required]],\r\n PoDate: [null, [Validators.required]],\r\n DriveType: [null, Validators.required],\r\n PoQty: [null, Validators.required],\r\n NoOfTls: [null, [Validators.required]],\r\n NoOfCubicals: [null, Validators.required],\r\n NoOfDrives: [null, Validators.required]\r\n }); */\r\n }\r\n\r\n\r\n tbldata() {\r\n this.vendordataSource = new MatTableDataSource(UploadVendorData);\r\n this.vendordataSource.paginator = this.paginator;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.vendordataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n backClick(){\r\n this.router.navigate(['/ProjectDetails']);\r\n }\r\n AssignEachVendor(inputData,$event)\r\n {\r\n\r\n\r\n if (!confirm(\"Are you sure you want to assign this request? \")) {\r\n $event.stopPropagation();\r\n return false;\r\n }\r\n else {\r\n this.wiringTableSave.WiringTableId= inputData.id\r\n //var WiringTableId= inputData.id\r\n \r\n this.projectServ.assignWiringTable(this.wiringTableSave).subscribe({\r\n next: (val :any) => {\r\n this.getVendorData(this.id);\r\n this.projectServ.snackBarLoader('Assigned Successfully', 'Done', '1000', 'red-snackbar')\r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n return false;\r\n }\r\n });\r\n\r\n return true;\r\n\r\n }\r\n }\r\n onclickAssign() {\r\n const dialogRef = this.dialog.open(AddvendorDetailConfigDialog, {\r\n data: { ProjectId: this.id },\r\n height: '80%',\r\n width: '80%'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getVendorData(this.id);\r\n });\r\n\r\n }\r\n OpenAttachment(data){\r\n debugger;\r\n const dialogRef = this.dialog.open(ABB_OpenAttachment, {\r\n data: { id: data.id,projStatus:data.projectStatus },\r\n height: '80%',\r\n width: '70%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result:{fileName:string,fileExtension:string}[]) => {\r\n if(result){\r\n debugger;\r\n const item= this.vendordataSource.filteredData.find(d=>d.id===data.cClassId)\r\n if(item){\r\n for(let i=0;i {\r\n this.getVendorData(this.id);\r\n\r\n });\r\n\r\n }\r\n\r\n getVendorData(projectId) {\r\n this.projectServ.getVendorDataList(projectId).subscribe((data: any) => {\r\n // console.log(\"data from service \"+JSON.stringify(data));\r\n /* this.VendorDialogData= data; */\r\n console.log(data);\r\n this.vendordataSource = new MatTableDataSource(data);\r\n const status= this.vendordataSource.filteredData.map(item=>item.status=='New');\r\n const isDisplayAssign1 = this.vendordataSource.filteredData.map(item=>item.isDisplayAssign==true);\r\n const hasTrue = status.some(v => v);\r\n const isDisplayAssign = isDisplayAssign1.some(v => v);\r\n if(hasTrue ){this.showAssign=true;}else{this.showAssign=false;}\r\n if(isDisplayAssign==false && data.length!=0){this.showNewVendor=false;}else{this.showNewVendor=true;}\r\n \r\n/* *********************************************** */\r\n const isDisplayVerify1= this.vendordataSource.filteredData.map(item=>item.status=='Submitted');\r\n const isDisplayVerify = isDisplayVerify1.some(v => v);\r\n if(isDisplayVerify==true && data.length!=0) this.shouldDisplayColumn = true;\r\n })\r\n }\r\n\r\n AssignVendor() {\r\n\r\n this.vendServ.getWiringTableStatus(this.id).subscribe((data:any)=>{\r\n const IsSubmitEnabled= data[0].isSubmitEnabled;\r\n const wiringTableList= data[0].wiringTableList\r\n \r\n if(!IsSubmitEnabled)\r\n {\r\n this.vendServ.snackBarLoader('Please create vendor details for wiring table -'+ wiringTableList, 'Done', '1000', 'red-snackbar');\r\n return;\r\n }\r\n else\r\n {\r\n if (confirm(\"Do you want to assign this request to Vendor?\")) {\r\n for(let i=0;i {\r\n \r\n console.log(this.id);\r\n this.getVendorData(this.id);\r\n this.projectServ.snackBarLoader('Assigned Successfully', 'Done', '1000', 'red-snackbar')\r\n this.showAssign=false;\r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n vendortbldata() {\r\n this.vendordataSource = new MatTableDataSource(UploadVendorData);\r\n }\r\n keepAttachment(element){\r\n element.fileName= this.changedFileName;\r\n element.fileExtension=this.changedFileExtn;\r\n element.fileDisplay=true;\r\n element.chooseFile=false;\r\n }\r\n changeAttachment(element){\r\n debugger;\r\n element.chooseFile=true;\r\n this.changedFileName=element.fileName;\r\n this.changedFileExtn= element.fileExtension;\r\n element.fileName='',\r\n element.fileExtension='';\r\n element.fileDisplay=false;\r\n }\r\n onFileSelected(event: Event, element){\r\n const input= event.target as HTMLInputElement;\r\n if(input.files && input.files.length>0){\r\n const file= input.files[0];\r\n if(file.name.split('.')[1]!='xlsx'){\r\n this.vendServ.snackBarLoader('Only .xlsx files are allowed', 'Done', '1000', 'red-snackbar');\r\n input.value='';\r\n return;\r\n }else{\r\n debugger;\r\n element.fileName= file.name;\r\n element.fileExtension= element.fileName.split('.')[1];\r\n element.fileDisplay=true;\r\n this.attachmentUpdate.ProjectCclassAssemblyDtlId= element.id;\r\n this.attachmentUpdate.FileName=file.name;\r\n this.attachmentUpdate.FileExtension=element.fileExtension;\r\n this.attachmentUpdate.IsABB=true;\r\n this.attachmentUpdate.IsVendor=false;\r\n this.attachmentUpdate.CategoryId=0;\r\n this.attachmentUpdate.Id=0;\r\n this.attachmentUpdate.Link='';\r\n this.attachmentUpdate.Remark='';\r\n this.attachmentUpdate.UploadedDate=new Date();\r\n this.projectServ.ABBAttachmentSave(this.attachmentUpdate).subscribe((data:any)=>{\r\n if(data !=\"\")\r\n {\r\n debugger;\r\n this.vendServ.AddFileDetails(file, this.attachmentUpdate.ProjectCclassAssemblyDtlId).subscribe((data:any)=>{ \r\n }); \r\n this.vendServ.snackBarLoader('Submitted Successfully', 'Done', '1000', 'red-snackbar');\r\n }\r\n this.getVendorData(this.id);\r\n /* this.dialogRef.close(); */\r\n });\r\n }\r\n }\r\n }\r\n onFileChange(event: any) {\r\n const file = event.target.files[0];\r\n if (file) {\r\n this.vendortbldata();\r\n }\r\n }\r\n// downloadFile(element){\r\n// debugger;\r\n// var data1= element.fileName;\r\n// this.vendServ.GetFileByName(data1).subscribe((data2:any)=>{\r\n// var content= data2; \r\n// console.log(content); \r\n// this.SaveDemo(content, data1);\r\n// });\r\n// }\r\n// base64ToArrayBuffer(base64: any): ArrayBuffer {\r\n// var binary_string = window.atob(base64);\r\n// var len = binary_string.length;\r\n// var bytes = new Uint8Array(len);\r\n// for (var i = 0; i < len; i++) {\r\n// bytes[i] = binary_string.charCodeAt(i);\r\n// }\r\n// return bytes.buffer;\r\n// }\r\n// SaveDemo(data2: any, data: string){\r\n// var bytes= this.base64ToArrayBuffer(data2);\r\n// let file = new Blob([bytes], { type: '' });\r\n// saveAs(file, data); \r\n// }\r\n EditVendorDailogue(data: any) {\r\n console.log(\"checking data : \" + JSON.stringify(data));\r\n const dialogRef = this.dialog.open(EditvendorDetailConfigDialog, {\r\n data: { id: data.id, BOMNumber: data.bomNumber, ModuleName: data.moduleName, VendorCode: data.vendorCode, VendorName: data.vendorName, DriveType: data.driveType, PoNo: data.poNo, PoDate: data.poDate, PoQty: data.poQty, NoOfTls: data.noOfTls, NoOfCubicals: data.noOfCubicals, NoOfDrives: data.noOfDrives,Status:data.status , DriveRating: data.driveRating,\r\n TargetDate: data.targetDate,ApplicationDetails:data.applicationDetails\r\n },\r\n height: '75%',\r\n width: '80%'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getVendorData(this.id);\r\n\r\n });\r\n }\r\n onDeleteVendor(data: any) {\r\n\r\n if (confirm(\"Are you sure you want to delete the vendor details: \")) {\r\n this.getVendorData(this.id);\r\n }\r\n }\r\n\r\n onClear() {\r\n this.AssignActivateVendor.reset();\r\n }\r\n\r\n\r\n\r\n shouldShowButton(row: any): boolean {\r\n if(row.status==\"Submitted\" && (row.projectStatus==\"WIP\" || row.projectStatus==\"Closed\") )\r\n {\r\n return true; \r\n } \r\n else\r\n return false; \r\n }\r\n getColor(row: any): string {\r\n if(row.isResolvedDispute==true)\r\n {\r\n return \"blue\"; \r\n } \r\n else\r\n return \"black\"; \r\n }\r\n\r\n hasSubmittedRecord(row: any): boolean {\r\n if(row.status==\"Submitted\" && row.qeAssign==false && row.projectStatus==\"WIP\")\r\n return false;\r\n else\r\n return true;\r\n }\r\n\r\n\r\n\r\n OpenandAssignQE(inputData,$event){\r\n const dialogRef= this.dialog.open(ABB_AssignQE,{\r\n data: {id: inputData.id},\r\n height: '75%',\r\n width: '80%'\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getVendorData(this.id);\r\n\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n\r\nexport interface WiringTableUpdate{\r\n WiringTableId: number,\r\n VendorId:number\r\n PurchaceOrderNo:string,\r\n PurchaceOrderDate:string, \r\n PurchaceOrderQty:number,\r\n NoOfTls:number,\r\n NoOfCubicles:number,\r\n NoOfdrives:number,\r\n DriveType:string,\r\n DriveRating:string,\r\n createdBy:number,\r\n TargetDate:string,\r\n ApplicationDetails:string\r\n}\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './EditvendorDetailConfigDialog.html',\r\n styleUrls: ['./create-assign-vendor.component.scss']\r\n})\r\n\r\n\r\nexport class EditvendorDetailConfigDialog {\r\n /**\r\n *\r\n */\r\n isDisabled :boolean =false;\r\n VendorList: VendorMST[] = [];\r\n @ViewChild('select') select: MatSelect;\r\n searchValueText: string = '';\r\n @ViewChild('searchVendor') searchVendorTextBox: ElementRef;\r\n selectVendorFormControl = new FormControl([]);\r\n searchVendorTextboxControl = new FormControl();\r\n selectedVendorValues = [];\r\n vendorFilteredOptions: Observable = of(this.VendorList);\r\n selectedVendorId = new FormControl([]);\r\n selectedVendorValue = new FormControl([]);\r\n today: Date= new Date();\r\n\r\n driveRatingSuggestion = new FormControl('');\r\n driveRatingSuggestionList: string[] = [];\r\n driveRatingSuggestionFilteredOptions!: Observable;\r\n\r\n editVendorform: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n \r\n wiringTableUpdate: WiringTableUpdate={WiringTableId:0,VendorId:0, PurchaceOrderNo: '', PurchaceOrderDate:'',PurchaceOrderQty:0,NoOfTls: 0,NoOfCubicles:0,NoOfdrives: 0,DriveType:'',DriveRating:'',createdBy:0,TargetDate:'',ApplicationDetails:''}\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: VendorDialogData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, private apisrv: ApiservicesService, private vendorData: VendorDataService, public dialogRef: MatDialogRef,\r\nprivate projectServ: ProjectService,private datePipe: DatePipe) { }\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n ngOnInit() {\r\n debugger;\r\n console.log(\"data \" + JSON.stringify(this.data));\r\n this.getVendorData(1);\r\n this.getDriveRatingSuggestions();\r\n\r\n if(this.data.status!=\"New\")\r\n this.isDisabled = true;\r\n const initialDate= new Date(this.data.PoDate);\r\n const targetDate=new Date(this.data.TargetDate);\r\n this.editVendorform = this.formBuilder.group({\r\n WiringTableId: [this.data.id],\r\n ModuleName: [this.data.ModuleName, Validators.required],\r\n VendorName: [this.data.VendorName+'('+this.data.VendorCode+')', Validators.required],\r\n //VendorCode: [this.data.VendorCode, Validators.required], \r\n BOMNumber: [this.data.BOMNumber, Validators.required],\r\n DriveType: [this.data.DriveType, Validators.required],\r\n PoNo: [this.data.PoNo, Validators.required],\r\n PoDate: [initialDate, Validators.required],\r\n PoQty: [this.data.PoQty, Validators.required],\r\n NoOfTls: [this.data.NoOfTls, Validators.required],\r\n NoOfDrives: [this.data.NoOfDrives, Validators.required],\r\n NoOfCubicals: [this.data.NoOfCubicals, Validators.required],\r\n DriveRating:[this.data.DriveRating,Validators.required],\r\n TargetDate:[targetDate,Validators.required],\r\n ApplicationDetails:[this.data.ApplicationDetails,Validators.required]\r\n });\r\n }\r\n getDriveRatingSuggestions(){\r\n \r\n this.projectServ.GetDriveRatingListForAutoSuggest().subscribe((dataa:any)=>{\r\n this.driveRatingSuggestionList=dataa.map(item=>item.driveRating);\r\n this.driveRatingSuggestionFilteredOptions = this.editVendorform.get('DriveRating').valueChanges.pipe(\r\n startWith(''),\r\n map(value => this._driveRatingFilter(value || '')),\r\n );\r\n })\r\n }\r\n private _driveRatingFilter(value: string): string[] {\r\n const filterValue = value.toLowerCase();\r\n debugger;\r\n return this.driveRatingSuggestionList.filter(option => option.toLowerCase().includes(filterValue));\r\n }\r\n\r\n /* Start- Binding methods of Vendor Dropdown with search and single value selection */\r\n getVendorData(id) {\r\n this.vendorData.getVendorList(id).subscribe((data: any) => {\r\n console.log(\"vendor data : \" + JSON.stringify(data));\r\n this.VendorList = data,\r\n this.vendorFilteredOptions = this.searchVendorTextboxControl.valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(name => this.VendorFilter(name))\r\n );\r\n () => console.log('Get all complete');\r\n }\r\n );\r\n\r\n\r\n }\r\n\r\n\r\n private VendorFilter(name: string) {\r\n const filterValue = name.toLowerCase();\r\n debugger;\r\n this.selectedVendorId= new FormControl([]);\r\n this.selectedVendorValue= new FormControl([]);\r\n if(this.editVendorform.value.VendorName !=null){\r\n this.selectedVendorValue.value.push(this.editVendorform.value.VendorName);\r\n }\r\n let filteredList = this.VendorList.filter(option => option.name.toLowerCase().includes(filterValue.toLowerCase()));\r\n return filteredList;\r\n }\r\n \r\n openedVendorChange(e) {\r\n // Set search textbox value as empty while opening selectbox \r\n this.searchVendorTextboxControl.patchValue('');\r\n // Focus to search textbox while clicking on selectbox\r\n if (e == true) {\r\n this.searchVendorTextBox.nativeElement.focus();\r\n }\r\n }\r\n \r\n clearVendorSearch(event) {\r\n event.stopPropagation();\r\n this.searchVendorTextboxControl.patchValue('');\r\n }\r\n vendorSelection() {\r\n\r\n this.selectedVendorValue= new FormControl([]);\r\n this.selectedVendorValue.value.push(this.editVendorform.value.VendorName); \r\n\r\n }\r\n\r\n selectedVendorIdExists(id: number): boolean {\r\n return this.selectedVendorId.value.some(item => item === id);\r\n }\r\n selectedVendorValueExists(value: string): boolean {\r\n return this.selectedVendorValue.value.some(item => item === value);\r\n }\r\n /* END- Binding methods of Vendor Dropdown with search and single value selection */\r\n handleInput(event: KeyboardEvent): void {\r\n event.stopPropagation();\r\n }\r\n\r\n\r\n onClear() {\r\n this.editVendorform.reset();\r\n this.editVendorform.controls['WiringTableId'].patchValue(this.data.id);\r\n this.editVendorform.controls['BOMNumber'].patchValue(this.data.BOMNumber);\r\n this.editVendorform.controls['ModuleName'].patchValue(this.data.ModuleName);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n snackBarLoader(content, action, duration, color){\r\n this._snackBar.open(content, action, {\r\n duration: 2000,\r\n verticalPosition: \"top\", \r\n horizontalPosition: \"center\", \r\n panelClass: [color]\r\n });\r\n }\r\n onUpdate() {\r\n debugger;\r\n if(this.editVendorform.value.selectBOMNumFormControl==0){\r\n this.snackBarLoader('Please select BOM Number from list','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n if(this.editVendorform.value.wiringTableFormControl==0){\r\n this.snackBarLoader('Please select wiring table from list','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n if(this.editVendorform.value.selectVendorFormControl==0){\r\n this.snackBarLoader('Please select vendor','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n if(this.editVendorform.value.PoQty<=0 || this.editVendorform.value.PoQty>100000){\r\n this.snackBarLoader('Please enter proper value for Purchase quantity.','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n\r\n if(this.editVendorform.value.NoOfTls<=0){\r\n this.snackBarLoader('Please enter proper value for No of TLS.','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n if(this.editVendorform.value.NoOfCubicals<=0){\r\n this.snackBarLoader('Please enter proper value for No of Cubicles.','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n if(this.editVendorform.value.NoOfDrives<0){\r\n this.snackBarLoader('Please enter proper value for No of Drives.','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n if(this.editVendorform.value.TargetDate==0){\r\n this.snackBarLoader('Please enter proper value for TargetDate','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n if(this.editVendorform.value.ApplicationDetails==0){\r\n this.snackBarLoader('Please enter ApplicationDetails','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n if(formatDate(this.editVendorform.value.TargetDate, 'YYYY/MM/dd', 'en_US')< (formatDate(this.today, 'YYYY/MM/dd', 'en_US')) && formatDate(this.editVendorform.value.TargetDate, 'YYYY/MM/dd', 'en_US') != (formatDate(this.today, 'YYYY/MM/dd', 'en_US'))){\r\n this.snackBarLoader('The target date cannot be in the past.','Done','1000', 'red-snackbar')\r\n return;\r\n } \r\n\r\n\r\n\r\n var userId = sessionStorage.getItem('userId');\r\n /* this.formInstance.controls['WiringTableStatus'].patchValue('New'); */\r\n if (this.editVendorform.valid ) {\r\n \r\n this.wiringTableUpdate.WiringTableId= this.editVendorform.get('WiringTableId').value;\r\n\r\n /* this.wiringTableSave.Status= this.formInstance.get('WiringTableStatus').value; */\r\n this.wiringTableUpdate.VendorId= this.VendorList.find(i=>i.name==this.editVendorform.get('VendorName').value).vendorId\r\n this.wiringTableUpdate.PurchaceOrderNo = String(this.editVendorform.get('PoNo').value),\r\n this.wiringTableUpdate.PurchaceOrderDate=this.datePipe.transform( this.editVendorform.get('PoDate').value,'MM/dd/yyyy'),\r\n this.wiringTableUpdate.PurchaceOrderQty= this.editVendorform.get('PoQty').value,\r\n \r\n this.wiringTableUpdate.NoOfTls= this.editVendorform.get('NoOfTls').value ,\r\n this.wiringTableUpdate.NoOfCubicles= this.editVendorform.get('NoOfCubicals').value,\r\n this.wiringTableUpdate.NoOfdrives=this.editVendorform.get('NoOfDrives').value;\r\n this.wiringTableUpdate.DriveType= this.editVendorform.get('DriveType').value, \r\n this.wiringTableUpdate.DriveRating= this.editVendorform.get('DriveRating').value, \r\n this.wiringTableUpdate.TargetDate= this.editVendorform.get('TargetDate').value,\r\n this.wiringTableUpdate.ApplicationDetails= this.editVendorform.get('ApplicationDetails').value,\r\n this.wiringTableUpdate.createdBy=Number(userId);\r\n \r\n console.log(this.wiringTableUpdate);\r\n this.projectServ.saveVendorDetails(this.wiringTableUpdate).subscribe({\r\n next: (val :any) => {\r\n this.projectServ.snackBarLoader('Updated Successfully','Done','1000', 'red-snackbar')\r\n this.dialogRef.close(true);\r\n },\r\n error: (err: any) =>{\r\n this.projectServ.snackBarLoader(err.error,'Done','1000', 'red-snackbar')\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\nexport interface DisputeSave {\r\n id: number,\r\n wiringTableId: number,\r\n remarks: string,\r\n resolutionRemarks: string,\r\n status: string,\r\n isActive: boolean,\r\n createdBy: number,\r\n createdDate: Date,\r\n updatedBy: number,\r\n updatedDate: Date\r\n}\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './disputeRequest.component.html',\r\n styleUrls: ['./create-assign-vendor.component.scss']\r\n})\r\n\r\nexport class DisputeRequestDialog {\r\n /**\r\n *\r\n */\r\n form: FormGroup;\r\n reopenform: FormGroup;\r\n bomnoList: BOMMST[] = [];\r\n selectedBomNumValue = [];\r\n flag: string = '';\r\n\r\n WiringTableList: WiringTableMST[] = [];\r\n wiringTableFormControl = new FormControl();\r\n selectBOMNumFormControl = new FormControl();\r\n selectedBomId: number;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n selectedFiles: File[]=[];\r\n disputeAttachmentDataSource:any;\r\n \r\n disputeSave: DisputeSave = {\r\n id: 0, wiringTableId: 0, remarks: '', resolutionRemarks: '', status: '', isActive: true,\r\n createdBy: 1, createdDate: new Date(), updatedBy: 1, updatedDate: new Date()\r\n }\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DisputeDialogData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, public dialogRef: MatDialogRef, public dialog: MatDialog, private projectServ: ProjectService, private disputeServ: DisputeService,\r\nprivate vendServ:VendorDataService) {\r\n this.form = this.formBuilder.group({\r\n Remarks: ['Article missing'], // Default value set here\r\n // other form controls...\r\n });\r\n }\r\n displayedColumnsDisputeAttachment: string[] =['FileName'];\r\n attachmentUpdate: AttachmentSave={Id:0,ProjectCclassAssemblyDtlId:0,FileName:'',FileExtension:'',UploadedDate:new Date(),\r\n Link:'',CategoryId:0,IsActive:true,IsABB:false,IsVendor:false,Remark:'',ProjectCclassAssemblyInvoicId:null, ProjectCClassAssemblyDisputeId:null,DisputeRaisedCategory:null}\r\n attachmentUpdateBulk:AttachmentSave[]=[];\r\n displayedColumns: string[] = ['VendorCode', 'PoNo'];\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n vendordataSource!: MatTableDataSource;\r\n\r\n ngOnInit() {\r\n this.flag = this.data.flag;\r\n this.selectedBomId = this.data?.bomNumberId;\r\n if (this.flag == 'exist') {\r\n debugger;\r\n this.wiringTableIdSelectionReopen(this.data?.wiringTableId,this.data.id)\r\n }\r\n\r\n this.form = this.formBuilder.group({\r\n Id: 0,\r\n Remarks: [null, null],\r\n ResolutionRemarks: [null, null]\r\n });\r\n\r\n this.reopenform = this.formBuilder.group({\r\n Id: 0,\r\n Remarks: [null, null],\r\n ResolutionRemarks: [null, null],\r\n disputeStatus2: [\"reopened\", null]\r\n });\r\n this.loadDisputeAttachmentDetails();\r\n }\r\n /*getBOMDetail(projectId, id) {\r\n\r\n this.projectServ.getBOMDetailList(projectId, id).subscribe((data: any) => {\r\n this.bomnoList = data;\r\n });\r\n }\r\n\r\n bomNumSelection(bomid: number) {\r\n this.selectedBomId = bomid;\r\n this.form.controls['selectBOMNumFormControl'].patchValue(bomid);\r\n this.WiringTableList = [];\r\n\r\n this.wiringTableFormControl.reset();\r\n\r\n this.projectServ.getWiringTbleList(bomid, 0).subscribe((data: any) => {\r\n this.WiringTableList = data;\r\n });\r\n }\r\n wiringTableIdSelection(wiringTableId: number) {\r\n this.disputeServ.GetDispute(wiringTableId, 0).subscribe((data: any) => {\r\n if (data.length > 0) {\r\n this.form = this.formBuilder.group({\r\n Id: [data[0]?.id],\r\n selectBOMNumFormControl: [this.selectedBomId, Validators.required],\r\n wiringTableFormControl: [data[0].wiringTableId, Validators.required],\r\n Remarks: [data[0].remarks, null],\r\n ResolutionRemarks: [data[0].resolutionRemarks, null],\r\n disputeStatus2: [\"reopened\", null]\r\n });\r\n }\r\n else {\r\n this.form.controls['Remarks'].reset();\r\n }\r\n });\r\n }*/\r\n loadDisputeAttachmentDetails(){\r\n this.disputeServ.getDisputeAttachmentList(this.data.id).subscribe((data:any)=>{\r\n this.disputeAttachmentDataSource = new MatTableDataSource(data);\r\n this.disputeAttachmentDataSource.paginator = this.paginator;\r\n console.log(this.disputeAttachmentDataSource);\r\n })\r\n }\r\n wiringTableIdSelectionReopen(wiringTableId: number,id:number) {\r\n this.disputeServ.GetDispute(wiringTableId, id).subscribe((data: disputeFormData[]) => {\r\n if (data.length > 0 && id > 0) {\r\n let checkedData = data.find(x => x.isChecked)\r\n this.reopenform = this.formBuilder.group({\r\n Id: [checkedData.id],\r\n Remarks: [\"\", null],\r\n ResolutionRemarks: [{value:checkedData.resolutionRemarks, disabled:true}],\r\n disputeStatus2: [checkedData.disputeStatus.toLowerCase(), null]\r\n });\r\n }\r\n else {\r\n this.reopenform.controls['Remarks'].reset();\r\n }\r\n });\r\n }\r\n onClear() {\r\n this.form.reset();\r\n this.reopenform.controls['Remarks'].patchValue(null);\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n\r\n }\r\n deleteAttachment(ele){\r\n console.log('dataaa',ele)\r\n if (confirm(\"Are you sure you want to delete?\")) {\r\n var data1= ele.attachmentId+'_'+ele.fileName;\r\n this.disputeServ.DeleteFileByName(data1).subscribe((data2:any)=>{\r\n var content= data2; \r\n console.log(content);\r\n this.disputeServ.deleteDisputeAttachment(ele.attachmentId).subscribe(() => {\r\n this.projectServ.snackBarLoader('Deleted Successfully','Done','1000', 'red-snackbar');\r\n this.disputeServ.getDisputeAttachmentList(this.data.id).subscribe((data:any)=>{\r\n this.disputeAttachmentDataSource = new MatTableDataSource(data);\r\n this.disputeAttachmentDataSource.paginator = this.paginator;\r\n console.log(this.disputeAttachmentDataSource);\r\n })\r\n });\r\n });\r\n }\r\n }\r\n onFileSelected(event:Event):void{\r\n const input= event.target as HTMLInputElement;\r\n this.selectedFiles=[];\r\n if(input.files){\r\n Array.from(input.files).forEach(file=>this.selectedFiles.push(file));\r\n console.log(this.selectedFiles);\r\n }\r\n }\r\n onReopenFileSelected(event:Event):void{\r\n this.selectedFiles=[];\r\n const input= event.target as HTMLInputElement;\r\n \r\n if(input.files){\r\n Array.from(input.files).forEach(file=>this.selectedFiles.push(file));\r\n console.log(this.selectedFiles);\r\n }\r\n }\r\n downloadFile(element){\r\n var data1= element.attachmentId+'_'+element.fileName;\r\n this.disputeServ.GetFileByName(data1).subscribe((data2:any)=>{\r\n var content= data2; \r\n console.log(content); \r\n this.SaveDemo(content, element.fileName);\r\n });\r\n }\r\n base64ToArrayBuffer(base64: any): ArrayBuffer {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n }\r\n SaveDemo(data2: any, data: string){\r\n var bytes= this.base64ToArrayBuffer(data2);\r\n let file = new Blob([bytes], { type: '' });\r\n saveAs(file, data); \r\n }\r\n onClickSave() {\r\n\r\n var userId = sessionStorage.getItem('userId');\r\n if (this.reopenform.controls['Id'].value != 0) {\r\n if (!this.reopenform.value.Remarks) {\r\n this.projectServ.snackBarLoader('Please enter remarks', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.reopenform.valid) {\r\n this.disputeSave.id = this.reopenform.controls['Id'].value,\r\n this.disputeSave.wiringTableId = this.data.wiringTableId;\r\n this.disputeSave.remarks = this.reopenform.controls['Remarks'].value;\r\n this.disputeSave.status = 'reopened';\r\n this.disputeSave.updatedBy =Number(userId);\r\n this.disputeSave.updatedDate =new Date();\r\n this.disputeSave.createdBy= Number(userId);\r\n this.attachmentUpdateBulk=[];\r\n //save attachment\r\n for(let i=0;i {\r\n\r\n for(let i=0;i{\r\n if(data !=\"\")\r\n {\r\n debugger;\r\n this.disputeServ.AddFileDetails(this.selectedFiles,this.attachmentUpdate.ProjectCclassAssemblyDtlId).subscribe((data:any)=>{ \r\n this.selectedFiles=[];\r\n }); \r\n //this.vendServ.snackBarLoader('File uploaded successfully.', 'Done', '1000', 'red-snackbar');\r\n const inputElements= document.querySelectorAll('input[type=\"file\"]');\r\n inputElements.forEach((element:any)=>{\r\n element.value='';\r\n });\r\n this.wiringTableIdSelectionReopen(this.data?.wiringTableId,0);\r\n this.projectServ.snackBarLoader('Dispute reopened Successfully', 'Done', '1000', 'red-snackbar');\r\n this.dialogRef.close();\r\n }\r\n /* this.dialogRef.close(); */\r\n });\r\n \r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar');\r\n this.dialogRef.close();\r\n }\r\n });\r\n \r\n }\r\n }\r\n else {\r\n if (!this.form.value.Remarks) {\r\n this.projectServ.snackBarLoader('Please enter remarks', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n if (this.form.valid) {\r\n var Id;\r\n if(this.form.controls['Id'].value==null)\r\n Id=0;\r\n else\r\n Id=this.form.controls['Id'].value;\r\n \r\n this.disputeSave.id = Id,\r\n this.disputeSave.wiringTableId = this.data.id;\r\n this.disputeSave.remarks = this.form.controls['Remarks'].value;\r\n this.disputeSave.resolutionRemarks = this.form.controls['ResolutionRemarks'].value;\r\n this.disputeSave.status = 'New';\r\n this.disputeSave.createdBy= Number(userId);\r\n this.attachmentUpdateBulk=[];\r\n //save attachment\r\n for(let i=0;i {\r\n debugger;\r\n for(let i=0;i< this.attachmentUpdateBulk.length;i++){\r\n this.attachmentUpdateBulk[i].ProjectCClassAssemblyDisputeId=val;\r\n }\r\n this.disputeServ.DisputeAttachmentSave(this.attachmentUpdateBulk).subscribe((data:any)=>{\r\n if(data !=\"\")\r\n {\r\n debugger;\r\n this.disputeServ.AddFileDetails(this.selectedFiles,this.attachmentUpdate.ProjectCclassAssemblyDtlId).subscribe((data:any)=>{ \r\n this.selectedFiles=[];\r\n }); \r\n //this.vendServ.snackBarLoader('File uploaded successfully.', 'Done', '1000', 'red-snackbar');\r\n const inputElements= document.querySelectorAll('input[type=\"file\"]');\r\n inputElements.forEach((element:any)=>{\r\n element.value='';\r\n });\r\n this.wiringTableIdSelectionReopen(this.data?.id,0);\r\n this.projectServ.snackBarLoader('Dispute raised Successfully', 'Done', '1000', 'red-snackbar');\r\n this.dialogRef.close();\r\n }\r\n /* this.dialogRef.close(); */\r\n });\r\n \r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar');\r\n this.dialogRef.close();\r\n }\r\n });\r\n \r\n }\r\n }\r\n \r\n\r\n }\r\n\r\n}\r\nexport interface disputeStatusDialogData {\r\n id: number;\r\n disputeStatus: string;\r\n}\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './dispute-listing.component.html',\r\n styleUrls: ['./create-assign-vendor.component.scss']\r\n})\r\n\r\nexport class DisputeListingDialog {\r\n disputedataSource!: MatTableDataSource;\r\n ProjectId: number = 0;\r\n Status: string = '';\r\n statusList: disputeStatusDialogData[] = [];\r\n role:string;\r\n projectStatus:string;\r\n\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n\r\n disputeSave: DisputeSave = {\r\n id: 0, wiringTableId: 0, remarks: '', resolutionRemarks: '', status: '', isActive: true,\r\n createdBy: 1, createdDate: new Date(), updatedBy: 1, updatedDate: new Date()\r\n }\r\n\r\n displayedColumns: string[] = ['SequenceNo','RaisedRemarks', 'ResolvedRemarks', 'Status', 'DisputeStatus'];/* 'FileName', */\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DisputeDialogData, private router: Router, public dialogRef: MatDialogRef, private disputeServ: DisputeService, public dialog: MatDialog, private projectServ: ProjectService) {\r\n\r\n }\r\n ngOnInit() {\r\n console.log(this.data);\r\n this.Status = this.data.status;\r\n console.log(\"qqq\"+this.data.projStatus);\r\n this.projectStatus=this.data.projStatus\r\n this.getDispute();\r\n console.log(sessionStorage.getItem('role'))\r\n this.role=sessionStorage.getItem('role');\r\n }\r\n\r\n getDispute() {\r\n debugger;\r\n this.disputeServ.GetDispute(this.data.id, 0).subscribe((data: any) => {\r\n this.disputetbldata(data);\r\n });\r\n }\r\n onClickReopen(data: any) {\r\n const dialogRef = this.dialog.open(DisputeRequestDialog, {\r\n data: { id: data.id, projectId: this.data.projectId, bomNumber: this.data.bomNumber, bomNumberId: this.data.bomNumberId,wiringTableId:this.data.id, moduleName: this.data.moduleName, Status: this.data.status, displayedColumns: this.displayedColumns, flag: 'exist' },\r\n height: '90%',\r\n width: '85%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getDispute();\r\n\r\n });\r\n }\r\n onClickCloseStatus(data: any) {\r\n var userId = sessionStorage.getItem('userId');\r\n\r\n this.disputeSave.id = data.id,\r\n this.disputeSave.wiringTableId = data.wiringTableId;\r\n this.disputeSave.remarks = \"\";\r\n this.disputeSave.resolutionRemarks = \"\";\r\n this.disputeSave.status = 'closed';\r\n this.disputeSave.createdBy= Number(userId);\r\n this.disputeServ.saveDispute(this.disputeSave).subscribe({\r\n next: (val: any) => {\r\n this.projectServ.snackBarLoader('Dispute ' + this.disputeSave.status + ' Successfully', 'Done', '1000', 'red-snackbar')\r\n //this.dialogRef.close(true);\r\n this.getDispute();\r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n }\r\n });\r\n //this.dialogRef.close();\r\n this.getDispute();\r\n }\r\n onRaiseDispute() {\r\n debugger;\r\n const dialogRef = this.dialog.open(DisputeRequestDialog, {\r\n data: { id: this.data.id, projectId: this.data.projectId, bomNumber: this.data.bomNumber, bomNumberId: this.data.bomNumberId, moduleName: this.data.moduleName, Status: this.data.status, displayedColumns: this.displayedColumns, flag: 'new' },\r\n height: '78%',\r\n width: '75%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n debugger;\r\n this.getDispute();\r\n\r\n });\r\n }\r\n downloadFile(id,fileName){\r\n debugger;\r\n var data1= id+'_'+fileName;\r\n this.disputeServ.GetFileByName(data1).subscribe((data2:any)=>{\r\n var content= data2; \r\n console.log(content); \r\n this.SaveDemo(content, fileName);\r\n });\r\n }\r\n base64ToArrayBuffer(base64: any): ArrayBuffer {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n }\r\n SaveDemo(data2: any, data: string){\r\n var bytes= this.base64ToArrayBuffer(data2);\r\n let file = new Blob([bytes], { type: '' });\r\n saveAs(file, data); \r\n }\r\n\r\n disputetbldata(data: any) {\r\n this.disputedataSource = new MatTableDataSource(data);\r\n this.disputedataSource.paginator = this.paginator;\r\n console.log(this.disputedataSource);\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n /* addHyperlink(Data: string) {\r\n \r\n \r\n var retValText = \"\"; \r\n\r\n \r\n retValText=Data.replace(/;/g, '
'); \r\n \r\n \r\n \r\n return retValText;\r\n } */\r\n\r\n\r\n addHyperlink(Data: string) {\r\n \r\n const jsonObject = JSON.parse(Data);\r\n var retValText = \"\"; \r\n \r\n var retVal = \"\";\r\n for(var key in jsonObject) { \r\n retValText=jsonObject[key].Text;//.replace('; ', ';
'); \r\n \r\n }\r\n \r\n return retValText;\r\n }\r\n\r\n logEmail(email: any) {\r\n console.log('Email:', email);\r\n }\r\n shouldShowReopenButton(row: any,action:any): boolean {\r\n if(action==\"Reopen\")\r\n {\r\n if(this.role==\"Project Engineer\" || this.role==\"Project Manager\")\r\n {\r\n if(row.disputeStatus==\"New\" || row.disputeStatus==\"Reopened\" )\r\n {\r\n return false; \r\n } \r\n else \r\n return true; \r\n }\r\n \r\n \r\n\r\n }\r\n else if(action==\"Close\")\r\n {\r\n if(this.role==\"Project Engineer\" || this.role==\"Project Manager\")\r\n return true; \r\n }\r\nreturn false;\r\n }\r\n\r\n\r\n}\r\n\r\nexport interface Attachments{\r\n cClassName:string;\r\n FileName:string;\r\n FileExtension:string;\r\n IsABB:boolean;\r\n AttachmentId:number;\r\n}\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './attachment_ABB.component.html',\r\n styleUrls: ['./create-assign-vendor.component.scss']\r\n})\r\n\r\nexport class ABB_OpenAttachment {\r\n /**\r\n *\r\n */\r\n role:string;\r\n projectStatus:string;\r\n\r\n attachmentUpdate: AttachmentSave={Id:0,ProjectCclassAssemblyDtlId:0,FileName:'',FileExtension:'',UploadedDate:new Date(),\r\n Link:'',CategoryId:0,IsActive:true,IsABB:false,IsVendor:false,Remark:'',ProjectCclassAssemblyInvoicId:null,ProjectCClassAssemblyDisputeId:null,DisputeRaisedCategory:null}\r\n selectedFiles: File[]=[];\r\n attachmentUpdateBulk:AttachmentSave[]=[];\r\n attachmentDataSource!: MatTableDataSource;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n displayedColumnsAttachment: string[] = ['cClassName', 'spacerColumn','FileName'];\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: VendorDialogData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, public dialogRef: MatDialogRef, public dialog: MatDialog,\r\nprivate vendServ: VendorDataService,private projectServ:ProjectService) { }\r\n\r\n\r\n ngOnInit() {\r\n console.log(this.data);\r\n this.loadAttachmentDetails();\r\n console.log(sessionStorage.getItem('role'))\r\n this.role=sessionStorage.getItem('role');\r\n this.projectStatus=this.data.projStatus;\r\n }\r\n loadAttachmentDetails(){\r\n this.projectServ.getABBAttachmentDetails(this.data.id).subscribe((data:any)=>{\r\n this.attachmentDataSource = new MatTableDataSource(data);\r\n this.attachmentDataSource.paginator = this.paginator;\r\n console.log(this.attachmentDataSource);\r\n })\r\n }\r\n onFileSelected(event:Event):void{\r\n this.selectedFiles=[];\r\n const input= event.target as HTMLInputElement; \r\n if(input.files){\r\n Array.from(input.files).forEach(file=>this.selectedFiles.push(file));\r\n console.log(this.selectedFiles);\r\n }\r\n } \r\n uploadFiles(){\r\n if(this.selectedFiles.length==0){\r\n this.vendServ.snackBarLoader('Please select file to upload.','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n else \r\n {\r\n //this.dialogRef.close(this.selectedFiles);\r\n for(let i=0;i{\r\n if(data !=\"\")\r\n {\r\n debugger;\r\n this.vendServ.AddFileDetails(this.selectedFiles,this.attachmentUpdate.ProjectCclassAssemblyDtlId).subscribe((data:any)=>{ \r\n this.selectedFiles=[];\r\n }); \r\n this.vendServ.snackBarLoader('File uploaded successfully.', 'Done', '1000', 'red-snackbar');\r\n this.loadAttachmentDetails();\r\n const inputElements= document.querySelectorAll('input[type=\"file\"]');\r\n inputElements.forEach((element:any)=>{\r\n element.value='';\r\n });\r\n }\r\n /* this.dialogRef.close(); */\r\n });\r\n }\r\n }\r\n }\r\n \r\n } \r\n downloadFile(element){\r\n var data1= element.attachmentId+'_'+element.fileName;\r\n this.vendServ.GetFileByName(data1).subscribe((data2:any)=>{\r\n var content= data2; \r\n console.log(content); \r\n this.SaveDemo(content, element.fileName);\r\n });\r\n }\r\n base64ToArrayBuffer(base64: any): ArrayBuffer {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n }\r\n SaveDemo(data2: any, data: string){\r\n var bytes= this.base64ToArrayBuffer(data2);\r\n let file = new Blob([bytes], { type: '' });\r\n saveAs(file, data); \r\n }\r\n deleteAttachment(ele){\r\n console.log('dataaa',ele)\r\n if (confirm(\"Are you sure you want to delete?\")) {\r\n var data1= ele.attachmentId+'_'+ele.fileName;\r\n this.vendServ.DeleteFileByName(data1).subscribe((data2:any)=>{\r\n var content= data2; \r\n console.log(content);\r\n this.projectServ.deleteAttachment(ele.attachmentId).subscribe(() => {\r\n this.projectServ.snackBarLoader('Deleted Successfully','Done','1000', 'red-snackbar');\r\n this.loadAttachmentDetails();\r\n });\r\n });\r\n }\r\n }\r\n closepopup(){\r\n this.dialogRef.close();\r\n}\r\n}\r\n\r\nexport interface QEDataUpdate{\r\n WiringTableId: number,\r\n VendorId:number\r\n PurchaceOrderNo:string,\r\n PurchaceOrderDate:string, \r\n PurchaceOrderQty:number,\r\n NoOfTls:number,\r\n NoOfCubicles:number,\r\n NoOfdrives:number,\r\n DriveType:string,\r\n DriveRating:string,\r\n createdBy:number,\r\n TargetDate:string,\r\n ApplicationDetails:string,\r\n QualityEngineerId:number\r\n}\r\nexport interface QEDate{\r\n UserId:number;\r\n QEName:string;\r\n Email:string;\r\n Role:string;\r\n}\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './AddQEDetailsConfig.html',\r\n styleUrls: ['./create-assign-vendor.component.scss']\r\n})\r\n\r\nexport class ABB_AssignQE {\r\n\r\n QEDataSource!: MatTableDataSource;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n displayedColumnsQE: string[] = ['select','spacerColumn','qeName','spacerColumn', 'email'];\r\n selectedRow:any=null;\r\n\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n wiringTableUpdate: QEDataUpdate={WiringTableId:0,VendorId:0, PurchaceOrderNo: '', PurchaceOrderDate:'',PurchaceOrderQty:0,NoOfTls: 0,NoOfCubicles:0,NoOfdrives: 0,DriveType:'',DriveRating:'',createdBy:0,TargetDate:'',ApplicationDetails:'',QualityEngineerId:0}\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: VendorDialogData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, public dialogRef: MatDialogRef, public dialog: MatDialog,\r\nprivate vendServ: VendorDataService,private projectServ:ProjectService) { }\r\nngOnInit() {\r\n console.log(this.data);\r\nthis.loadQEDetails();\r\n}\r\nloadQEDetails(){\r\n this.projectServ.getQEDetails().subscribe((data:any)=>{\r\n this.QEDataSource = new MatTableDataSource(data);\r\n this.QEDataSource.paginator = this.paginator;\r\n console.log(this.QEDataSource);\r\n })\r\n}\r\nOnSelectionChange(selectedItem:any){\r\n debugger;\r\n this.selectedRow= selectedItem;\r\n}\r\nAssignQEData(){\r\n debugger;\r\n console.log(this.selectedRow);\r\n if(this.selectedRow==null){\r\n this.projectServ.snackBarLoader('Please select a Quality Engineer.','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n this.wiringTableUpdate.WiringTableId= Number(this.data.id);\r\n this.wiringTableUpdate.QualityEngineerId= this.selectedRow.userId;\r\n this.projectServ.saveQEDetails(this.wiringTableUpdate).subscribe({\r\n next: (val :any) => {\r\n this.projectServ.snackBarLoader('Assigned Successfully to Quality Engineer','Done','1000', 'red-snackbar')\r\n this.dialogRef.close(true);\r\n },\r\n error: (err: any) =>{\r\n this.projectServ.snackBarLoader(err.error,'Done','1000', 'red-snackbar')\r\n }\r\n });\r\n}\r\nclose() {\r\n this.dialogRef.close();\r\n}\r\n}\r\n","\r\n\r\n
\r\n
\r\n

\r\n Vendor Configuration

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Wiring Table Name {{element.moduleName}} Vendor Code {{element.vendorCode}} Vendor Name {{element.vendorName}} BOM Number {{element.bomNumber}} Drive Type {{element.driveType}} Drive Rating {{element.driveRating}} Purchase Order No {{element.poNo}} Purchase Order Date {{element.poDate}} PO Qty {{element.poQty}} No Of TLs {{element.noOfTls}} No Of Cubicles {{element.noOfCubicals}} No Of Drives {{element.noOfDrives}} Target Date {{element.targetDate}} Quality Engineer Name{{element.qeName}} Status {{element.status}} Actions \r\n \r\n \r\n \r\n \r\n
\r\n
Assign Vendor\r\n \r\n Assign QE\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n\r\n \r\n \r\n","
\r\n
\r\n

Edit Vendor Configuration Details

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n BOMNumber\r\n \r\n \r\n
\r\n
\r\n \r\n WiringTable Name\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n Select Vendor\r\n \r\n \r\n {{selectedVendorValue.value}} \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
No results found!
\r\n
\r\n \r\n {{vendor.name}} \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n Purchase Order No\r\n \r\n \r\n
\r\n
\r\n \r\n Purchase Order Date\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n PO Qty\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n No of TLs\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n No Of Drives\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n No of Cubicles\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Drive Type\r\n \r\n \r\n
\r\n
\r\n \r\n Drive Rating\r\n \r\n \r\n {{option}}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Target Date\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Application Details\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n","
\r\n
\r\n

Dispute Request

\r\n
\r\n
\r\n close\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n Raise Dispute\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Dispute Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n (choose only .xlsx,xls,pdf)\r\n

\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Dispute Reopened\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n Raised Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n Resolved Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n (choose only .xlsx,xls,pdf)\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
FileName {{element.fileName}}\r\n get_app\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
","\r\n\r\n
\r\n
\r\n \r\n

\r\n Dispute Listing

\r\n
\r\n
\r\n close\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n BOM Number : {{data.bomNumber}}\r\n
\r\n
\r\n Wiring Table Name : {{data.moduleName}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n
#Dispute \r\n {{element.sequenceNo}} \r\n Raised Remarks \r\n \r\n
    \r\n
      \r\n
    1. \r\n {{remarkDetails.disputeReason}}\r\n
      \r\n {{remarkDetails.disputeCreateBy}}
      \r\n {{remarkDetails.disputeCreatedDate}}\r\n
        \r\n
      • \r\n {{fileList.fileName.slice(0, 20)}}\r\n get_app\r\n
      • \r\n
      \r\n
    2. \r\n {{element.disputeClosedBy}}
      \r\n {{element.disputeClosedDate}}\r\n\r\n
    \r\n
\r\n\r\n
Resolved Remarks \r\n
    \r\n
      \r\n
    1. \r\n {{remarkDetails.disputeResolution}}\r\n
      \r\n {{remarkDetails.disputeResolvedBy}}
      \r\n {{remarkDetails.disputeResolveDate}}\r\n
        \r\n
      • \r\n {{fileList.fileName.slice(0, 20)}}\r\n get_app\r\n
      • \r\n
      \r\n
    2. \r\n \r\n
    \r\n
\r\n \r\n \r\n
Status {{element.disputeStatus }} Action \r\n Reopen   \r\n \r\n \r\n Close\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n\r\n\r\n \r\n \r\n","
\r\n
\r\n \r\n

\r\n View/Upload files

\r\n
\r\n
\r\n close\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n (choose only .xlsx,xls,pdf)\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Wiring Table Name {{element.cClassName}}FileName {{element.fileName}}\r\n get_app\r\n close\r\n
\r\n No attachment was found.\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n","
\r\n
\r\n

Select Quality Engineer

\r\n
\r\n
\r\n close\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Select\r\n \r\n \r\n \r\n Name {{element.qeName}}Email {{element.email}}
\r\n
\r\n
\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\n\r\n@Component({\r\n selector: 'app-dasboard',\r\n templateUrl: './dasboard.component.html',\r\n styleUrls: ['./dasboard.component.scss']\r\n})\r\nexport class DasboardComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n

Dashboard

\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import {\r\n Component,\r\n ViewChild\r\n \r\n} from '@angular/core';\r\n\r\nimport { ChartComponent } from \"ng-apexcharts\";\r\nimport {\r\n ApexNonAxisChartSeries,\r\n ApexResponsive,\r\n ApexChart,\r\n ApexTitleSubtitle\r\n} from \"ng-apexcharts\";\r\nexport type ChartOptions = {\r\n series: ApexNonAxisChartSeries;\r\n chart: ApexChart;\r\n responsive: ApexResponsive[];\r\n labels: any;\r\n title: ApexTitleSubtitle;\r\n colors: any;\r\n};\r\n\r\n@Component({\r\n selector: 'app-middle-widgets-right',\r\n templateUrl: './middle-widgets-right.component.html',\r\n styleUrls: ['./middle-widgets-right.component.scss']\r\n})\r\nexport class AppMiddleWidgetsRightComponent {\r\n @ViewChild(\"chart\") chart: ChartComponent;\r\n public chartOptions: Partial;\r\n\r\n constructor() {\r\n this.chartOptions = {\r\n series: [30,70],\r\n chart: {\r\n width: 380,\r\n type: \"pie\"\r\n },\r\n \r\n labels: [\"WIP\", \"Completed\"],\r\n colors: ['#A5A5A5', '#6B6B6B'], // Define your desired colors here\r\n \r\n \r\n responsive: [\r\n {\r\n breakpoint: 480,\r\n options: {\r\n chart: {\r\n width: 200\r\n },\r\n legend: {\r\n position: \"bottom\"\r\n }\r\n }\r\n }\r\n ],\r\n title: {\r\n text: \"Favourite Movie Type\"\r\n },\r\n \r\n };\r\n }\r\n}\r\n","\r\n
\r\n
Progress
\r\n \r\n
\r\n","import { Component, ViewChild } from \"@angular/core\";\r\n\r\nimport {\r\n ChartComponent,\r\n ApexAxisChartSeries,\r\n ApexChart,\r\n ApexXAxis,\r\n ApexTitleSubtitle\r\n} from \"ng-apexcharts\";\r\n\r\nexport type ChartOptions = {\r\n series: ApexAxisChartSeries;\r\n chart: ApexChart;\r\n xaxis: ApexXAxis;\r\n title: ApexTitleSubtitle;\r\n colors: any;\r\n \r\n};\r\n\r\n@Component({\r\n selector: 'app-middle-widgets',\r\n templateUrl: './middle-widgets.component.html',\r\n styleUrls: ['./middle-widgets.component.scss']\r\n})\r\nexport class MiddleWidgetsComponent {\r\n @ViewChild(\"chart\") chart: ChartComponent;\r\n public chartOptions: Partial;\r\n\r\n constructor() {\r\n this.chartOptions = {\r\n \r\n series: [\r\n {\r\n name: \"Completed\",\r\n data: [10, 15, 25, 5, 7, 8]\r\n }\r\n ],\r\n chart: {\r\n height: 350,\r\n type: \"bar\"\r\n \r\n },\r\n title: {\r\n text: \"Completed Project\"\r\n },\r\n xaxis: {\r\n categories: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\"]\r\n },\r\n colors: ['#6B6B6B', '#6B6B6B'],\r\n };\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n
","import { Component } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-top-widgets',\r\n templateUrl: './top-widgets.component.html',\r\n styleUrls: ['./top-widgets.component.scss']\r\n})\r\nexport class TopWidgetsComponent {\r\n \r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n dashboard\r\n
\r\n
\r\n
100
\r\n
Total Projects
\r\n
\r\n
\r\n
\r\n
\r\n hourglass_empty\r\n
\r\n
\r\n
30
\r\n
WIP
\r\n
\r\n
\r\n
\r\n
\r\n check_circle\r\n
\r\n
\r\n
70
\r\n
Completed
\r\n
\r\n
\r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loading-component',\r\n templateUrl: './loading-component.component.html',\r\n styleUrls: ['./loading-component.component.scss']\r\n})\r\nexport class LoadingComponentComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","","import { Directive, ElementRef, HostListener, Input, Renderer2, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appMaterialElevation]'\r\n})\r\nexport class MaterialElevationDirective implements OnChanges {\r\n\r\n @Input()\r\n defaultElevation = 2;\r\n\r\n @Input()\r\n raisedElevation = 8;\r\n\r\n constructor(\r\n private element: ElementRef,\r\n private renderer: Renderer2\r\n ) {\r\n this.setElevation(this.defaultElevation);\r\n }\r\n\r\n ngOnChanges(_changes: SimpleChanges) {\r\n this.setElevation(this.defaultElevation);\r\n }\r\n\r\n @HostListener('mouseenter')\r\n onMouseEnter() {\r\n this.setElevation(this.raisedElevation);\r\n }\r\n\r\n @HostListener('mouseleave')\r\n onMouseLeave() {\r\n this.setElevation(this.defaultElevation);\r\n }\r\n\r\n setElevation(amount: number) {\r\n // remove all elevation classes\r\n const classesToRemove = Array.from((this.element.nativeElement).classList).filter(c => c.startsWith('mat-elevation-z'));\r\n classesToRemove.forEach((c) => {\r\n this.renderer.removeClass(this.element.nativeElement, c);\r\n });\r\n\r\n // add the given elevation class\r\n const newClass = `mat-elevation-z${amount}`;\r\n this.renderer.addClass(this.element.nativeElement, newClass);\r\n }\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { BOMMST, DialogData, WiringTableMST } from '../ProjectDetails_ABB/AddvendorConfigDialog';\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './AddMaterialTypeDialog.html',\r\n styleUrls: ['./material.component.scss']\r\n})\r\n\r\nexport class AddMaterialTypeDialog {\r\n /**\r\n *\r\n */\r\n addMaterialTypeForm: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n materialTypeSave: MaterialType = { id: 0, materialType: '', materialDisplayName: '', category: '', isActive: true, createdBy: 0, createdDate: new Date(), updatedBy: 0, updatedDate: new Date() }\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder, private masterServ: MasterService, public dialogRef: MatDialogRef, public _snackbar: MatSnackBar) { }\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n\r\n ngOnInit() {\r\n this.addMaterialTypeForm = this.formBuilder.group({\r\n MaterialType: [null, Validators.required],\r\n MaterialDisplayName: [null, Validators.required],\r\n Category: [null, Validators.required],\r\n active: [true]\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n onClear() {\r\n this.addMaterialTypeForm.controls['MaterialType'].setValue('');\r\n this.addMaterialTypeForm.controls['MaterialDisplayName'].setValue('');\r\n this.addMaterialTypeForm.controls['Category'].setValue('');\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n onsubmit() {\r\n if (!this.addMaterialTypeForm.value.MaterialType) {\r\n this.masterServ.snackBarLoader('Please enter Material Type', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.addMaterialTypeForm.value.MaterialDisplayName) {\r\n this.masterServ.snackBarLoader('Please enter Material Display Name', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.addMaterialTypeForm.value.Category) {\r\n this.masterServ.snackBarLoader('Please enter Category', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.addMaterialTypeForm.valid) {\r\n var userId = sessionStorage.getItem('userId');\r\n this.materialTypeSave.materialType = this.addMaterialTypeForm.get('MaterialType').value;\r\n this.materialTypeSave.materialDisplayName = this.addMaterialTypeForm.get('MaterialDisplayName').value;\r\n this.materialTypeSave.category = this.addMaterialTypeForm.get('Category').value;\r\n\r\n this.materialTypeSave.isActive = this.addMaterialTypeForm.get('active').value;\r\n this.materialTypeSave.createdBy = Number(userId);\r\n this.materialTypeSave.createdDate = new Date();\r\n\r\n\r\n this.masterServ.addMaterialType(this.materialTypeSave).subscribe({\r\n next: (val: any) => {\r\n if(val == 'Created')\r\n {\r\n this._snackbar.open('Material Type created successfully', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n }\r\n else\r\n {\r\n this.masterServ.snackBarLoader('Material Type already exists.Please retry with different Material type Name.', 'Done', '1000', 'red-snackbar')\r\n }\r\n this.dialogRef.close();\r\n },\r\n error: (err: any) => {\r\n this.masterServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n }\r\n });\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { MaterialType } from './material.component';\r\nimport { MasterService } from '../Services/master.service';\r\n\r\nexport function alphanumericValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n // Regex to check for at least one alphabet, one number, and one character\r\n const regex = /^(?=.*[A-Za-z])(?=.*\\d)(?=.*[^\\w\\s]).+$/;\r\n\r\n if (value && !regex.test(value)) {\r\n return { alphanumeric: true };\r\n }\r\n return null; // return null if validation passes\r\n };\r\n}\r\n\r\n\r\n\r\nexport function containsAlphabetAndNumberValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n\r\n // Regex to check for at least one alphabet and one number\r\n const hasAlphabet = /[A-Za-z]/.test(value); // Checks for at least one alphabet\r\n const hasNumber = /\\d/.test(value); // Checks for at least one number\r\n\r\n // Return an error if no alphabet or no number is found\r\n if (!hasAlphabet) {\r\n return { containsAlphabet: true };\r\n }\r\n\r\n if (!hasNumber) {\r\n return { containsNumber: true };\r\n }\r\n\r\n return null; // Valid if both conditions are met\r\n };\r\n}","
\r\n
\r\n

Add Material Type

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Material Type\r\n \r\n \r\n
\r\n
\r\n \r\n Material Display Name\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n \r\n Category\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n Active\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { BOMMST, DialogData, WiringTableMST } from '../ProjectDetails_ABB/AddvendorConfigDialog';\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './AddUOMDialog.html',\r\n styleUrls: ['./material.component.scss']\r\n})\r\n\r\nexport class AddUOMDialog {\r\n /**\r\n *\r\n */\r\n addUOMForm: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n uomSave: UOM = { id: 0, uomShort: '', uomLong: '', isActive: true, createdBy: 0, createdDate: new Date(), updatedBy: 0, updatedDate: new Date() }\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder, private masterServ: MasterService, public dialogRef: MatDialogRef, public _snackbar: MatSnackBar) { }\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n\r\n ngOnInit() {\r\n this.addUOMForm = this.formBuilder.group({\r\n uomShort: [null, Validators.required],\r\n uomLong: [null, Validators.required],\r\n active: [true]\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n onClear() {\r\n this.addUOMForm.controls['uomShort'].setValue('');\r\n this.addUOMForm.controls['uomLong'].setValue('');\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n onsubmit() {\r\n if (!this.addUOMForm.value.uomShort) {\r\n this.masterServ.snackBarLoader('Please enter Uom Short', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.addUOMForm.value.uomLong) {\r\n this.masterServ.snackBarLoader('Please enter UOM Long', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.addUOMForm.valid) {\r\n var userId = sessionStorage.getItem('userId');\r\n this.uomSave.uomShort = this.addUOMForm.get('uomShort').value;\r\n this.uomSave.uomLong = this.addUOMForm.get('uomLong').value;\r\n\r\n this.uomSave.isActive = this.addUOMForm.get('active').value;\r\n this.uomSave.createdBy = Number(userId);\r\n this.uomSave.createdDate = new Date();\r\n\r\n\r\n this.masterServ.adduom(this.uomSave).subscribe({\r\n next: (val: any) => {\r\n if(val == 'Created')\r\n {\r\n this._snackbar.open('UOM created successfully', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n }\r\n else\r\n {\r\n this.masterServ.snackBarLoader('UOM already exists.', 'Done', '1000', 'red-snackbar')\r\n }\r\n this.dialogRef.close();\r\n },\r\n error: (err: any) => {\r\n this.masterServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n }\r\n });\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { MaterialType, UOM } from './material.component';\r\nimport { MasterService } from '../Services/master.service';\r\n\r\nexport function alphanumericValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n // Regex to check for at least one alphabet, one number, and one character\r\n const regex = /^(?=.*[A-Za-z])(?=.*\\d)(?=.*[^\\w\\s]).+$/;\r\n\r\n if (value && !regex.test(value)) {\r\n return { alphanumeric: true };\r\n }\r\n return null; // return null if validation passes\r\n };\r\n}\r\n\r\n\r\n\r\nexport function containsAlphabetAndNumberValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n\r\n // Regex to check for at least one alphabet and one number\r\n const hasAlphabet = /[A-Za-z]/.test(value); // Checks for at least one alphabet\r\n const hasNumber = /\\d/.test(value); // Checks for at least one number\r\n\r\n // Return an error if no alphabet or no number is found\r\n if (!hasAlphabet) {\r\n return { containsAlphabet: true };\r\n }\r\n\r\n if (!hasNumber) {\r\n return { containsNumber: true };\r\n }\r\n\r\n return null; // Valid if both conditions are met\r\n };\r\n}","
\r\n
\r\n

Add UOM

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n UOM Short\r\n \r\n \r\n
\r\n
\r\n \r\n UOM Long\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n Active\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { BOMMST, DialogData, WiringTableMST } from '../ProjectDetails_ABB/AddvendorConfigDialog';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './EditMaterialTypeDialog.html',\r\n styleUrls: ['./material.component.scss']\r\n})\r\n\r\nexport class EditMaterialTypeDialog {\r\n /**\r\n *\r\n */\r\n editMaterialTypeForm: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n materialTypeSave: MaterialType = { id: 0, materialType: '', materialDisplayName: '', category: '', isActive: true, createdBy: 0, createdDate: new Date(), updatedBy: 0, updatedDate: new Date() }\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: MaterialType, private formBuilder: FormBuilder, private masterServ: MasterService, public dialogRef: MatDialogRef, public _snackbar: MatSnackBar) { }\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n\r\n ngOnInit() {\r\n this.editMaterialTypeForm = this.formBuilder.group({\r\n MaterialType: [this.data.materialType, Validators.required],\r\n MaterialDisplayName: [this.data.materialDisplayName, Validators.required],\r\n Category: [this.data.category, Validators.required],\r\n active: [this.data.isActive]\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n onClear() {\r\n this.editMaterialTypeForm.controls['MaterialDisplayName'].setValue('');\r\n this.editMaterialTypeForm.controls['active'].setValue(false);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n onsubmit() {\r\n if (!this.editMaterialTypeForm.value.MaterialType) {\r\n this.masterServ.snackBarLoader('Please enter Material Type', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.editMaterialTypeForm.value.MaterialDisplayName) {\r\n this.masterServ.snackBarLoader('Please enter Material Display Name', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.editMaterialTypeForm.value.Category) {\r\n this.masterServ.snackBarLoader('Please enter Category', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.editMaterialTypeForm.valid) {\r\n var userId = sessionStorage.getItem('userId');\r\n this.materialTypeSave.id = this.data.id;\r\n this.materialTypeSave.materialType = this.editMaterialTypeForm.get('MaterialType').value;\r\n this.materialTypeSave.materialDisplayName = this.editMaterialTypeForm.get('MaterialDisplayName').value;\r\n this.materialTypeSave.category = this.editMaterialTypeForm.get('Category').value;\r\n\r\n this.materialTypeSave.isActive = this.editMaterialTypeForm.get('active').value;\r\n this.materialTypeSave.updatedBy = Number(userId);\r\n this.materialTypeSave.updatedDate = new Date();\r\n\r\n\r\n this.masterServ.editMaterialType(this.materialTypeSave).subscribe({\r\n next: (val: any) => {\r\n this._snackbar.open('Material Type updated successfully', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n this.dialogRef.close();\r\n },\r\n error: (err: any) => {\r\n this.masterServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n }\r\n });\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { MaterialType } from './material.component';\r\nimport { MasterService } from '../Services/master.service';\r\n\r\nexport function alphanumericValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n // Regex to check for at least one alphabet, one number, and one character\r\n const regex = /^(?=.*[A-Za-z])(?=.*\\d)(?=.*[^\\w\\s]).+$/;\r\n\r\n if (value && !regex.test(value)) {\r\n return { alphanumeric: true };\r\n }\r\n return null; // return null if validation passes\r\n };\r\n}\r\n\r\n\r\n\r\nexport function containsAlphabetAndNumberValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n\r\n // Regex to check for at least one alphabet and one number\r\n const hasAlphabet = /[A-Za-z]/.test(value); // Checks for at least one alphabet\r\n const hasNumber = /\\d/.test(value); // Checks for at least one number\r\n\r\n // Return an error if no alphabet or no number is found\r\n if (!hasAlphabet) {\r\n return { containsAlphabet: true };\r\n }\r\n\r\n if (!hasNumber) {\r\n return { containsNumber: true };\r\n }\r\n\r\n return null; // Valid if both conditions are met\r\n };\r\n}","
\r\n
\r\n

Edit Material Type

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Material Type\r\n \r\n \r\n
\r\n
\r\n \r\n Material Display Name\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n \r\n Category\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n Active\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { BOMMST, DialogData, WiringTableMST } from '../ProjectDetails_ABB/AddvendorConfigDialog';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './EditUOMDialog.html',\r\n styleUrls: ['./material.component.scss']\r\n})\r\n\r\nexport class EditUOMDialog {\r\n /**\r\n *\r\n */\r\n editUOMForm: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n uomSave: UOM = { id: 0, uomShort: '', uomLong: '', isActive: true, createdBy: 0, createdDate: new Date(), updatedBy: 0, updatedDate: new Date() }\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: UOM, private formBuilder: FormBuilder, private masterServ: MasterService, public dialogRef: MatDialogRef, public _snackbar: MatSnackBar) { }\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n\r\n ngOnInit() {\r\n this.editUOMForm = this.formBuilder.group({\r\n uomShort: [this.data.uomShort, Validators.required],\r\n uomLong: [this.data.uomLong, Validators.required],\r\n active: [this.data.isActive]\r\n });\r\n\r\n\r\n }\r\n onClear() {\r\n this.editUOMForm.controls['active'].setValue(false);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n onsubmit() {\r\n if (!this.editUOMForm.value.uomShort) {\r\n this.masterServ.snackBarLoader('Please enter UOM Short', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.editUOMForm.value.uomLong) {\r\n this.masterServ.snackBarLoader('Please enter UOM Long', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.editUOMForm.valid) {\r\n var userId = sessionStorage.getItem('userId');\r\n this.uomSave.id = this.data.id;\r\n this.uomSave.uomShort = this.editUOMForm.get('uomShort').value;\r\n this.uomSave.uomLong = this.editUOMForm.get('uomLong').value;\r\n\r\n this.uomSave.isActive = this.editUOMForm.get('active').value;\r\n this.uomSave.updatedBy = Number(userId);\r\n this.uomSave.updatedDate = new Date();\r\n\r\n\r\n this.masterServ.edituom(this.uomSave).subscribe({\r\n next: (val: any) => {\r\n this._snackbar.open('UOM updated successfully', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n this.dialogRef.close();\r\n },\r\n error: (err: any) => {\r\n this.masterServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n }\r\n });\r\n }\r\n\r\n\r\n }\r\n}\r\n\r\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { MaterialType, UOM } from './material.component';\r\nimport { MasterService } from '../Services/master.service';\r\n\r\nexport function alphanumericValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n // Regex to check for at least one alphabet, one number, and one character\r\n const regex = /^(?=.*[A-Za-z])(?=.*\\d)(?=.*[^\\w\\s]).+$/;\r\n\r\n if (value && !regex.test(value)) {\r\n return { alphanumeric: true };\r\n }\r\n return null; // return null if validation passes\r\n };\r\n}\r\n\r\n\r\n\r\nexport function containsAlphabetAndNumberValidator(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n\r\n // Regex to check for at least one alphabet and one number\r\n const hasAlphabet = /[A-Za-z]/.test(value); // Checks for at least one alphabet\r\n const hasNumber = /\\d/.test(value); // Checks for at least one number\r\n\r\n // Return an error if no alphabet or no number is found\r\n if (!hasAlphabet) {\r\n return { containsAlphabet: true };\r\n }\r\n\r\n if (!hasNumber) {\r\n return { containsNumber: true };\r\n }\r\n\r\n return null; // Valid if both conditions are met\r\n };\r\n}","
\r\n
\r\n

Edit UOM

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n UOM Short\r\n \r\n \r\n
\r\n
\r\n \r\n UOM Long\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n Active\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { EditMaterialDialog, MaterialDialogData, MaterialType } from './material.component';\r\nimport { MasterService } from '../Services/master.service';\r\nimport { AddMaterialTypeDialog } from './AddMaterialTypeDialog';\r\nimport { EditMaterialTypeDialog } from './EditMaterialTypeDialog';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-materialType-dialog',\r\n templateUrl: './MaterialTypeListingDialog.html',\r\n styleUrls: ['./material.component.scss']\r\n})\r\nexport class MaterialTypeListingDialog implements OnInit {\r\n role:string;\r\n searchText :string='';\r\n TableDataIndex: number = 0;\r\n displayedColumns: string[] = ['MaterialType','MaterialDisplayName', 'Category', 'IsActive','EditMaterialType'];\r\n materialTypeDataSource!: MatTableDataSource;\r\n rows = [];\r\n\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: MaterialDialogData, private formBuilder: FormBuilder, public dialog: MatDialog, private apisrv: ApiservicesService, public dialogRef: MatDialogRef,private masterServ:MasterService) { }\r\n\r\n ngOnInit(): void {\r\n this.materialTypetbldata();\r\n\r\n console.log(sessionStorage.getItem('role'))\r\n this.role=sessionStorage.getItem('role');\r\n }\r\n\r\n materialTypetbldata() {\r\n var vendorId = sessionStorage.getItem('vendorId');\r\n this.masterServ.getMaterialTypeList().subscribe( (matTypeList: any) => {\r\n this.materialTypeDataSource = new MatTableDataSource(matTypeList);\r\n this.materialTypeDataSource.paginator = this.paginator;\r\n });\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.materialTypeDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n onclickAddType()\r\n {\r\n const dialogRef = this.dialog.open(AddMaterialTypeDialog, {\r\n data: {},\r\n height: '420px',\r\n width: '600px'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.materialTypetbldata();\r\n this.searchText ='';\r\n });\r\n }\r\n onClose() {\r\n this.dialogRef.close();\r\n }\r\n onEditMaterialType(data:any)\r\n {\r\n const dialogRef = this.dialog.open(EditMaterialTypeDialog, {\r\n data: {\r\n id: data.id, materialType: data.materialType, materialDisplayName: data.materialDisplayName, category: data.category, isActive:data.isActive \r\n },\r\n height: '420px',\r\n width: '650px'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.materialTypetbldata();\r\n this.searchText ='';\r\n\r\n });\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n

Material Type Listing

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n Search \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Material Type {{element.materialType}} Material Display Name {{element.materialDisplayName}} Category {{element.category}} Active Status {{element.isActive == true?'Active':'Inactive'}} Edit\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { EditMaterialDialog, MaterialDialogData, MaterialType, UOM } from './material.component';\r\nimport { MasterService } from '../Services/master.service';\r\nimport { AddMaterialTypeDialog } from './AddMaterialTypeDialog';\r\nimport { EditMaterialTypeDialog } from './EditMaterialTypeDialog';\r\nimport { AddUOMDialog } from './AddUOMDialog';\r\nimport { EditUOMDialog } from './EditUOMDialog';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-uom-dialog',\r\n templateUrl: './UOMListingDialog.html',\r\n styleUrls: ['./material.component.scss']\r\n})\r\nexport class UOMListingDialog implements OnInit {\r\n role:string;\r\n searchText :string='';\r\n TableDataIndex: number = 0;\r\n displayedColumns: string[] = ['uomShort','uomLong', 'isActive','EditUom'];\r\n uomDataSource!: MatTableDataSource;\r\n rows = [];\r\n\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: UOM, private formBuilder: FormBuilder, public dialog: MatDialog, private apisrv: ApiservicesService, public dialogRef: MatDialogRef,private masterServ:MasterService) { }\r\n\r\n ngOnInit(): void {\r\n this.UOMtbldata();\r\n\r\n console.log(sessionStorage.getItem('role'))\r\n this.role=sessionStorage.getItem('role');\r\n }\r\n\r\n UOMtbldata() {\r\n var vendorId = sessionStorage.getItem('vendorId');\r\n this.masterServ.GetMaterialUOMList().subscribe( (matTypeList: any) => {\r\n this.uomDataSource = new MatTableDataSource(matTypeList);\r\n this.uomDataSource.paginator = this.paginator;\r\n });\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.uomDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n onclickAddType()\r\n {\r\n const dialogRef = this.dialog.open(AddUOMDialog, {\r\n data: {},\r\n height: '400px',\r\n width: '600px'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.UOMtbldata();\r\n this.searchText ='';\r\n });\r\n }\r\n onClose() {\r\n this.dialogRef.close();\r\n }\r\n onEditUOM(data:any)\r\n {\r\n const dialogRef = this.dialog.open(EditUOMDialog, {\r\n data: {\r\n id: data.id, uomShort: data.uomShort, uomLong: data.uomLong, isActive:data.isActive \r\n },\r\n height: '400px',\r\n width: '600px'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.UOMtbldata();\r\n this.searchText ='';\r\n\r\n });\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n

UOM Listing

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n Search \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
UOM Short {{element.uomShort}} UOM Long {{element.uomLong}} Active Status {{element.isActive == true?'Active':'Inactive'}} Edit\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, OnInit, Inject, ViewChild } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\n/* import { ApiservicesService } from '../Services/apiservices.service'; */\r\nimport { MasterService } from '../Services/master.service';\r\nimport * as XLSX from 'xlsx';\r\nimport * as saveAs from 'file-saver';\r\nimport * as ExcelJS from \"exceljs/dist/exceljs.min.js\";\r\nimport { MaterialTypeListingDialog } from './MaterialTypeListingDialog';\r\nimport { UOMListingDialog } from './UOMListingDialog';\r\n\r\nexport interface MaterialDialogData {\r\n id: number;\r\n articaleNumber: string;\r\n materialName: string;\r\n uom: string;\r\n materialTypeId: number;\r\n //quantity: number;\r\n isActive: boolean;\r\n unitPrice: string;\r\n createdBy: number;\r\n createdDate: Date;\r\n updatedBy: number;\r\n updatedDate: Date;\r\n}\r\n\r\nexport interface excelMaterialSave {\r\n id: number;\r\n ArticleNo: string;\r\n ArticleDescription: string;\r\n UOMshort:string[]\r\n UOM: string;\r\n MaterialType: string[];\r\n materialTypeId: number;\r\n UnitPrice: string;\r\n}\r\nexport interface excelBulkMaterialSave {\r\n id: number;\r\n ArticaleNumber: string;\r\n MaterialName: string;\r\n UOMshort:string[]\r\n UOM: string;\r\n MaterialType: string[];\r\n materialTypeId: number;\r\n UnitPrice: string;\r\n createdBy: number;\r\n createdDate: Date;\r\n updatedBy: number;\r\n updatedDate: Date;\r\n selectedRadioValue:string\r\n}\r\n\r\n@Component({\r\n selector: 'app-material',\r\n templateUrl: './material.component.html',\r\n styleUrls: ['./material.component.scss']\r\n})\r\nexport class MaterialComponent implements OnInit {\r\n\r\n materialdataSource!: MatTableDataSource;\r\n excelmaterialdataSource!: MatTableDataSource;\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n arrayBuffer: any;\r\n filelist: any;\r\n filename: string = '';\r\n searchText: string = '';\r\n materialModelBulkUpload: excelMaterialSave = {} as excelMaterialSave;\r\n materialTypeList: MaterialType[];\r\n materialTypeName: string[] = [];\r\n tempmaterialTypeName: string[] = [];\r\n uomShortName:string[]=[];\r\n displayUpload:boolean=false;\r\n selectedradioButton:string='1';\r\n\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n excelSave2: excelMaterialSave[] = [];\r\n excelSave: excelMaterialSave = { id: 0, ArticleNo: '', ArticleDescription: '',UOMshort:[], UOM: '', MaterialType: [], materialTypeId: 0, UnitPrice: '' }\r\n bulkMaterialDataToSend: excelBulkMaterialSave[] = [];\r\n\r\n constructor(public dialog: MatDialog, private _snackBar: MatSnackBar, private masterServ: MasterService) { }\r\n displayedColumns: string[] = ['ArticleName', 'ArticleDescription', 'UOM', 'MaterialType', 'UnitPrice', 'Status', 'EditMaterial', 'DeleteMaterial'];\r\n\r\n MaterialTableDataIndex: number = 1;\r\n materialData: any;\r\n excelArticleData: any[] = [];\r\n fileUploaded :File;\r\n isFileUploaded :boolean=false;\r\n materialUOMList:UOM[];\r\n\r\n ngOnInit(): void {\r\n this.getMaterialsList();\r\n this.getMaterialTypeList();\r\n this.getMaterialUOMList();\r\n }\r\n getMaterialUOMList()\r\n {\r\n this.masterServ.GetMaterialUOMList().subscribe((uomList: any) => {\r\n debugger;\r\n this.materialUOMList = uomList.filter(x => x.isActive == true);\r\n });\r\n }\r\n getMaterialsList() {\r\n this.masterServ.GetMaterialList().subscribe((res: any) => {\r\n this.materialData = res;\r\n this.materialtbldata(res);\r\n });\r\n }\r\n\r\n public async exportAsExcelFile(json: excelMaterialSave[], excelFileName: string,tempmaterialTypeName:MaterialType[],uomList:UOM[]) {\r\n\r\n const workbook = new ExcelJS.Workbook();\r\n const sheet = workbook.addWorksheet(\"data\");\r\n const sheet2 = workbook.addWorksheet(\"data2\", { state: 'hidden' });\r\n const sheet3 = workbook.addWorksheet(\"data3\", { state: 'hidden' });\r\n sheet2.status='hide';\r\n sheet.columns = [\r\n { header: \"ArticleNo\", key: \"ArticleNo\" },\r\n { header: \"ArticleDescription\", key: \"ArticleDescription\" },\r\n { header: \"UOM\" },\r\n { header: \"MaterialType\" },\r\n { header: \"UnitPrice\", key: \"UnitPrice\" },\r\n ];\r\n sheet2.columns=[{\r\n header :\"materialType\", key: \"materialType\" },\r\n {header :\"materialDisplayName\", key: \"materialDisplayName\" }]\r\n sheet3.columns=[{\r\n header: \"uomShort\", key: \"uomShort\"}];\r\n let j = 0;\r\n let columnWidth = [30, 50, 20, 40, 20];\r\n sheet.columns.forEach(column => {\r\n const lengths = column.values.map(v => v.toString().length);\r\n //const maxLength = Math.max(...lengths.filter(v => typeof v === 'number'));\r\n const maxLength = columnWidth[j];\r\n j += 1;\r\n column.width = maxLength;\r\n });\r\n for (let i = 0; i < tempmaterialTypeName.length; i++) {\r\n const jsonRow = tempmaterialTypeName[i];\r\n sheet2.addRow(jsonRow);\r\n }\r\n for (let i = 0; i < uomList.length; i++) {\r\n const jsonRow = uomList[i];\r\n sheet3.addRow(jsonRow);\r\n }\r\n debugger;\r\n for (let i = 0; i < json.length; i++) {\r\n const jsonRow = json[i];\r\n sheet.addRow(jsonRow);\r\n \r\n let materialDropDown = 'data2!$A$2:$A$'+(tempmaterialTypeName.length+1);\r\n\r\n let uomDropDown = 'data3!$A$2:$A$'+(uomList.length+1);\r\n /*sheet.getCell(`D${i + 2}`).dataValidation = {\r\n type: \"list\",\r\n formulae: [`\"${jsonDropdown.join(\",\")}\"`]\r\n };*/\r\n sheet.getCell(`D${i + 2}`).dataValidation = {\r\n type: \"list\",\r\n formulae: [materialDropDown]\r\n };\r\n sheet.getCell(`C${i + 2}`).dataValidation = {\r\n type: \"list\",\r\n formulae: [uomDropDown]\r\n };\r\n }\r\n\r\n\r\n const buffer = await workbook.xlsx.writeBuffer();\r\n this.saveAsExcelFile(buffer, excelFileName);\r\n }\r\n private saveAsExcelFile(buffer: any, fileName: string): void {\r\n const EXCEL_TYPE =\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\r\n const EXCEL_EXTENSION = \".xlsx\";\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n saveAs(\r\n data,\r\n fileName + EXCEL_EXTENSION\r\n );\r\n }\r\n generateExcel() {\r\n\r\n this.masterServ.getMaterialTypeList().subscribe((matTypeList: any) => {\r\n debugger;\r\n this.materialTypeList = matTypeList.filter(x => x.isActive == true);\r\n this.materialTypeName = this.materialTypeList.map(a => a.materialType);\r\n this.uomShortName = this.materialUOMList.map(b => b.uomShort);\r\n this.excelSave.UOMshort = this.uomShortName.filter(x => x != \"\");\r\n this.excelSave.MaterialType = this.materialTypeName.filter(x => x != \"\");\r\n this.excelSave.MaterialType = this.excelSave.MaterialType.slice(0, 15);\r\n for (let i = 0; i <= 1000; i++) {\r\n this.excelSave2.push(this.excelSave);\r\n }\r\n this.exportAsExcelFile(this.excelSave2, 'AddMaterialTemplate',this.materialTypeList,this.materialUOMList);\r\n\r\n });\r\n\r\n }\r\n getMaterialTypeList() {\r\n this.masterServ.getMaterialTypeList().subscribe((matTypeList: any) => {\r\n this.materialTypeList = matTypeList.filter(x => x.isActive == true);\r\n });\r\n }\r\n generateExistingGridExcel()\r\n {\r\n this.getAllArticleGridDetails();\r\n \r\n }\r\n radiobuttonclick(event:any)\r\n {\r\n debugger;\r\n this.selectedradioButton = event.value;\r\n this.bulkMaterialDataToSend = [];\r\n }\r\n onCheckboxChange(event:any)\r\n {\r\nthis.displayUpload =!this.displayUpload;\r\nthis.selectedradioButton ='1';\r\n }\r\n getAllArticleGridDetails(){\r\n this.masterServ.GetAllMaterialGridDetails().subscribe((res:any) =>{\r\n debugger;\r\n this.excelmaterialdataSource=new MatTableDataSource(res); \r\n const articleData= this.excelmaterialdataSource.filteredData.map(row=>[row.articaleNumber,row.materialName, row.uom, row.materialTypeId, row.unitPrice]);\r\n const dataReading=[\r\n [\"Article No\",\"ArticleDescription\",\"UOM\",\"MaterialType\",\"Unit Price\"],\r\n ...articleData\r\n ];\r\n const workSheet_Article: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(dataReading);\r\n workSheet_Article['!cols']=[{width:30},{width:30},{width:40},{width:40},{width:10},{width:10},{width:15},{width:20}];\r\n\r\n const combined_wb= XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(combined_wb, workSheet_Article, 'Article');\r\n XLSX.writeFile(combined_wb,'MaterialTemplate.xlsx');\r\n });\r\n }\r\n onUploadMaterials(selectedRadioValue:string,event:any)\r\n {\r\n debugger;\r\n\r\n this.bulkMaterialDataToSend =(this.isFileUploaded)?this.bulkMaterialDataToSend:[];\r\n if(this.bulkMaterialDataToSend.length == 0)\r\n {\r\n this.masterServ.snackBarLoader(\"Please upload file with valid data\", 'Done', '1000', 'red-snackbar');\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n return;\r\n }\r\n else\r\n {\r\n\r\n this.masterServ.AddUploadMaterial(this.bulkMaterialDataToSend).subscribe((res: any) => {\r\n if(!isNaN(res)){\r\n if (res != '0')\r\n {\r\n var Message=\"\";\r\n if(selectedRadioValue=='1')\r\n Message=res + \" Records Inserted successfully\"\r\n else\r\n Message=res + \" Records updated successfully\"\r\n \r\n this._snackBar.open(Message , 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n }\r\n else{\r\n this.masterServ.snackBarLoader(\"Same unit price Materials already exists\", 'Done', '1000', 'red-snackbar');\r\n }\r\n \r\n }\r\n else\r\n {\r\n this.masterServ.snackBarLoader(res, 'Done', '1000', 'red-snackbar');\r\n }\r\n \r\n \r\n\r\n this.getMaterialsList();\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n });\r\n \r\n \r\n}\r\n\r\n\r\n };\r\n\r\n onFileChange(event: any) {\r\n debugger;\r\n this.excelArticleData = [];\r\n this.isFileUploaded = true;\r\n const target: DataTransfer = (event.target);\r\n const file: File = event.target.files[0];\r\n\r\n if (file) {\r\n const fileSizeInBytes = file.size;\r\n const fileSizeInKB = fileSizeInBytes / 1024;\r\n const fileSizeInMB = fileSizeInKB / 1024;\r\n console.log(fileSizeInMB);\r\n if (fileSizeInMB > 1) {\r\n this.masterServ.snackBarLoader(\"Uploaded file size exceeded\", 'Done', '1000', 'red-snackbar');\r\n const inputElements = document.querySelectorAll('input[type=\"file\"]');\r\n inputElements.forEach((element: any) => {\r\n element.value = '';\r\n })\r\n }\r\n }\r\n this.fileUploaded =file;\r\n if(this.fileUploaded.name.split('.')[this.fileUploaded.name.split('.').length-1]!='xlsx' && this.fileUploaded.name.split('.')[this.fileUploaded.name.split('.').length-1]!= 'xls' && this.fileUploaded.name.split('.')[this.fileUploaded.name.split('.').length-1]!= 'csv'){\r\n this.masterServ.snackBarLoader('Only .xlsx,.xls or.csv files are allowed', 'Done', '1000', 'red-snackbar');\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n return;\r\n}\r\n if (target.files.length !== 1) throw new Error('Cannot use multiple files');\r\n const reader: FileReader = new FileReader();\r\n\r\n reader.onload = (e: any) => {\r\n const binaryStr: string = e.target.result;\r\n const workbook: XLSX.WorkBook = XLSX.read(binaryStr, { type: 'binary' });\r\n\r\n const firstSheetName: string = workbook.SheetNames[0];\r\n const worksheet: XLSX.WorkSheet = workbook.Sheets[firstSheetName];\r\n\r\n this.excelArticleData = XLSX.utils.sheet_to_json(worksheet, { header: 1 });\r\n this.excelArticleData.shift();\r\n this.bulkMaterialDataToSend = [];\r\n debugger;\r\n for (let b = 0; b < this.excelArticleData.length; b++) {\r\n if ((this.excelArticleData[b][0] != '')|| this.excelArticleData[b][1].includes('EFC') ) \r\n {\r\n if (!this.excelArticleData[b][1]) {\r\n this.masterServ.snackBarLoader('Please fill Article description for ArticleNo : ' + this.excelArticleData[b][0], 'Done', '1000', 'red-snackbar');\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n return;\r\n }\r\n if (!this.excelArticleData[b][1].toString().trim()) {\r\n this.masterServ.snackBarLoader('Please fill Article description for ArticleNo : ' + this.excelArticleData[b][0], 'Done', '1000', 'red-snackbar');\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n return;\r\n }\r\n if (!this.excelArticleData[b][2]) {\r\n this.masterServ.snackBarLoader('Please fill UOM for ArticleNo : ' + this.excelArticleData[b][0], 'Done', '1000', 'red-snackbar');\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n return;\r\n }\r\n\r\n if (!this.excelArticleData[b][2].toString().trim()) {\r\n this.masterServ.snackBarLoader('Please fill UOM for ArticleNo : ' + this.excelArticleData[b][0], 'Done', '1000', 'red-snackbar');\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n return;\r\n }\r\n if((this.materialUOMList.filter(x => x.uomShort == this.excelArticleData[b][2])).length <=0)\r\n {\r\n this.masterServ.snackBarLoader('Please select valid UOM for ArticleNo : ' + this.excelArticleData[b][0], 'Done', '1000', 'red-snackbar');\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n return;\r\n }\r\n if (!this.excelArticleData[b][3]) {\r\n this.masterServ.snackBarLoader('Please select Material Type for Article : ' + this.excelArticleData[b][0], 'Done', '1000', 'red-snackbar');\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n return;\r\n }\r\n if (!this.excelArticleData[b][3].toString().trim()) {\r\n this.masterServ.snackBarLoader('Please select Material Type for Article : ' + this.excelArticleData[b][0], 'Done', '1000', 'red-snackbar');\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n return;\r\n }\r\n if(this.materialTypeList.filter(x => x.materialType == this.excelArticleData[b][3]).length <=0 )\r\n {\r\n this.masterServ.snackBarLoader('Please select valid Material Type for ArticleNo : ' + this.excelArticleData[b][0], 'Done', '1000', 'red-snackbar');\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n return;\r\n }\r\n if (!this.excelArticleData[b][4] && this.excelArticleData[b][4]?.toString() != '0') {\r\n this.masterServ.snackBarLoader('Please fill Unit Price for ArticleNo : ' + this.excelArticleData[b][0], 'Done', '1000', 'red-snackbar');\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n return;\r\n }\r\n if (!this.excelArticleData[b][4].toString().trim() && this.excelArticleData[b][4].toString() != '0') {\r\n this.masterServ.snackBarLoader('Please fill Unit Price for ArticleNo : ' + this.excelArticleData[b][0], 'Done', '1000', 'red-snackbar');\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n return;\r\n }\r\n if (this.excelArticleData[b][4] < 0 || isNaN(this.excelArticleData[b][4])) {\r\n this.masterServ.snackBarLoader('Please enter valid Unit Price for ArticleNo : ' + this.excelArticleData[b][0], 'Done', '1000', 'red-snackbar');\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n return;\r\n }\r\n this.materialModelBulkUpload.ArticleNo = this.excelArticleData[b][0];\r\n this.materialModelBulkUpload.ArticleDescription = this.excelArticleData[b][1];\r\n this.materialModelBulkUpload.UOM = this.excelArticleData[b][2];\r\n this.materialModelBulkUpload.MaterialType = this.excelArticleData[b][3];\r\n this.materialModelBulkUpload.materialTypeId = this.materialTypeList.find(x => x.materialType == this.excelArticleData[b][3]).id,\r\n this.materialModelBulkUpload.UnitPrice = this.excelArticleData[b][4].toString().trim();\r\n\r\n this.bulkMaterialDataToSend.push({\r\n id: 0,\r\n ArticaleNumber: this.materialModelBulkUpload.ArticleNo.toString(),\r\n MaterialName: this.materialModelBulkUpload.ArticleDescription,\r\n UOMshort: this.materialModelBulkUpload.UOMshort,\r\n UOM: this.materialModelBulkUpload.UOM,\r\n MaterialType: this.materialModelBulkUpload.MaterialType,\r\n materialTypeId: this.materialModelBulkUpload.materialTypeId,\r\n UnitPrice: this.materialModelBulkUpload.UnitPrice,\r\n createdBy: Number(sessionStorage.getItem('userId')),\r\n createdDate: new Date(), updatedBy: Number(sessionStorage.getItem('userId')),\r\n updatedDate: new Date(),\r\n selectedRadioValue:this.selectedradioButton\r\n });\r\n }\r\n }\r\n\r\n if(this.bulkMaterialDataToSend.length == 0)\r\n {\r\n this.masterServ.snackBarLoader(\"Please Upload Valid file with Data\", 'Done', '1000', 'red-snackbar');\r\n this.filename = '';\r\n this.isFileUploaded =false;\r\n return;\r\n }\r\n }\r\n reader.readAsBinaryString(target.files[0]);\r\n }\r\n addMaterialTypeDialog() {\r\n const dialogRef = this.dialog.open(MaterialTypeListingDialog, {\r\n data: {},\r\n height: '800px',\r\n width: '800px'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getMaterialsList();\r\n this.searchText = '';\r\n\r\n });\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.materialdataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n onDeleteMaterial(data: any) {\r\n if (confirm(\"Are you sure you want to delete the material details: \" + data.articaleNumber)) {\r\n this.masterServ.DeleteMaterial(data).subscribe((res: any) => {\r\n\r\n this.getMaterialsList();\r\n this.searchText = '';\r\n\r\n });\r\n\r\n\r\n }\r\n }\r\n materialtbldata(data: any) {\r\n this.materialdataSource = new MatTableDataSource(data);\r\n this.materialdataSource.paginator = this.paginator;\r\n }\r\n\r\n onAddMaterial() {\r\n //addMaterialDialog\r\n const dialogRef = this.dialog.open(AddMaterialDialog, {\r\n data: {},\r\n height: '650px',\r\n width: '750px'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getMaterialsList();\r\n this.searchText = '';\r\n\r\n });\r\n }\r\n onEditMaterial(data: any) {\r\n debugger\r\n const dialogRef = this.dialog.open(EditMaterialDialog, {\r\n data: {\r\n id: data.id, articaleNumber: data.articaleNo, materialName: data.materialName, uom: data.uom, materialTypeId: data.materialTypeId, isActive: (data.status == 'Active') ? true : false,\r\n //quantity: data.quantity,\r\n unitPrice: data.unitPrice\r\n },\r\n height: '550px',\r\n width: '650px'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getMaterialsList();\r\n this.searchText = '';\r\n\r\n\r\n });\r\n }\r\n}\r\nexport interface MaterialType {\r\n id: number;\r\n materialType: string;\r\n materialDisplayName: string;\r\n category: string;\r\n isActive: boolean;\r\n createdBy: number;\r\n createdDate: Date;\r\n updatedBy: number;\r\n updatedDate: Date;\r\n}\r\nexport interface UOM\r\n{\r\n id:number;\r\n uomShort:string;\r\n uomLong:string;\r\n isActive: boolean;\r\n createdBy: number;\r\n createdDate: Date;\r\n updatedBy: number;\r\n updatedDate: Date;\r\n}\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './addMaterialDialog.html',\r\n styleUrls: ['./material.component.scss']\r\n})\r\n\r\nexport class AddMaterialDialog {\r\n /**\r\n *\r\n */\r\n addMaterialform: FormGroup;\r\n materialTypeList: MaterialType[];\r\n materialUOMList:UOM[];\r\n selectedMaterialTypeId: number;\r\n selectmaterialTypeControl = new FormControl();\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n\r\n addMaterialSave: MaterialDialogData = {\r\n id: 0, articaleNumber: '', materialName: '', materialTypeId: 0, uom: '', unitPrice: '', isActive: true, createdBy: 0, createdDate: new Date(), updatedBy: 0, updatedDate: new Date()\r\n }\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: MaterialDialogData, private masterServ: MasterService, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, public dialogRef: MatDialogRef, public dialog: MatDialog) { }\r\n\r\n displayedColumns: string[] = ['VendorCode', 'VendorName', 'PoNo', 'PoDate', 'ArticleName', 'ArticleDescription', 'UOM', 'DriveType', 'PoQty', 'UnitPrice', 'TotalPrice', 'EditVendor', 'DeleteVendor'];\r\n vendordataSource!: MatTableDataSource;\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n\r\n ngOnInit() {\r\n this.getMaterialType();\r\n this.getUOM();\r\n this.addMaterialform = this.formBuilder.group({\r\n articaleNumber: [null, Validators.required],\r\n materialName: [null, Validators.required],\r\n uom: [null, Validators.required],\r\n selectmaterialTypeControl: [null, Validators.required],\r\n //materialTypeId: [null, [Validators.required,Validators.pattern(this.numberRegex)]],\r\n //PoQty: [null, Validators.required],\r\n unitPrice: [null, [Validators.required, Validators.pattern(this.numberRegex)]],\r\n active: [true]\r\n });\r\n\r\n }\r\n getUOM()\r\n {\r\n this.masterServ.GetMaterialUOMList().subscribe((uomList: any) => {\r\n debugger;\r\n this.materialUOMList = uomList.filter(x => x.isActive == true);\r\n });\r\n }\r\n getMaterialType() {\r\n this.masterServ.getMaterialTypeList().subscribe((matTypeList: any) => {\r\n debugger;\r\n this.materialTypeList = matTypeList.filter(x => x.isActive == true);\r\n });\r\n }\r\n UOMDialog() {\r\n const dialogRef = this.dialog.open(UOMListingDialog, {\r\n data: {},\r\n height: '600px',\r\n width: '700px'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getUOM();\r\n });\r\n }\r\n MaterialTypeDialog() {\r\n const dialogRef = this.dialog.open(MaterialTypeListingDialog, {\r\n data: {},\r\n height: '600px',\r\n width: '700px'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getMaterialType();\r\n });\r\n }\r\n materialTypeSelection(id: number) {\r\n this.addMaterialform.get('selectmaterialTypeControl')?.setValue(id);\r\n this.selectedMaterialTypeId = id;\r\n }\r\n UOMSelection(uom:string)\r\n {\r\n this.addMaterialform.get('uom')?.setValue(uom);\r\n }\r\n onsaveMaterial() {\r\n if (!this.addMaterialform.value.articaleNumber) {\r\n this.masterServ.snackBarLoader('Please enter Article Number', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.addMaterialform.value.materialName) {\r\n this.masterServ.snackBarLoader('Please enter Article Description', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.addMaterialform.value.uom == null) {\r\n this.masterServ.snackBarLoader('Please select UOM', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.addMaterialform.value.unitPrice) {\r\n this.masterServ.snackBarLoader('Please enter Unit Price', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.addMaterialform.value.unitPrice < 0) {\r\n this.masterServ.snackBarLoader('Please enter valid Unit Price', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n this.validate(this.addMaterialform.value.unitPrice);\r\n if (this.addMaterialform.value.selectmaterialTypeControl == null) {\r\n this.masterServ.snackBarLoader('Please select Material Type', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.addMaterialform.valid) {\r\n this.addMaterialSave.id = 0,\r\n this.addMaterialSave.articaleNumber = this.addMaterialform.controls['articaleNumber'].value,\r\n this.addMaterialSave.materialName = this.addMaterialform.controls['materialName'].value,\r\n this.addMaterialSave.uom = this.addMaterialform.controls['uom'].value,\r\n this.addMaterialSave.materialTypeId = this.addMaterialform.get('selectmaterialTypeControl').value,\r\n this.addMaterialSave.isActive = this.addMaterialform.controls['active'].value,\r\n this.addMaterialSave.unitPrice = this.addMaterialform.controls['unitPrice'].value,\r\n this.addMaterialSave.createdBy = Number(sessionStorage.getItem('userId')),\r\n\r\n this.masterServ.AddMaterial(this.addMaterialSave).subscribe((res: any) => {\r\n debugger;\r\n if(res == 'Created')\r\n {\r\n this._snackBar.open('Material created successfully', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n this.dialogRef.close({ event: null, data: res });\r\n }\r\n else{\r\n this.masterServ.snackBarLoader('Material already exists with same Article Number or article description', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n \r\n });\r\n }\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n validate(num:number)\r\n {\r\n if(num.toString().split('.')[1]?.length > 2)\r\n {\r\n this.masterServ.snackBarLoader('Please enter only 2 digits after decimal point in unit price', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n }\r\n onClear() {\r\n this.addMaterialform.reset();\r\n this.addMaterialform.controls['active'].setValue(true);\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './editMaterialDialog.html',\r\n styleUrls: ['./material.component.scss']\r\n})\r\n\r\nexport class EditMaterialDialog {\r\n /**\r\n *\r\n */\r\n editMaterialform: FormGroup;\r\n materialTypeList: MaterialType[];\r\n materialUOMList:UOM[];\r\n selectmaterialTypeControl = new FormControl();\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n editMaterialSave: MaterialDialogData = {\r\n id: 0, articaleNumber: '', materialName: '', materialTypeId: 0, uom: '', unitPrice: '', isActive: true, createdBy: 0, createdDate: new Date(), updatedBy: 0, updatedDate: new Date()\r\n }\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: MaterialDialogData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, public dialogRef: MatDialogRef, public dialog: MatDialog, private masterServ: MasterService) { }\r\n\r\n displayedColumns: string[] = ['VendorCode', 'VendorName', 'PoNo', 'PoDate', 'ArticleName', 'ArticleDescription', 'UOM', 'DriveType', 'PoQty', 'UnitPrice', 'TotalPrice', 'EditVendor', 'DeleteVendor'];\r\n vendordataSource!: MatTableDataSource;\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n\r\n ngOnInit() {\r\n this.getMaterialType();\r\n this.getMaterialUOMList();\r\n debugger;\r\n this.editMaterialform = this.formBuilder.group({\r\n id: this.data.id,\r\n articaleNumber: [this.data.articaleNumber],\r\n materialName: [this.data.materialName],\r\n uom: [this.data.uom,Validators.required],\r\n selectmaterialTypeControl: [this.data.materialTypeId],\r\n unitPrice: [this.data.unitPrice, [Validators.required, Validators.pattern(this.numberRegex)]],\r\n active: [this.data.isActive]\r\n });\r\n this.editMaterialform.controls['uom'].patchValue(this.data.uom);\r\n this.editMaterialform.controls['selectmaterialTypeControl'].patchValue(this.data.materialTypeId);\r\n\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n materialTypeSelection(id: number) {\r\n this.editMaterialform.get('selectmaterialTypeControl')?.setValue(id);\r\n }\r\n uomSelection(uomShort: string) {\r\n this.editMaterialform.get('uom')?.setValue(uomShort);\r\n }\r\n getMaterialUOMList()\r\n {\r\n this.masterServ.GetMaterialUOMList().subscribe((uomList: any) => {\r\n debugger;\r\n this.materialUOMList = uomList.filter(x => x.isActive == true);\r\n });\r\n }\r\n getMaterialType() {\r\n this.masterServ.getMaterialTypeList().subscribe((matTypeList: any) => {\r\n this.materialTypeList = matTypeList;\r\n });\r\n }\r\n onclickClear() {\r\n debugger;\r\n this.editMaterialform.controls['active'].setValue(false);\r\n this.editMaterialform.controls['uom'].setValue(null);\r\n this.editMaterialform.controls['unitPrice'].setValue(null);\r\n }\r\n onClickEdit() {\r\n debugger;\r\n if (!this.editMaterialform.value.articaleNumber) {\r\n this.masterServ.snackBarLoader('Please enter Article Number', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.editMaterialform.value.materialName) {\r\n this.masterServ.snackBarLoader('Please enter Article Description', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.editMaterialform.value.uom == null) {\r\n this.masterServ.snackBarLoader('Please select UOM', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (!this.editMaterialform.value.unitPrice) {\r\n this.masterServ.snackBarLoader('Please enter Unit Price', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.editMaterialform.value.unitPrice < 0) {\r\n this.masterServ.snackBarLoader('Please enter valid Unit Price', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.editMaterialform.value.selectmaterialTypeControl == null) {\r\n this.masterServ.snackBarLoader('Please select Material Type', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n this.validate(this.editMaterialform.value.unitPrice);\r\n if (this.editMaterialform.valid) {\r\n this.editMaterialSave.id = this.data.id,\r\n this.editMaterialSave.articaleNumber = this.editMaterialform.controls['articaleNumber'].value,\r\n this.editMaterialSave.materialName = this.editMaterialform.controls['materialName'].value,\r\n this.editMaterialSave.uom = this.editMaterialform.controls['uom'].value,\r\n this.editMaterialSave.materialTypeId = this.editMaterialform.controls['selectmaterialTypeControl'].value,\r\n this.editMaterialSave.isActive = this.editMaterialform.controls['active'].value,\r\n this.editMaterialSave.unitPrice = this.editMaterialform.controls['unitPrice'].value,\r\n this.editMaterialSave.updatedBy = Number(sessionStorage.getItem('userId')),\r\n this.editMaterialSave.updatedDate = new Date()\r\n this.editMaterialSave.createdBy = Number(sessionStorage.getItem('userId')),\r\n this.editMaterialSave.createdDate = new Date()\r\n\r\n this.masterServ.UpdateMaterial(this.editMaterialSave).subscribe((res: any) => {\r\n this._snackBar.open('Material updated successfully', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n this.dialogRef.close({ event: null, data: res });\r\n\r\n\r\n });\r\n }\r\n\r\n }\r\n validate(num:number)\r\n {\r\n if(num.toString().split('.')[1]?.length > 2)\r\n {\r\n this.masterServ.snackBarLoader('Please enter only 2 digits after decimal point in unit price', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n

Material Details

\r\n \r\n Is Bulk Material Update \r\n \r\n
\r\n \r\n New Material Upload \r\n Existing Material Bulk update\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n (choose only .xlsx,.xls,.csv)\r\n

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n Search \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Article Number {{element.articaleNo}} Article Description {{element.materialName}} UOM {{element.uom}} Material Type {{element.materialType}} Unit Price {{element.unitPrice}} Status {{element.status}} Edit\r\n \r\n Delete \r\n \r\n \r\n
No data matching the filter
\r\n
\r\n
\r\n \r\n \r\n
\r\n
","
\r\n
\r\n

Add Material Details

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n Article Number\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Article Description\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n UOM\r\n \r\n {{uomitem.uomShort}}\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n Add UOM\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Material Type\r\n \r\n {{materialTypeitem.materialType}}\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Add Material Type\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n UnitPrice\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Active\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","\r\n\r\n
\r\n
\r\n

Edit Material Details

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n Article Number\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Article Description\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n UOM\r\n \r\n {{uomitem.uomShort}}\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n Material Type\r\n \r\n {{materialTypeitem.materialType}}\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n UnitPrice\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n Active\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n

\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';\r\n\r\n/* import { DispatchData } from './ProjectDetails_Vendor.component'; */\r\nimport { DisputeSave, ViewVendorData, ViewVendorDialogData } from '../ProjectDetails_ABB/projectDetails_ABB.component';\r\nimport { VendorDataService } from '../Services/vendor-data.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { BOMMST, WiringTableMST } from '../ProjectDetails_ABB/AddvendorConfigDialog';\r\nimport { ProjectDetails_VendorComponent } from '../ProjectDetails_Vendor/ProjectDetails_Vendor.component';\r\nimport { ProjectService } from '../Services/project.service';\r\nimport { DisputeService } from '../Services/dispute.service';\r\nimport { DisputeDialogData, DisputeRequestDialog, disputeStatusDialogData } from '../create-assign-vendor/create-assign-vendor.component';\r\nimport * as saveAs from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\nimport jsPDF from 'jspdf';\r\nimport html2canvas from 'html2canvas';\r\n\r\n\r\nexport interface DialogData {\r\n Id: number;\r\n ProjectName: string;\r\n Plant: string;\r\n SalesOrderNo: string;\r\n Customer: string;\r\n ProjectStatus: string;\r\n IsActive: boolean;\r\n}\r\n\r\nexport interface MaterialStatusList {\r\n IsSubmitEnabled: boolean;\r\n WiringTableList: string;\r\n}\r\n\r\nexport interface VendorMaterialReviewData {\r\n ModuleName: string,\r\n VendorCode: string,\r\n VendorName: string,\r\n MaterialName: string,\r\n MaterialNo: string,\r\n MaterialType:string,\r\n UOM: string,\r\n UsedQty: number,\r\n UnitPrice: number,\r\n FinalPrice: number,\r\n Status: string,\r\n FileName: string,\r\n FileExtension: string,\r\n IsDisputeRaised: boolean,\r\n IsNewDispute: boolean,\r\n}\r\n\r\n\r\nexport interface VendorDialogData {\r\n Id: number;\r\n ProjectId: number;\r\n ModuleName: string;\r\n VendorName: string;\r\n VendorCode: string;\r\n BOMNumber: string;\r\n PoNo: string;\r\n PoDate: string;\r\n PoQty: number;\r\n NoOfTls: number;\r\n NoOfCubicals: number;\r\n NoOfDrives: number;\r\n DriveType: string;\r\n DriveRating: string,\r\n Status: string\r\n remarkDetails: RemarkDetails[];\r\n}\r\n\r\n\r\nexport interface FileList {\r\n id: number;\r\n fileName: string;\r\n}\r\n\r\n\r\nexport interface RemarkDetails {\r\n id: number;\r\n disputeReason: string;\r\n disputeResolution: string;\r\n fileListABB: FileList[];\r\n fileListVendor: FileList[];\r\n}\r\n\r\n\r\n\r\nexport interface AttachmentSave {\r\n Id: number;\r\n ProjectCclassAssemblyDtlId: number;\r\n FileName: string;\r\n FileExtension: string;\r\n UploadedDate: Date;\r\n Link: string;\r\n CategoryId: number;\r\n IsActive: boolean;\r\n Remark: string;\r\n IsABB: boolean;\r\n IsVendor: boolean;\r\n DisputeRaisedCategory: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-review-update-vendor-details',\r\n templateUrl: './review-update-vendor-details.component.html',\r\n styleUrls: ['./review-update-vendor-details.component.scss']\r\n})\r\nexport class ReviewUpdateVendorDetailsComponent implements OnInit {\r\n id: number;\r\n role: string;\r\n ProjectName: any;\r\n Plant: any;\r\n SalesOrderNo: any;\r\n Customer: any;\r\n ProjectStatus: any;\r\n\r\n ProjectId: number;\r\n TableDataIndex: number = 0;\r\n displayedColumns: string[] = ['BOM', 'ModuleName', 'PoNo', 'PoDate', 'PoQty', 'NoOfTls', 'NoOfCubicals', 'NoOfDrives', 'DriveType', 'DriveRating', 'Status', 'ReportUpload'];\r\n materialReviewDataSource!: MatTableDataSource;\r\n MaterialStatusData!: MatTableDataSource;\r\n changedFileName: string;\r\n changedFileExtn: string;\r\n rows = [];\r\n RemarkForm: FormGroup;\r\n selectedFileList: File[] = [];\r\n @ViewChild(MatPaginator) paginator!: MatPaginator;\r\n /* dispatchDataSource!: MatTableDataSource; */\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n ModuleName: any;\r\n VendorName: any;\r\n DriveType: any;\r\n VendorCode: any;\r\n PoNo: any;\r\n PoDate: any;\r\n PoQty: any;\r\n NoOfTls: any;\r\n NoOfCubicals: any;\r\n NoOfDrives: any;\r\n filteredFileList: AttachmentSave[] = [];\r\n showSubmit: boolean = false;\r\n displayedColumns1: string[] = ['MaterialType', 'UsedQuantity'];\r\n MaterialTypeAndVendorQty: any[] = [];\r\n dataSource = new MatTableDataSource(this.MaterialTypeAndVendorQty);\r\n radioButtonValue: string = '2';\r\n ngAfterViewInit() {\r\n this.route.paramMap.subscribe(params => {\r\n this.id = +params.get('id');\r\n\r\n });\r\n }\r\n constructor(private formBuilder: FormBuilder, public dialog: MatDialog, private apisrv: ApiservicesService,\r\n\r\n private vendServ: VendorDataService, private route: ActivatedRoute, private router: Router\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.route.paramMap.subscribe(params => {\r\n this.id = +params.get('id');\r\n console.log(sessionStorage.getItem('role'))\r\n this.role = sessionStorage.getItem('role');\r\n });\r\n\r\n this.RemarkForm = this.formBuilder.group({\r\n Remarks: [null],\r\n });\r\n this.getMaterialReviewList();\r\n this.fetchMaterialTypeAndVendorQty();\r\n this.getRemarks();\r\n //this.TableDataIndex = InvoiceTableData.length;\r\n }\r\n getRemarks() {\r\n this.vendServ.getRemarks(this.id, Number(sessionStorage.getItem('vendorId'))).subscribe((data: any) => {\r\n if (data != null) {\r\n console.log(data);\r\n /* this.RemarkForm.get('Remarks')?.setValue(data.remarks); */\r\n this.RemarkForm.get('Remarks')?.setValue(\" \");\r\n }\r\n else {\r\n this.RemarkForm.get('Remarks')?.setValue(\" \");\r\n }\r\n\r\n });\r\n }\r\n fetchMaterialTypeAndVendorQty(): void {\r\n // Call your service to get the data (replace this with actual API call)\r\n this.vendServ.getMaterialTypeAndVendorQty(this.id, Number(sessionStorage.getItem('vendorId'))).subscribe(data => {\r\n this.MaterialTypeAndVendorQty = data;\r\n\r\n console.log('used QTY ' + this.id + '--vendor-' + Number(sessionStorage.getItem('vendorId')))\r\n console.log(data);\r\n this.dataSource.data = this.MaterialTypeAndVendorQty;\r\n this.dataSource.paginator = this.paginator;\r\n });\r\n }\r\n getMaterialReviewList() {\r\n this.vendServ.getMaterialReviewList(this.id, Number(sessionStorage.getItem('vendorId'))).subscribe((data: any) => {\r\n this.materialReviewDataSource = new MatTableDataSource(data);\r\n this.materialReviewDataSource.paginator = this.paginator;\r\n const status = this.materialReviewDataSource.filteredData.map(item => item.status == 'Assigned');\r\n const hasTrue = status.some(v => v);\r\n if (hasTrue) { this.showSubmit = true; } else { this.showSubmit = false; }\r\n console.log(this.materialReviewDataSource);\r\n });\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.materialReviewDataSource.filter = filterValue.trim().toLowerCase();\r\n this.materialReviewDataSource.paginator = this.paginator;\r\n }\r\n backClick() {\r\n this.router.navigate(['/VendorProjectDetails']);\r\n }\r\n onFileSelected(event: Event, element) {\r\n const input = event.target as HTMLInputElement;\r\n if (input.files && input.files.length > 0) {\r\n const file = input.files[0];\r\n if (file.name.split('.')[file.name.split('.').length-1] != 'xlsx') {\r\n this.vendServ.snackBarLoader('Only .xlsx files are allowed', 'Done', '1000', 'red-snackbar');\r\n input.value = '';\r\n return;\r\n } else {\r\n element.fileName = file.name;\r\n element.fileExtension = element.fileName.split('.')[file.name.split('.').length-1];\r\n element.fileDisplay = true;\r\n this.selectedFileList.push(file);\r\n }\r\n }\r\n }\r\n radiobuttonclick(event: any) {\r\n this.radioButtonValue = event.value;\r\n }\r\n OpenAttachment(data) {\r\n debugger;\r\n const dialogRef = this.dialog.open(Vendor_OpenAttachment, {\r\n data: { Id: data.cClassId, status: data.status },\r\n height: '80%',\r\n width: '70%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result: { fileName: string, fileExtension: string }[]) => {\r\n if (result) {\r\n debugger;\r\n const item = this.materialReviewDataSource.filteredData.find(d => d.cClassId === data.cClassId)\r\n if (item) {\r\n for (let i = 0; i < result.length; i++) {\r\n if (item.fileName) {\r\n item.fileName.push(result[i].fileName);\r\n }\r\n\r\n if (item.fileExtension) {\r\n item.fileExtension.push(result[i].fileExtension);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n keepAttachment(element) {\r\n element.fileName = this.changedFileName;\r\n element.fileExtension = this.changedFileExtn;\r\n if (element.fileName != '' && element.fileName != undefined) {\r\n element.fileDisplay = true;\r\n }\r\n }\r\n changeAttachment(element) {\r\n this.changedFileName = element.fileName;\r\n this.changedFileExtn = element.fileExtension;\r\n element.fileName = '',\r\n element.fileExtension = '';\r\n element.fileDisplay = false;\r\n }\r\n\r\n onSubmit() {\r\n if (confirm(\"Are you sure you want to submit? \")) {\r\n this.vendServ.getMaterialStatus(this.id, Number(sessionStorage.getItem('vendorId'))).subscribe((data: any) => {\r\n const IsSubmitEnabled = data[0].isSubmitEnabled;\r\n const wiringTableList = data[0].wiringTableList\r\n const wiringTableNotDataList= data[0].wiringTableNotDataList\r\n\r\n var WiringTableNewList=\"\";\r\n\r\n if(wiringTableList!=\"\" && wiringTableNotDataList!=\"\")\r\n {\r\n WiringTableNewList=wiringTableList+\",\"+wiringTableNotDataList\r\n }\r\n else if(wiringTableList!=\"\" )\r\n {\r\n WiringTableNewList=wiringTableList\r\n }\r\n else if( wiringTableNotDataList!=\"\")\r\n {\r\n WiringTableNewList=wiringTableNotDataList\r\n }\r\n\r\n if (!IsSubmitEnabled) {\r\n this.vendServ.snackBarLoader('Please Update material details for wiring table -' + WiringTableNewList , 'Done', '1000', 'red-snackbar');\r\n return;\r\n }\r\n else {\r\n if (this.radioButtonValue == '1' && this.RemarkForm.controls['Remarks'].value.trim() == '') {\r\n this.vendServ.snackBarLoader('Please provide remark for excess materials', 'Done', '1000', 'red-snackbar');\r\n return;\r\n }\r\n this.filteredFileList = [];\r\n this.materialReviewDataSource.filteredData.forEach(item => {\r\n for (let i = 0; i < item.fileName.length; i++) {\r\n this.filteredFileList.push({\r\n Id: item.attachmentId[i] ?? 0,\r\n ProjectCclassAssemblyDtlId: item.cClassId,\r\n FileName: item.fileName[i],\r\n FileExtension: item.fileExtension[i],\r\n UploadedDate: new Date(),\r\n Link: '',\r\n IsActive: true,\r\n CategoryId: 1,\r\n Remark: this.RemarkForm.controls['Remarks'].value != null ? this.RemarkForm.controls['Remarks'].value : '',\r\n IsVendor: true,\r\n IsABB: false,\r\n ProjectCclassAssemblyInvoicId: 0,\r\n ProjectCClassAssemblyDisputeId: 0,\r\n DisputeRaisedCategory: \"\"\r\n })\r\n }\r\n });\r\n console.log(this.filteredFileList);\r\n\r\n this.vendServ.reportAttachmentSave(this.filteredFileList).subscribe((data: any) => {\r\n if (data != \"\") {\r\n // if(this.filteredFileList != null){\r\n // this.vendServ.AddFileDetails(this.selectedFileList).subscribe((data:any)=>{ \r\n // this.getMaterialReviewList();\r\n // this.selectedFileList=[];\r\n // }); \r\n // }\r\n this.vendServ.snackBarLoader('Submitted Successfully', 'Done', '1000', 'red-snackbar');\r\n this.showSubmit = false;\r\n }\r\n this.getMaterialReviewList();\r\n /* this.dialogRef.close(); */\r\n });\r\n }\r\n\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n }\r\n /* onClose() {\r\n this.dialogRef.close();\r\n } */\r\n\r\n View(element: any) {\r\n const dialogRef = this.dialog.open(ViewVendorMaterialReviewDetails, {\r\n\r\n data: { Id: element.cClassId, BOMNumber: element.bomNumber, ModuleName: element.moduleName },\r\n height: '80%',\r\n width: '80%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getMaterialReviewList();\r\n\r\n\r\n });\r\n }\r\n\r\n disputevendorMaterial(data: any) {\r\n debugger;\r\n const dialogRef = this.dialog.open(DisputeListingDialog_Vendor, {\r\n data: { id: data.cClassId, projectId: this.id, bomNumber: data.bomNumber, bomNumberId: data.bomId, moduleName: data.moduleName, status: data.status, displayedColumns: this.displayedColumns },\r\n height: '90%',\r\n width: '90%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getMaterialReviewList();\r\n });\r\n\r\n }\r\n\r\n\r\n onClickSubmit() {\r\n\r\n\r\n\r\n\r\n }\r\n onClear() {\r\n this.RemarkForm.reset();\r\n }\r\n shouldShowButton(row: any): boolean {\r\n if (row.status == \"Submitted\" && row.isDisputeRaised == true) {\r\n return true;\r\n }\r\n else\r\n return false;\r\n }\r\n getColor(row: any): string {\r\n if (row.isNewDispute == true) {\r\n return \"red\";\r\n }\r\n else\r\n return \"black\";\r\n }\r\n\r\n\r\n}\r\n\r\n/* **************************************************ViewVendorMaterialReviewDetails********************************************* */\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './ViewVendorMaterialReviewDetails.html',\r\n styleUrls: ['./review-update-vendor-details.component.scss']\r\n})\r\n\r\nexport class ViewVendorMaterialReviewDetails {\r\n /**\r\n *\r\n */\r\n MaterialReviewVendorform: FormGroup;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n\r\n @ViewChild('TABLE') table: ElementRef;\r\n displayedColumns: string[] = ['Module','spacerColumn','MaterialType', 'MaterialName', 'MaterialNo', 'UOM','spacerColumn', 'UsedQty', 'spacerColumn','UnitPrice', 'TotalPrice'];\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: VendorDialogData, private _snackBar: MatSnackBar, private apisrv: ApiservicesService, public dialogRef: MatDialogRef,\r\n private vendServ: VendorDataService) { }\r\n\r\n viewMaterialDataSource: MatTableDataSource;\r\n viewMaterialDataSource2: MatTableDataSource;\r\n searchValue: string = '';\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n ngOnInit() {\r\n this.getMaterialReviewFromCClassIDDetails();\r\n }\r\n getMaterialReviewFromCClassIDDetails() {\r\n this.vendServ.getMaterialReviewFromCClassIDDetails(this.data.Id, Number(sessionStorage.getItem('vendorId'))).subscribe((data: any) => {\r\n this.viewMaterialDataSource = new MatTableDataSource(data);\r\n this.viewMaterialDataSource2 = new MatTableDataSource(data);\r\n this.viewMaterialDataSource.paginator = this.paginator;\r\n });\r\n }\r\n\r\n onClear() {\r\n this.MaterialReviewVendorform.reset();\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n onUpdate() {\r\n\r\n }\r\n exportExcel() {\r\n this.ExportTOExcel();\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.searchValue = filterValue;\r\n this.viewMaterialDataSource.filter = filterValue.trim().toLowerCase();\r\n this.viewMaterialDataSource2.filter = filterValue.trim().toLowerCase();\r\n }\r\n onsubmit() {\r\n if (this.MaterialReviewVendorform.valid) {\r\n if (this.data != null) {\r\n this._snackBar.open('Vendor details updated successfully', 'Close', {\r\n horizontalPosition: this.horizontalPosition,\r\n verticalPosition: this.verticalPosition,\r\n duration: 2 * 1000\r\n });\r\n this.dialogRef.close();\r\n }\r\n }\r\n }\r\n ExportTOExcel() {\r\n var ws: XLSX.WorkSheet = XLSX.utils.table_to_sheet(this.table.nativeElement);\r\n ws['!cols']=[{width:40},{width:0},{width:40},{width:70},{width:40},{width:20},{width:0},{width:10},{width:0},{width:10},{width:10}];\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n\r\n /* save to file */\r\n debugger;\r\n if((this.data.BOMNumber?.length + this.data.ModuleName?.length)>150)\r\n XLSX.writeFile(wb, 'BomNo_' + this.data.BOMNumber.slice(0,10) + '_WiringTableName_' + this.data.ModuleName.slice(0,10) + '.xlsx');\r\n else\r\n XLSX.writeFile(wb, 'BomNo_' + this.data.BOMNumber+ '_WiringTableName_' + this.data.ModuleName + '.xlsx');\r\n\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n/* *************************************************DisputeResolved********************************************** */\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './DisputeResolvedDialog.component.html',\r\n styleUrls: ['./review-update-vendor-details.component.scss']\r\n})\r\n\r\nexport class DisputeResolvedDialog {\r\n /**\r\n *\r\n */\r\n form: FormGroup;\r\n bomnoList: BOMMST[] = [];\r\n selectedBomNumValue = [];\r\n WiringTableList: WiringTableMST[] = [];\r\n wiringTableFormControl = new FormControl();\r\n selectBOMNumFormControl = new FormControl();\r\n selectedBomId: number;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n disputeSave: DisputeSave = {\r\n id: 0, wiringTableId: 0, remarks: '', resolutionRemarks: '', status: '', isActive: true,\r\n createdBy: 1, createdDate: new Date(), updatedBy: 1, updatedDate: new Date()\r\n }\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DisputeDialogData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, public dialogRef: MatDialogRef, public dialog: MatDialog, private projectServ: ProjectService, private disputeServ: DisputeService) {\r\n this.form = this.formBuilder.group({\r\n Remarks: ['Article missing'], // Default value set here\r\n // other form controls...\r\n });\r\n }\r\n selectedFiles: File[] = [];\r\n disputeAttachmentDataSource: any;\r\n displayedColumnsDisputeAttachment: string[] = ['FileName'];\r\n attachmentUpdate: AttachmentSave = {\r\n Id: 0, ProjectCclassAssemblyDtlId: 0, FileName: '', FileExtension: '', UploadedDate: new Date(),\r\n Link: '', CategoryId: 0, IsActive: true, IsABB: false, IsVendor: false, Remark: '', ProjectCclassAssemblyInvoicId: null, ProjectCClassAssemblyDisputeId: null, DisputeRaisedCategory: null\r\n }\r\n attachmentUpdateBulk: AttachmentSave[] = [];\r\n displayedColumns: string[] = ['VendorCode', 'PoNo'];\r\n vendordataSource!: MatTableDataSource;\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n\r\n\r\n ngOnInit() {\r\n debugger;\r\n //this.getBOMDetail(this.data.Id, 0);\r\n this.selectedBomId = this.data?.bomNumberId;\r\n this.wiringTableIdSelection(this.data?.wiringTableId, this.data.id)\r\n this.form = this.formBuilder.group({\r\n Remarks: [null, null],\r\n ResolutionRemarks: [null, Validators.required]\r\n });\r\n this.getDisputeAttachments();\r\n }\r\n onResolvedVendorFileSelected(event: Event): void {\r\n this.selectedFiles = [];\r\n const input = event.target as HTMLInputElement;\r\n\r\n if (input.files) {\r\n Array.from(input.files).forEach(file => this.selectedFiles.push(file));\r\n console.log(this.selectedFiles);\r\n }\r\n }\r\n getDisputeAttachments() {\r\n this.disputeServ.getDisputeAttachmentList(this.data.id).subscribe((data: any) => {\r\n debugger;\r\n this.disputeAttachmentDataSource = new MatTableDataSource(data);\r\n this.disputeAttachmentDataSource.paginator = this.paginator;\r\n });\r\n }\r\n downloadFile(element) {\r\n var data1 = element.attachmentId + '_' + element.fileName;\r\n this.disputeServ.GetFileByName(data1).subscribe((data2: any) => {\r\n var content = data2;\r\n console.log(content);\r\n this.SaveDemo(content, element.fileName);\r\n });\r\n }\r\n base64ToArrayBuffer(base64: any): ArrayBuffer {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n }\r\n SaveDemo(data2: any, data: string) {\r\n var bytes = this.base64ToArrayBuffer(data2);\r\n let file = new Blob([bytes], { type: '' });\r\n saveAs(file, data);\r\n }\r\n deleteAttachment(ele) {\r\n console.log('dataaa', ele)\r\n if (confirm(\"Are you sure you want to delete?\")) {\r\n var data1 = ele.attachmentId + '_' + ele.fileName;\r\n this.disputeServ.DeleteFileByName(data1).subscribe((data2: any) => {\r\n var content = data2;\r\n console.log(content);\r\n this.disputeServ.deleteDisputeAttachment(ele.attachmentId).subscribe(() => {\r\n this.projectServ.snackBarLoader('Deleted Successfully', 'Done', '1000', 'red-snackbar');\r\n this.disputeServ.getDisputeAttachmentList(this.data.id).subscribe((data: any) => {\r\n this.disputeAttachmentDataSource = new MatTableDataSource(data);\r\n this.disputeAttachmentDataSource.paginator = this.paginator;\r\n console.log(this.disputeAttachmentDataSource);\r\n })\r\n });\r\n });\r\n }\r\n }\r\n getBOMDetail(projectId, id) {\r\n\r\n this.projectServ.getBOMDetailList(projectId, id).subscribe((data: any) => {\r\n this.bomnoList = data;\r\n });\r\n }\r\n\r\n bomNumSelection(bomid: number) {\r\n this.selectedBomId = bomid;\r\n this.form.controls['selectBOMNumFormControl'].patchValue(bomid);\r\n this.WiringTableList = [];\r\n\r\n this.wiringTableFormControl.reset();\r\n\r\n this.projectServ.getWiringTbleList(bomid, 0).subscribe((data: any) => {\r\n this.WiringTableList = data, () => console.log('Get all complete');\r\n });\r\n }\r\n onClear() {\r\n this.form.controls['ResolutionRemarks'].patchValue(null);\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n wiringTableIdSelection(wiringTableId: number, id: number) {\r\n this.disputeServ.GetDispute(wiringTableId, id).subscribe((data: any) => {\r\n let checkedData = data.find(x => x.isChecked);\r\n if (checkedData?.id > 0) {\r\n\r\n this.form = this.formBuilder.group({\r\n Id: [checkedData.id],\r\n selectBOMNumFormControl: [this.selectedBomId, Validators.required],\r\n wiringTableFormControl: [checkedData.wiringTableId, Validators.required],\r\n Remarks: [{value:checkedData.remarks.replace(/;/g, '\\n'), disabled:true}],\r\n ResolutionRemarks: [\"\", null],\r\n disputeStatus1: [\"resolved\", null]\r\n });\r\n }\r\n else {\r\n this.form.controls['ResolutionRemarks'].reset();\r\n }\r\n });\r\n }\r\n onClickSave() {\r\n var userId = sessionStorage.getItem('userId');\r\n\r\n if (!this.form.value.ResolutionRemarks) {\r\n this.projectServ.snackBarLoader('Please enter Resolution Remarks', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.form.valid) {\r\n this.disputeSave.id = this.form.controls['Id'].value,\r\n this.disputeSave.resolutionRemarks = this.form.controls['ResolutionRemarks'].value;\r\n this.disputeSave.status = 'resolved';\r\n this.disputeSave.updatedBy = Number(userId);\r\n this.disputeSave.updatedDate = new Date();\r\n\r\n //save attachment\r\n for (let i = 0; i < this.selectedFiles.length; i++) {\r\n\r\n if (this.selectedFiles[i].name.split('.')[this.selectedFiles[i].name.split('.').length - 1] != 'xlsx' && this.selectedFiles[i].name.split('.')[this.selectedFiles[i].name.split('.').length - 1] != 'xls' && this.selectedFiles[i].name.split('.')[this.selectedFiles[i].name.split('.').length - 1] != 'pdf') {\r\n this.projectServ.snackBarLoader('Only .xlsx,.xls or pdf files are allowed', 'Done', '1000', 'red-snackbar');\r\n return;\r\n } else {\r\n\r\n this.attachmentUpdate.ProjectCclassAssemblyDtlId = this.data.wiringTableId;\r\n this.attachmentUpdate.FileName = this.selectedFiles[i].name;\r\n this.attachmentUpdate.FileExtension = this.selectedFiles[i].name.split('.')[this.selectedFiles[i].name.split('.').length - 1];\r\n this.attachmentUpdate.IsABB = false;\r\n this.attachmentUpdate.IsVendor = true;\r\n this.attachmentUpdate.CategoryId = 3;\r\n this.attachmentUpdate.Id = 0;\r\n this.attachmentUpdate.Link = '';\r\n this.attachmentUpdate.Remark = '';\r\n this.attachmentUpdate.UploadedDate = new Date();\r\n this.attachmentUpdate.ProjectCClassAssemblyDisputeId = this.data.id;\r\n this.attachmentUpdateBulk.push({\r\n Id: this.attachmentUpdate.Id,\r\n ProjectCclassAssemblyDtlId: this.attachmentUpdate.ProjectCclassAssemblyDtlId,\r\n FileName: this.attachmentUpdate.FileName,\r\n FileExtension: this.attachmentUpdate.FileExtension,\r\n IsActive: true,\r\n IsABB: this.attachmentUpdate.IsABB,\r\n IsVendor: this.attachmentUpdate.IsVendor,\r\n CategoryId: this.attachmentUpdate.CategoryId,\r\n Link: this.attachmentUpdate.Link,\r\n Remark: this.attachmentUpdate.Remark,\r\n UploadedDate: this.attachmentUpdate.UploadedDate,\r\n ProjectCclassAssemblyInvoicId: 0,\r\n ProjectCClassAssemblyDisputeId: this.attachmentUpdate.ProjectCClassAssemblyDisputeId,\r\n DisputeRaisedCategory: \"resolved\"\r\n });\r\n }\r\n }\r\n this.disputeServ.saveDispute(this.disputeSave).subscribe({\r\n next: (val: any) => {\r\n\r\n for (let i = 0; i < this.selectedFiles.length; i++) {\r\n this.attachmentUpdateBulk[i].ProjectCClassAssemblyDisputeId = val;\r\n }\r\n\r\n this.disputeServ.DisputeAttachmentSave(this.attachmentUpdateBulk).subscribe((data: any) => {\r\n if (data != \"\") {\r\n this.disputeServ.AddFileDetails(this.selectedFiles, this.attachmentUpdate.ProjectCclassAssemblyDtlId).subscribe((data: any) => {\r\n this.selectedFiles = [];\r\n });\r\n //this.vendServ.snackBarLoader('File uploaded successfully.', 'Done', '1000', 'red-snackbar');\r\n const inputElements = document.querySelectorAll('input[type=\"file\"]');\r\n inputElements.forEach((element: any) => {\r\n element.value = '';\r\n });\r\n this.projectServ.snackBarLoader('Dispute resolved Successfully', 'Done', '1000', 'red-snackbar')\r\n this.dialogRef.close(true);\r\n }\r\n /* this.dialogRef.close(); */\r\n });\r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n}\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './dispute-listing_vendor.component.html',\r\n styleUrls: ['./review-update-vendor-details.component.scss']\r\n})\r\n\r\nexport class DisputeListingDialog_Vendor {\r\n disputedataSource!: MatTableDataSource;\r\n ProjectId: number = 0;\r\n Status: string = '';\r\n statusList: disputeStatusDialogData[] = [];\r\n role: string;\r\n disputeSave: DisputeSave = {\r\n id: 0, wiringTableId: 0, remarks: '', resolutionRemarks: '', status: '', isActive: true,\r\n createdBy: 1, createdDate: new Date(), updatedBy: 1, updatedDate: new Date()\r\n }\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n\r\n displayedColumns: string[] = ['SequenceNo','RaisedRemarks', 'ResolvedRemarks', 'Status', 'DisputeStatus']; /* 'FileName', */\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DisputeDialogData, private router: Router, public dialogRef: MatDialogRef, private disputeServ: DisputeService, public dialog: MatDialog, private projectServ: ProjectService) {\r\n\r\n }\r\n ngOnInit() {\r\n console.log(this.data);\r\n this.Status = this.data.status;\r\n this.getDispute();\r\n console.log(sessionStorage.getItem('role'))\r\n this.role = sessionStorage.getItem('role');\r\n\r\n }\r\n\r\n getDispute() {\r\n this.disputeServ.GetDispute(this.data.id, 0).subscribe((data: any) => {\r\n this.disputetbldata(data);\r\n });\r\n }\r\n onClickResolve(data: any) {\r\n const dialogRef = this.dialog.open(DisputeResolvedDialog, {\r\n data: { id: data.id, projectId: this.data.projectId, bomNumber: this.data.bomNumber, bomNumberId: this.data.bomNumberId, wiringTableId: this.data.id, moduleName: this.data.moduleName, Status: this.data.status, displayedColumns: this.displayedColumns, flag: 'exist' },\r\n height: '90%',\r\n width: '85%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getDispute();\r\n\r\n });\r\n }\r\n\r\n addHyperlink(Data: string) {\r\n\r\n\r\n var retValText = \"\";\r\n\r\n\r\n retValText = Data.replace(/;/g, ';
');//.replace(/Dispute Remark:/g, 'Dispute Remark:'); \r\n\r\n\r\n\r\n return retValText;\r\n }\r\n disputetbldata(data: any) {\r\n this.disputedataSource = new MatTableDataSource(data);\r\n this.disputedataSource.paginator = this.paginator;\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n downloadFile(id, fileName) {\r\n debugger;\r\n var data1 = id + '_' + fileName;\r\n this.disputeServ.GetFileByName(data1).subscribe((data2: any) => {\r\n var content = data2;\r\n console.log(content);\r\n this.SaveDemo(content, fileName);\r\n });\r\n }\r\n base64ToArrayBuffer(base64: any): ArrayBuffer {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n }\r\n SaveDemo(data2: any, data: string) {\r\n var bytes = this.base64ToArrayBuffer(data2);\r\n let file = new Blob([bytes], { type: '' });\r\n saveAs(file, data);\r\n }\r\n shouldShowReopenButton(row: any): boolean {\r\n if (row.disputeStatus == \"New\" || row.disputeStatus == \"Reopened\") {\r\n return true;\r\n }\r\n else\r\n return false;\r\n }\r\n\r\n\r\n}\r\n\r\nexport interface Attachments {\r\n cClassName: string;\r\n FileName: string;\r\n FileExtension: string;\r\n cClassStatus: string;\r\n}\r\nexport interface AttachmentSave {\r\n Id: number;\r\n ProjectCclassAssemblyDtlId: number;\r\n FileName: string;\r\n FileExtension: string;\r\n UploadedDate: Date;\r\n Link: string;\r\n CategoryId: number;\r\n IsActive: boolean;\r\n Remark: string;\r\n IsABB: boolean;\r\n IsVendor: boolean;\r\n ProjectCclassAssemblyInvoicId: number;\r\n ProjectCClassAssemblyDisputeId: number;\r\n\r\n}\r\n\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './attachment_vendor.component.html',\r\n styleUrls: ['./review-update-vendor-details.component.scss']\r\n})\r\n\r\nexport class Vendor_OpenAttachment {\r\n /**\r\n *\r\n */\r\n showSubmit: boolean = false;\r\n role: string;\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n selectedFileList: File[] = [];\r\n selectedFiles: { fileName: string, fileExtension: string }[] = [];\r\n attachmentDataSource!: MatTableDataSource;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n displayedColumnsAttachment: string[] = ['cClassName','spacerColumn', 'FileName'];\r\n filteredFileList: AttachmentSave[] = [];\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: ViewVendorDialogData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, public dialogRef: MatDialogRef, public dialog: MatDialog,\r\n private vendServ: VendorDataService, private projectServ: ProjectService) { }\r\n\r\n\r\n ngOnInit() {\r\n console.log(this.data.status);\r\n if (this.data.status != \"Submitted\")\r\n this.showSubmit = true;\r\n this.vendServ.getAttachmentDetails(this.data.Id, Number(sessionStorage.getItem('vendorId'))).subscribe((data: any) => {\r\n this.attachmentDataSource = new MatTableDataSource(data);\r\n this.attachmentDataSource.paginator = this.paginator;\r\n console.log(this.attachmentDataSource);\r\n })\r\n console.log(sessionStorage.getItem('role'))\r\n this.role = sessionStorage.getItem('role');\r\n }\r\n onFileSelected(event: Event): void {\r\n const input = event.target as HTMLInputElement;\r\n\r\n if (input.files) {\r\n\r\n this.selectedFiles = Array.from(input.files).map((file) => {\r\n const fileNameParts = file.name.split('.');\r\n const fileExtension = fileNameParts.length > 1 ? fileNameParts.pop() : '';\r\n const fileName = file.name;\r\n this.selectedFileList.push(file);\r\n return { fileName, fileExtension };\r\n })\r\n console.log(this.selectedFiles);\r\n\r\n }\r\n }\r\n uploadFiles() {\r\n\r\n if (this.selectedFiles.length == 0) {\r\n this.vendServ.snackBarLoader('Please select file to upload.', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n else {\r\n var count = 0;\r\n for (let i = 0; i < this.selectedFiles.length; i++) {\r\n\r\n if (this.selectedFiles[i].fileName.split('.')[this.selectedFiles[i].fileName.split('.').length - 1] != 'xlsx' && this.selectedFiles[i].fileName.split('.')[this.selectedFiles[i].fileName.split('.').length - 1] != 'xls' && this.selectedFiles[i].fileName.split('.')[this.selectedFiles[i].fileName.split('.').length - 1] != 'pdf') {\r\n count = count + 1;\r\n }\r\n }\r\n\r\n if (count > 0) {\r\n this.vendServ.snackBarLoader('Only .xlsx,.xls or pdf files are allowed', 'Done', '1000', 'red-snackbar');\r\n return;\r\n }\r\n else {\r\n this.filteredFileList = [];\r\n for (let i = 0; i < this.selectedFiles.length; i++) {\r\n this.filteredFileList.push({\r\n Id: 0,\r\n ProjectCclassAssemblyDtlId: this.data.Id,\r\n FileName: this.selectedFiles[i].fileName,\r\n FileExtension: this.selectedFiles[i].fileExtension,\r\n UploadedDate: new Date(),\r\n Link: '',\r\n IsActive: true,\r\n CategoryId: 1,\r\n Remark: '',\r\n IsVendor: true,\r\n IsABB: false,\r\n ProjectCClassAssemblyDisputeId: 0,\r\n ProjectCclassAssemblyInvoicId: 0,\r\n DisputeRaisedCategory: \"\"\r\n })\r\n }\r\n\r\n this.vendServ.VendorAttachmentSave(this.filteredFileList).subscribe((data: any) => {\r\n if (data != \"\") {\r\n if (this.filteredFileList != null) {\r\n this.vendServ.AddFileDetails(this.selectedFileList, this.data.Id).subscribe((data: any) => {\r\n this.filteredFileList = [];\r\n this.selectedFileList = [];\r\n this.selectedFiles = [];\r\n });\r\n }\r\n this.vendServ.snackBarLoader('Uploaded Successfully', 'Done', '1000', 'red-snackbar');\r\n\r\n this.vendServ.getAttachmentDetails(this.data.Id, Number(sessionStorage.getItem('vendorId'))).subscribe((data: any) => {\r\n this.attachmentDataSource = new MatTableDataSource(data);\r\n this.attachmentDataSource.paginator = this.paginator;\r\n console.log(this.attachmentDataSource);\r\n const inputElements = document.querySelectorAll('input[type=\"file\"]');\r\n inputElements.forEach((element: any) => {\r\n element.value = '';\r\n });\r\n })\r\n }\r\n /* this.dialogRef.close(); */\r\n });\r\n }\r\n }\r\n\r\n }\r\n deleteAttachment(ele) {\r\n console.log('dataaa', ele)\r\n if (confirm(\"Are you sure you want to delete?\")) {\r\n var data1 = ele.attachmentId + '_' + ele.fileName;\r\n this.vendServ.DeleteFileByName(data1).subscribe((data2: any) => {\r\n var content = data2;\r\n console.log(content);\r\n this.projectServ.deleteAttachment(ele.attachmentId).subscribe(() => {\r\n this.projectServ.snackBarLoader('Deleted Successfully', 'Done', '1000', 'red-snackbar');\r\n this.vendServ.getAttachmentDetails(this.data.Id, Number(sessionStorage.getItem('vendorId'))).subscribe((data: any) => {\r\n this.attachmentDataSource = new MatTableDataSource(data);\r\n this.attachmentDataSource.paginator = this.paginator;\r\n console.log(this.attachmentDataSource);\r\n })\r\n });\r\n });\r\n\r\n }\r\n }\r\n downloadFile(element) {\r\n var data1 = element.attachmentId + '_' + element.fileName;\r\n this.vendServ.GetFileByName(data1).subscribe((data2: any) => {\r\n var content = data2;\r\n console.log(content);\r\n this.SaveDemo(content, element.fileName);\r\n });\r\n }\r\n base64ToArrayBuffer(base64: any): ArrayBuffer {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n }\r\n SaveDemo(data2: any, data: string) {\r\n var bytes = this.base64ToArrayBuffer(data2);\r\n let file = new Blob([bytes], { type: '' });\r\n saveAs(file, data);\r\n }\r\n closepopup() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","\r\n
\r\n
\r\n\r\n

\r\n Material Review

\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
BOM Number {{element.bomNumber}}Wiring Table Name {{element.moduleName}}Purchase Order No {{element.poNo}} Purchase Order Date {{element.poDate}} Purchase Qty {{element.poQty}} No Of Tls {{element.noOfTls}} No Of Cubicles {{element.noOfCubicles}} No Of Drives {{element.noOfDrives}} Drive Type {{element.driveType}} Drive Rating {{element.driveRating}} Status {{element.status}}Actions\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
0\">\r\n
\r\n Used Quantity Summary
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n {{element.materialType}}\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n
Are there any excess materials in the project?
\r\n \r\n Yes \r\n No\r\n \r\n
\r\n
\r\n Note: Please provide remark for excess materials.\r\n
\r\n
\r\n
\r\n \r\n Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
","
\r\n
\r\n

View Material Details

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n \r\n\r\n Search \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Wiring Table Name {{element.moduleName}} Article Name {{element.materialName}} Article No {{element.materialNo}} Material Type {{element.materialType}} UOM {{element.uom}} Used Qty {{element.usedQty}} Unit Price {{element.unitPrice}} Final Price {{element.finalPrice}}
No records foundNo data matching the filter
\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n\r\n \r\n
\r\n\r\n\r\n","
\r\n
\r\n

Dispute Resolve

\r\n
\r\n
\r\n close\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n Dispute Resolved\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n Raised Remarks\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n Resolved Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n (choose only .xlsx,xls,pdf)\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
FileName {{element.fileName}}\r\n get_app\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
","\r\n
\r\n
\r\n \r\n

\r\n Dispute Listing

\r\n
\r\n
\r\n close\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n BOM Number : {{data.bomNumber}}\r\n
\r\n
\r\n Wiring Table Name : {{data.moduleName}}\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n
#Dispute \r\n {{element.sequenceNo}} \r\n Raised Remarks \r\n \r\n
    \r\n
      \r\n
    1. \r\n {{remarkDetails.disputeReason}}\r\n
      \r\n {{remarkDetails.disputeCreateBy}}
      \r\n {{remarkDetails.disputeCreatedDate}}\r\n
        \r\n
      • \r\n {{fileList.fileName.slice(0, 20)}}\r\n get_app\r\n
      • \r\n
      \r\n
    2. \r\n {{element.disputeClosedBy}}
      \r\n {{element.disputeClosedDate}}\r\n\r\n
    \r\n
\r\n\r\n
Resolved Remarks \r\n
    \r\n
      \r\n
    1. \r\n {{remarkDetails.disputeResolution}}\r\n
      \r\n {{remarkDetails.disputeResolvedBy}}
      \r\n {{remarkDetails.disputeResolveDate}}\r\n
        \r\n
      • \r\n {{fileList.fileName.slice(0, 20)}}\r\n get_app\r\n
      • \r\n
      \r\n
    2. \r\n
    \r\n
\r\n \r\n \r\n
Status {{element.disputeStatus }} Action \r\n Resolve\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n","
\r\n
\r\n \r\n

\r\n View/Upload files

\r\n
\r\n
\r\n close\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n (choose only .xlsx,xls,pdf)\r\n

\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Wiring Table Name {{element.cClassName}}FileName {{element.fileName}}\r\n get_app\r\n close\r\n
\r\n No attachment was found.\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, FormControl } from '@angular/forms';\r\n\r\nimport * as saveAs from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\nimport { ProjectQEDataService } from '../Services/project-qe-data.service';\r\n\r\n\r\nimport { DisputeService } from '../Services/dispute.service';\r\nimport { VendorDataService } from '../Services/vendor-data.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n\r\nexport interface DialogData {\r\n Id: number;\r\n ProjectName: string;\r\n Plant: string;\r\n SalesOrderNo: string;\r\n Customer: string;\r\n ProjectStatus: string;\r\n IsActive: boolean;\r\n}\r\n\r\nexport interface DisputeDialogData {\r\n id: number;\r\n projectId: number;\r\n bomNumber: string;\r\n bomNumberId: number;\r\n wiringTableId: number\r\n moduleName: string;\r\n attachmentId: number;\r\n fileName: string;\r\n raisedRemarks: string;\r\n resolutionRemarks: string;\r\n status: string;\r\n disputeStatus: string;\r\n flag: string,\r\n remarkDetails: RemarkDetails[];\r\n projStatus: string;\r\n sequenceNo:string;\r\n disputeClosedBy:string;\r\n disputeClosedDate:string;\r\n}\r\nexport interface FileList {\r\n id: number;\r\n fileName: string;\r\n}\r\nexport interface RemarkDetails {\r\n id: number;\r\n disputeReason: string;\r\n disputeResolution: string;\r\n fileListABB: FileList[];\r\n fileListVendor: FileList[];\r\n}\r\nexport interface disputeFormData {\r\n id: number;\r\n wiringTableId: number;\r\n wiringTableName: string;\r\n remarks: string;\r\n resolutionRemarks: string;\r\n status: string;\r\n disputeStatus: string;\r\n isChecked: boolean;\r\n\r\n}\r\n\r\nexport interface WiringTableSave {\r\n WiringTableId: number,\r\n VendorId: number\r\n PurchaceOrderNo: string,\r\n PurchaceOrderDate: string,\r\n PurchaceOrderQty: number,\r\n NoOfTls: number,\r\n NoOfCubicles: number,\r\n NoOfdrives: number,\r\n DriveType: string,\r\n DriveRating: string,\r\n createdBy: number,\r\n updatedBy: number,\r\n TargetDate: string,\r\n ApplicationDetails: string,\r\n isVerified: boolean;\r\n}\r\nexport interface VendorMST {\r\n vendorId: number;\r\n name: string;\r\n}\r\nexport interface BOMMST {\r\n bomId: number;\r\n name: string;\r\n}\r\nexport interface WiringTableMST {\r\n wiringTableId: number;\r\n name: string;\r\n}\r\n\r\nexport interface VendorDialogData {\r\n\r\n id: number;\r\n ProjectId: number;\r\n ModuleName: string;\r\n VendorName: string;\r\n VendorCode: string;\r\n BOMNumber: string;\r\n PoNo: string;\r\n PoDate: string;\r\n PoQty: number;\r\n NoOfTls: number;\r\n NoOfCubicals: number;\r\n NoOfDrives: number;\r\n DriveType: string;\r\n DriveRating: string,\r\n status: string,\r\n FileName: string[];\r\n FileDisplay: boolean[];\r\n ChooseFile: boolean[];\r\n IsABB: boolean[];\r\n IsVendor: boolean[];\r\n ProjectStatus: string,\r\n isDisplayAssign: boolean,\r\n IsResolvedDispute: boolean,\r\n TargetDate: string,\r\n ApplicationDetails: string,\r\n assign: boolean,\r\n projStatus: string,\r\n isVerified: boolean\r\n}\r\n\r\nexport interface AttachmentSave {\r\n Id: number;\r\n ProjectCclassAssemblyDtlId: number;\r\n FileName: string;\r\n FileExtension: string;\r\n UploadedDate: Date;\r\n Link: string;\r\n CategoryId: number;\r\n IsActive: boolean;\r\n Remark: string;\r\n IsABB: boolean;\r\n IsVendor: boolean;\r\n ProjectCclassAssemblyInvoicId: number;\r\n ProjectCClassAssemblyDisputeId: number;\r\n DisputeRaisedCategory: string;\r\n}\r\nexport interface VendorDialogList {\r\n MaterialTableDataList: any[]; // or a more specific type if known\r\n displayedColumns: string[];\r\n}\r\n\r\nexport let UploadVendorData: VendorDialogData[] = []\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-review-verify-material-details',\r\n templateUrl: './review-verify-material-details.component.html',\r\n styleUrls: ['./review-verify-material-details.component.scss']\r\n})\r\nexport class ReviewVerifyMaterialDetailsComponent implements OnInit {\r\n\r\n id: number;\r\n role: string;\r\n AssignActivateVendor: FormGroup;\r\n index: number = 0;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n QualityEngineerId: Number\r\n\r\n //displayedColumns: string[] = ['BOMNumber', 'ModuleName', 'VendorName', 'VendorCode', 'DriveType', 'DriveRating', 'PoNo', 'PoDate', 'PoQty', 'NoOfTls', 'NoOfCubicals', 'NoOfDrives', 'Status', 'Edit','Dispute','File'];\r\n displayedColumns: string[] = ['BOMNumber', 'spacerColumn', 'ModuleName', 'spacerColumn', 'VendorName', 'spacerColumn', 'VendorCode', 'spacerColumn', 'DriveType', 'spacerColumn', 'DriveRating', 'spacerColumn', 'PoNo', 'spacerColumn', 'PoDate', 'spacerColumn', 'PoQty', 'spacerColumn', 'NoOfTls', 'spacerColumn', 'NoOfCubicals', 'spacerColumn', 'NoOfDrives', 'spacerColumn', 'Status', 'spacerColumn', 'TargetDate', 'spacerColumn', 'File', 'spacerColumn', 'Verify', 'spacerColumn', 'Assign', 'spacerColumn', 'AssignQE'];\r\n vendordataSource!: MatTableDataSource;\r\n wiringTableSave: WiringTableSave = {\r\n WiringTableId: 0, VendorId: 0, PurchaceOrderNo: '', PurchaceOrderDate: '', PurchaceOrderQty: 0, NoOfTls: 0, NoOfCubicles: 0, NoOfdrives: 0, DriveType: '', DriveRating: '', createdBy: 0, updatedBy: 0,\r\n TargetDate: '', ApplicationDetails: '', isVerified: false\r\n }\r\n commonWiringTableSave: WiringTableSave[] = [];\r\n attachmentUpdate: AttachmentSave = {\r\n Id: 0, ProjectCclassAssemblyDtlId: 0, FileName: '', FileExtension: '', UploadedDate: new Date(),\r\n Link: '', CategoryId: 0, IsActive: true, IsABB: false, IsVendor: false, Remark: '', ProjectCclassAssemblyInvoicId: null, ProjectCClassAssemblyDisputeId: null, DisputeRaisedCategory: null\r\n }\r\n changedFileName: string;\r\n changedFileExtn: string;\r\n showAssign: boolean = true;\r\n showNewVendor: boolean = true;\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n\r\n this.route.paramMap.subscribe(params => {\r\n this.id = +params.get('id');\r\n this.getVendorData(this.id, this.QualityEngineerId);\r\n });\r\n }\r\n constructor(private formBuilder: FormBuilder, private apisrv: ApiservicesService, public dialog: MatDialog, private projectServ: ProjectQEDataService, private route: ActivatedRoute,\r\n private vendServ: VendorDataService, private projQEServ: ProjectQEDataService, private router: Router\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.QualityEngineerId = Number(sessionStorage.getItem('userId'));\r\n this.route.paramMap.subscribe(params => {\r\n this.id = +params.get('id');\r\n this.getVendorData(this.id, this.QualityEngineerId);\r\n });\r\n this.role = sessionStorage.getItem('role');\r\n\r\n this.displayedColumns = ['BOMNumber', 'spacerColumn', 'ModuleName', 'spacerColumn', 'VendorName', 'spacerColumn', 'VendorCode', 'spacerColumn', 'DriveType', 'spacerColumn', 'DriveRating', 'spacerColumn', 'PoNo', 'spacerColumn', 'PoDate', 'spacerColumn', 'PoQty', 'spacerColumn', 'NoOfTls', 'spacerColumn', 'NoOfCubicals', 'spacerColumn', 'NoOfDrives', 'spacerColumn', 'Status', 'spacerColumn', 'TargetDate', 'spacerColumn', 'File', 'spacerColumn', 'Verify'];\r\n\r\n\r\n /* this.AssignActivateVendor = this.formBuilder.group({\r\n \r\n ModuleName: [null, null],\r\n VendorCode: [null, Validators.required],\r\n VendorName: [null, Validators.required],\r\n PoNo: [null, [Validators.required]],\r\n PoDate: [null, [Validators.required]],\r\n DriveType: [null, Validators.required],\r\n PoQty: [null, Validators.required],\r\n NoOfTls: [null, [Validators.required]],\r\n NoOfCubicals: [null, Validators.required],\r\n NoOfDrives: [null, Validators.required]\r\n }); */\r\n }\r\n\r\n\r\n tbldata() {\r\n this.vendordataSource = new MatTableDataSource(UploadVendorData);\r\n this.vendordataSource.paginator = this.paginator;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.vendordataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n backClick() {\r\n this.router.navigate(['/ProjectDetailsQE']);\r\n }\r\n onClickVerify(data: any, event: any) {\r\n debugger;\r\n if (confirm(\"Are you sure you want to verify the material details?\")) {\r\n this.wiringTableSave.WiringTableId = data.id;\r\n this.wiringTableSave.isVerified = event.checked;\r\n this.wiringTableSave.updatedBy = Number(sessionStorage.getItem('userId'));\r\n this.projQEServ.saveVerification(this.wiringTableSave).subscribe((data: any) => {\r\n this.projQEServ.snackBarLoader('Verified successfully', 'Done', '1000', 'red-snackbar');\r\n this.getVendorData(this.id, this.QualityEngineerId);\r\n });\r\n }\r\n else {\r\n this.getVendorData(this.id, this.QualityEngineerId);\r\n }\r\n\r\n }\r\n\r\n\r\n onMaterialClick(element: any) {\r\n debugger;\r\n const dialogRef = this.dialog.open(MaterialDetailsQE, {\r\n\r\n data: {\r\n id: element.id, BOMNumber: element.bomNumber, ModuleName: element.moduleName\r\n },\r\n height: '85%',\r\n width: '85%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getMaterialReviewList();\r\n\r\n\r\n });\r\n }\r\n getMaterialReviewList() {\r\n\r\n }\r\n AssignEachVendor(inputData, $event) {\r\n\r\n\r\n if (!confirm(\"Are you sure you want to assign this request? \")) {\r\n $event.stopPropagation();\r\n return false;\r\n }\r\n else {\r\n this.wiringTableSave.WiringTableId = inputData.id\r\n //var WiringTableId= inputData.id\r\n\r\n this.projectServ.assignQualityEngineer(this.wiringTableSave).subscribe({\r\n next: (val: any) => {\r\n this.getVendorData(this.id, this.QualityEngineerId);\r\n this.projectServ.snackBarLoader('Assigned Successfully', 'Done', '1000', 'red-snackbar')\r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n return false;\r\n }\r\n });\r\n\r\n return true;\r\n\r\n }\r\n }\r\n\r\n\r\n disputevendorMaterial(data: any) {\r\n const dialogRef = this.dialog.open(DisputeQEListingDialog, {\r\n data: { id: data.id, projectId: this.id, bomNumber: data.bomNumber, bomNumberId: data.bomNumberId, moduleName: data.moduleName, status: data.status, displayedColumns: this.displayedColumns, projStatus: data.projectStatus },\r\n height: '95%',\r\n width: '95%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getVendorData(this.id, this.QualityEngineerId);\r\n\r\n });\r\n\r\n }\r\n\r\n getVendorData(projectId, QualityEngineerId) {\r\n this.projQEServ.getVendorDataList(projectId, this.QualityEngineerId).subscribe((data: any) => {\r\n // console.log(\"data from service \"+JSON.stringify(data));\r\n /* this.VendorDialogData= data; */\r\n console.log(data);\r\n this.vendordataSource = new MatTableDataSource(data);\r\n const status = this.vendordataSource.filteredData.map(item => item.status == 'New');\r\n const isDisplayAssign1 = this.vendordataSource.filteredData.map(item => item.isDisplayAssign == true);\r\n const hasTrue = status.some(v => v);\r\n const isDisplayAssign = isDisplayAssign1.some(v => v);\r\n if (hasTrue) { this.showAssign = true; } else { this.showAssign = false; }\r\n if (isDisplayAssign == false && data.length != 0) { this.showNewVendor = false; } else { this.showNewVendor = true; }\r\n\r\n })\r\n }\r\n\r\n AssignVendor() {\r\n\r\n this.vendServ.getWiringTableStatus(this.id).subscribe((data: any) => {\r\n const IsSubmitEnabled = data[0].isSubmitEnabled;\r\n const wiringTableList = data[0].wiringTableList\r\n\r\n if (!IsSubmitEnabled) {\r\n this.vendServ.snackBarLoader('Please create vendor details for wiring table -' + wiringTableList, 'Done', '1000', 'red-snackbar');\r\n return;\r\n }\r\n else {\r\n if (confirm(\"Do you want to assign this request to Vendor?\")) {\r\n for (let i = 0; i < this.vendordataSource.filteredData.length; i++) {\r\n this.wiringTableSave.WiringTableId = this.vendordataSource.filteredData[i].id;\r\n this.commonWiringTableSave.push({\r\n WiringTableId: this.wiringTableSave.WiringTableId,\r\n VendorId: 0,\r\n PurchaceOrderNo: '',\r\n PurchaceOrderDate: '',\r\n PurchaceOrderQty: 0,\r\n NoOfTls: 0,\r\n NoOfCubicles: 0,\r\n NoOfdrives: 0,\r\n DriveType: '',\r\n DriveRating: '',\r\n createdBy: 0,\r\n TargetDate: '',\r\n ApplicationDetails: '',\r\n isVerified: false,\r\n updatedBy: 0\r\n })\r\n }\r\n\r\n }\r\n }\r\n });\r\n }\r\n vendortbldata() {\r\n this.vendordataSource = new MatTableDataSource(UploadVendorData);\r\n }\r\n keepAttachment(element) {\r\n element.fileName = this.changedFileName;\r\n element.fileExtension = this.changedFileExtn;\r\n element.fileDisplay = true;\r\n element.chooseFile = false;\r\n }\r\n changeAttachment(element) {\r\n debugger;\r\n element.chooseFile = true;\r\n this.changedFileName = element.fileName;\r\n this.changedFileExtn = element.fileExtension;\r\n element.fileName = '',\r\n element.fileExtension = '';\r\n element.fileDisplay = false;\r\n }\r\n onFileSelected(event: Event, element) {\r\n const input = event.target as HTMLInputElement;\r\n if (input.files && input.files.length > 0) {\r\n const file = input.files[0];\r\n if (file.name.split('.')[1] != 'xlsx') {\r\n this.vendServ.snackBarLoader('Only .xlsx files are allowed', 'Done', '1000', 'red-snackbar');\r\n input.value = '';\r\n return;\r\n } else {\r\n debugger;\r\n element.fileName = file.name;\r\n element.fileExtension = element.fileName.split('.')[1];\r\n element.fileDisplay = true;\r\n this.attachmentUpdate.ProjectCclassAssemblyDtlId = element.id;\r\n this.attachmentUpdate.FileName = file.name;\r\n this.attachmentUpdate.FileExtension = element.fileExtension;\r\n this.attachmentUpdate.IsABB = true;\r\n this.attachmentUpdate.IsVendor = false;\r\n this.attachmentUpdate.CategoryId = 0;\r\n this.attachmentUpdate.Id = 0;\r\n this.attachmentUpdate.Link = '';\r\n this.attachmentUpdate.Remark = '';\r\n this.attachmentUpdate.UploadedDate = new Date();\r\n /* this.projectServ.ABBAttachmentSave(this.attachmentUpdate).subscribe((data:any)=>{\r\n if(data !=\"\")\r\n {\r\n debugger;\r\n this.vendServ.AddFileDetails(file, this.attachmentUpdate.ProjectCclassAssemblyDtlId).subscribe((data:any)=>{ \r\n }); \r\n this.vendServ.snackBarLoader('Submitted Successfully', 'Done', '1000', 'red-snackbar');\r\n }\r\n this.getVendorData(this.id);\r\n \r\n }); */\r\n }\r\n }\r\n }\r\n onFileChange(event: any) {\r\n const file = event.target.files[0];\r\n if (file) {\r\n this.vendortbldata();\r\n }\r\n }\r\n // downloadFile(element) {\r\n // var data1 = element.fileName;\r\n // this.vendServ.GetFileByName(data1).subscribe((data2: any) => {\r\n // var content = data2;\r\n // console.log(content);\r\n // this.SaveDemo(content, data1);\r\n // });\r\n // }\r\n // base64ToArrayBuffer(base64: any): ArrayBuffer {\r\n // var binary_string = window.atob(base64);\r\n // var len = binary_string.length;\r\n // var bytes = new Uint8Array(len);\r\n // for (var i = 0; i < len; i++) {\r\n // bytes[i] = binary_string.charCodeAt(i);\r\n // }\r\n // return bytes.buffer;\r\n // }\r\n // SaveDemo(data2: any, data: string) {\r\n // var bytes = this.base64ToArrayBuffer(data2);\r\n // let file = new Blob([bytes], { type: '' });\r\n // saveAs(file, data);\r\n // }\r\n\r\n onDeleteVendor(data: any) {\r\n\r\n if (confirm(\"Are you sure you want to delete the vendor details: \")) {\r\n this.getVendorData(this.id, this.QualityEngineerId);\r\n }\r\n }\r\n\r\n onClear() {\r\n this.AssignActivateVendor.reset();\r\n }\r\n\r\n\r\n\r\n shouldShowButton(row: any): boolean {\r\n if (row.status == \"Submitted\" && (row.projectStatus == \"WIP\" || row.projectStatus == \"Closed\")) {\r\n return true;\r\n }\r\n else\r\n return false;\r\n }\r\n getColor(row: any): string {\r\n if (row.isResolvedDispute == true) {\r\n return \"blue\";\r\n }\r\n else\r\n return \"black\";\r\n }\r\n\r\n}\r\n\r\n\r\n\r\nexport interface WiringTableUpdate {\r\n WiringTableId: number,\r\n VendorId: number\r\n PurchaceOrderNo: string,\r\n PurchaceOrderDate: string,\r\n PurchaceOrderQty: number,\r\n NoOfTls: number,\r\n NoOfCubicles: number,\r\n NoOfdrives: number,\r\n DriveType: string,\r\n DriveRating: string,\r\n createdBy: number,\r\n TargetDate: string,\r\n ApplicationDetails: string\r\n}\r\n\r\n\r\n\r\nexport interface DisputeSave {\r\n id: number,\r\n wiringTableId: number,\r\n remarks: string,\r\n resolutionRemarks: string,\r\n status: string,\r\n isActive: boolean,\r\n createdBy: number,\r\n createdDate: Date,\r\n updatedBy: number,\r\n updatedDate: Date\r\n}\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './disputeRequest.component.html',\r\n styleUrls: ['./review-verify-material-details.component.scss']\r\n})\r\n\r\nexport class DisputeQERequestDialog {\r\n /**\r\n *\r\n */\r\n form: FormGroup;\r\n reopenform: FormGroup;\r\n bomnoList: BOMMST[] = [];\r\n selectedBomNumValue = [];\r\n flag: string = '';\r\n\r\n WiringTableList: WiringTableMST[] = [];\r\n wiringTableFormControl = new FormControl();\r\n selectBOMNumFormControl = new FormControl();\r\n selectedBomId: number;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n selectedFiles: File[] = [];\r\n disputeAttachmentDataSource: any;\r\n QualityEngineerId: number\r\n\r\n disputeSave: DisputeSave = {\r\n id: 0, wiringTableId: 0, remarks: '', resolutionRemarks: '', status: '', isActive: true,\r\n createdBy: 1, createdDate: new Date(), updatedBy: 1, updatedDate: new Date()\r\n }\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DisputeDialogData, private _snackBar: MatSnackBar, private formBuilder: FormBuilder, public dialogRef: MatDialogRef, public dialog: MatDialog, private projectServ: ProjectQEDataService, private disputeServ: DisputeService,\r\n private vendServ: VendorDataService) {\r\n this.form = this.formBuilder.group({\r\n Remarks: ['Article missing'], // Default value set here\r\n // other form controls...\r\n });\r\n }\r\n displayedColumnsDisputeAttachment: string[] = ['FileName'];\r\n attachmentUpdate: AttachmentSave = {\r\n Id: 0, ProjectCclassAssemblyDtlId: 0, FileName: '', FileExtension: '', UploadedDate: new Date(),\r\n Link: '', CategoryId: 0, IsActive: true, IsABB: false, IsVendor: false, Remark: '', ProjectCclassAssemblyInvoicId: null, ProjectCClassAssemblyDisputeId: null, DisputeRaisedCategory: null\r\n }\r\n attachmentUpdateBulk: AttachmentSave[] = [];\r\n displayedColumns: string[] = ['VendorCode', 'PoNo'];\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n vendordataSource!: MatTableDataSource;\r\n\r\n ngOnInit() {\r\n this.QualityEngineerId = Number(sessionStorage.getItem('userId'));\r\n this.flag = this.data.flag;\r\n this.selectedBomId = this.data?.bomNumberId;\r\n if (this.flag == 'exist') {\r\n debugger;\r\n this.wiringTableIdSelectionReopen(this.data?.wiringTableId, this.data.id)\r\n }\r\n\r\n this.form = this.formBuilder.group({\r\n Id: 0,\r\n Remarks: [null, null],\r\n ResolutionRemarks: [null, null]\r\n });\r\n\r\n this.reopenform = this.formBuilder.group({\r\n Id: 0,\r\n Remarks: [null, null],\r\n ResolutionRemarks: [null, null],\r\n disputeStatus2: [\"reopened\", null]\r\n });\r\n this.loadDisputeAttachmentDetails();\r\n }\r\n /*getBOMDetail(projectId, id) {\r\n\r\n this.projectServ.getBOMDetailList(projectId, id).subscribe((data: any) => {\r\n this.bomnoList = data;\r\n });\r\n }\r\n\r\n bomNumSelection(bomid: number) {\r\n this.selectedBomId = bomid;\r\n this.form.controls['selectBOMNumFormControl'].patchValue(bomid);\r\n this.WiringTableList = [];\r\n\r\n this.wiringTableFormControl.reset();\r\n\r\n this.projectServ.getWiringTbleList(bomid, 0).subscribe((data: any) => {\r\n this.WiringTableList = data;\r\n });\r\n }\r\n wiringTableIdSelection(wiringTableId: number) {\r\n this.disputeServ.GetDispute(wiringTableId, 0).subscribe((data: any) => {\r\n if (data.length > 0) {\r\n this.form = this.formBuilder.group({\r\n Id: [data[0]?.id],\r\n selectBOMNumFormControl: [this.selectedBomId, Validators.required],\r\n wiringTableFormControl: [data[0].wiringTableId, Validators.required],\r\n Remarks: [data[0].remarks, null],\r\n ResolutionRemarks: [data[0].resolutionRemarks, null],\r\n disputeStatus2: [\"reopened\", null]\r\n });\r\n }\r\n else {\r\n this.form.controls['Remarks'].reset();\r\n }\r\n });\r\n }*/\r\n loadDisputeAttachmentDetails() {\r\n this.disputeServ.getDisputeAttachmentList(this.data.id).subscribe((data: any) => {\r\n this.disputeAttachmentDataSource = new MatTableDataSource(data);\r\n this.disputeAttachmentDataSource.paginator = this.paginator;\r\n console.log(this.disputeAttachmentDataSource);\r\n })\r\n }\r\n wiringTableIdSelectionReopen(wiringTableId: number, id: number) {\r\n this.disputeServ.GetDisputeForQE(wiringTableId, id, this.QualityEngineerId).subscribe((data: disputeFormData[]) => {\r\n if (data.length > 0 && id > 0) {\r\n let checkedData = data.find(x => x.isChecked)\r\n this.reopenform = this.formBuilder.group({\r\n Id: [checkedData.id],\r\n Remarks: [\"\", null],\r\n ResolutionRemarks: [{value:checkedData.resolutionRemarks, disabled:true}],\r\n disputeStatus2: [checkedData.disputeStatus.toLowerCase(), null]\r\n });\r\n }\r\n else {\r\n this.reopenform.controls['Remarks'].reset();\r\n }\r\n });\r\n }\r\n onClear() {\r\n this.form.reset();\r\n this.reopenform.controls['Remarks'].patchValue(null);\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n\r\n }\r\n deleteAttachment(ele) {\r\n console.log('dataaa', ele)\r\n if (confirm(\"Are you sure you want to delete?\")) {\r\n var data1 = ele.attachmentId + '_' + ele.fileName;\r\n this.disputeServ.DeleteFileByName(data1).subscribe((data2: any) => {\r\n var content = data2;\r\n console.log(content);\r\n this.disputeServ.deleteDisputeAttachment(ele.attachmentId).subscribe(() => {\r\n this.projectServ.snackBarLoader('Deleted Successfully', 'Done', '1000', 'red-snackbar');\r\n this.disputeServ.getDisputeAttachmentList(this.data.id).subscribe((data: any) => {\r\n this.disputeAttachmentDataSource = new MatTableDataSource(data);\r\n this.disputeAttachmentDataSource.paginator = this.paginator;\r\n console.log(this.disputeAttachmentDataSource);\r\n })\r\n });\r\n });\r\n }\r\n }\r\n onFileSelected(event: Event): void {\r\n const input = event.target as HTMLInputElement;\r\n this.selectedFiles = [];\r\n if (input.files) {\r\n Array.from(input.files).forEach(file => this.selectedFiles.push(file));\r\n console.log(this.selectedFiles);\r\n }\r\n }\r\n onReopenFileSelected(event: Event): void {\r\n this.selectedFiles = [];\r\n const input = event.target as HTMLInputElement;\r\n\r\n if (input.files) {\r\n Array.from(input.files).forEach(file => this.selectedFiles.push(file));\r\n console.log(this.selectedFiles);\r\n }\r\n }\r\n downloadFile(element) {\r\n var data1 = element.attachmentId + '_' + element.fileName;\r\n this.disputeServ.GetFileByName(data1).subscribe((data2: any) => {\r\n var content = data2;\r\n console.log(content);\r\n this.SaveDemo(content, element.fileName);\r\n });\r\n }\r\n base64ToArrayBuffer(base64: any): ArrayBuffer {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n }\r\n SaveDemo(data2: any, data: string) {\r\n var bytes = this.base64ToArrayBuffer(data2);\r\n let file = new Blob([bytes], { type: '' });\r\n saveAs(file, data);\r\n }\r\n onClickSave() {\r\n\r\n var userId = sessionStorage.getItem('userId');\r\n if (this.reopenform.controls['Id'].value != 0) {\r\n if (!this.reopenform.value.Remarks) {\r\n this.projectServ.snackBarLoader('Please enter remarks', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.reopenform.valid) {\r\n this.disputeSave.id = this.reopenform.controls['Id'].value,\r\n this.disputeSave.wiringTableId = this.data.wiringTableId;\r\n this.disputeSave.remarks = this.reopenform.controls['Remarks'].value;\r\n this.disputeSave.status = 'reopened';\r\n this.disputeSave.updatedBy = Number(userId);\r\n this.disputeSave.updatedDate = new Date();\r\n this.disputeSave.createdBy = Number(userId);\r\n this.attachmentUpdateBulk = [];\r\n //save attachment\r\n for (let i = 0; i < this.selectedFiles.length; i++) {\r\n\r\n if (this.selectedFiles[i].name.split('.')[this.selectedFiles[i].name.split('.').length - 1] != 'xlsx' && this.selectedFiles[i].name.split('.')[this.selectedFiles[i].name.split('.').length - 1] != 'xls' && this.selectedFiles[i].name.split('.')[this.selectedFiles[i].name.split('.').length - 1] != 'pdf') {\r\n this.projectServ.snackBarLoader('Only .xlsx,.xls or pdf files are allowed', 'Done', '1000', 'red-snackbar');\r\n return;\r\n } else {\r\n\r\n this.attachmentUpdate.ProjectCclassAssemblyDtlId = this.data.wiringTableId;\r\n this.attachmentUpdate.FileName = this.selectedFiles[i].name;\r\n this.attachmentUpdate.FileExtension = this.selectedFiles[i].name.split('.')[this.selectedFiles[i].name.split('.').length - 1];\r\n this.attachmentUpdate.IsABB = true;\r\n this.attachmentUpdate.IsVendor = false;\r\n this.attachmentUpdate.CategoryId = 3;\r\n this.attachmentUpdate.Id = 0;\r\n this.attachmentUpdate.Link = '';\r\n this.attachmentUpdate.Remark = '';\r\n this.attachmentUpdate.UploadedDate = new Date();\r\n this.attachmentUpdate.ProjectCClassAssemblyDisputeId = this.data.id;\r\n\r\n\r\n this.attachmentUpdateBulk.push({\r\n Id: this.attachmentUpdate.Id,\r\n ProjectCclassAssemblyDtlId: this.attachmentUpdate.ProjectCclassAssemblyDtlId,\r\n FileName: this.attachmentUpdate.FileName,\r\n FileExtension: this.attachmentUpdate.FileExtension,\r\n IsActive: true,\r\n IsABB: this.attachmentUpdate.IsABB,\r\n IsVendor: this.attachmentUpdate.IsVendor,\r\n CategoryId: this.attachmentUpdate.CategoryId,\r\n Link: this.attachmentUpdate.Link,\r\n Remark: this.attachmentUpdate.Remark,\r\n UploadedDate: this.attachmentUpdate.UploadedDate,\r\n ProjectCclassAssemblyInvoicId: 0,\r\n ProjectCClassAssemblyDisputeId: this.attachmentUpdate.ProjectCClassAssemblyDisputeId,\r\n DisputeRaisedCategory: \"Reopened\"\r\n });\r\n\r\n }\r\n }\r\n\r\n this.disputeServ.saveDispute(this.disputeSave).subscribe({\r\n next: (val: any) => {\r\n\r\n for (let i = 0; i < this.selectedFiles.length; i++) {\r\n this.attachmentUpdateBulk[i].ProjectCClassAssemblyDisputeId = val;\r\n }\r\n\r\n this.disputeServ.DisputeAttachmentSave(this.attachmentUpdateBulk).subscribe((data: any) => {\r\n if (data != \"\") {\r\n debugger;\r\n this.disputeServ.AddFileDetails(this.selectedFiles, this.attachmentUpdate.ProjectCclassAssemblyDtlId).subscribe((data: any) => {\r\n this.selectedFiles = [];\r\n });\r\n //this.vendServ.snackBarLoader('File uploaded successfully.', 'Done', '1000', 'red-snackbar');\r\n const inputElements = document.querySelectorAll('input[type=\"file\"]');\r\n inputElements.forEach((element: any) => {\r\n element.value = '';\r\n });\r\n this.wiringTableIdSelectionReopen(this.data?.wiringTableId, 0);\r\n this.projectServ.snackBarLoader('Dispute reopened Successfully', 'Done', '1000', 'red-snackbar');\r\n this.dialogRef.close();\r\n }\r\n /* this.dialogRef.close(); */\r\n });\r\n\r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar');\r\n this.dialogRef.close();\r\n }\r\n });\r\n\r\n }\r\n }\r\n else {\r\n if (!this.form.value.Remarks) {\r\n this.projectServ.snackBarLoader('Please enter remarks', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n if (this.form.valid) {\r\n var Id;\r\n if (this.form.controls['Id'].value == null)\r\n Id = 0;\r\n else\r\n Id = this.form.controls['Id'].value;\r\n\r\n this.disputeSave.id = Id,\r\n this.disputeSave.wiringTableId = this.data.id;\r\n this.disputeSave.remarks = this.form.controls['Remarks'].value;\r\n this.disputeSave.resolutionRemarks = this.form.controls['ResolutionRemarks'].value;\r\n this.disputeSave.status = 'New';\r\n this.disputeSave.createdBy = Number(userId);\r\n this.attachmentUpdateBulk = [];\r\n //save attachment\r\n for (let i = 0; i < this.selectedFiles.length; i++) {\r\n if (this.selectedFiles[i].name.split('.')[this.selectedFiles[i].name.split('.').length - 1] != 'xlsx' && this.selectedFiles[i].name.split('.')[this.selectedFiles[i].name.split('.').length - 1] != 'xls' && this.selectedFiles[i].name.split('.')[this.selectedFiles[i].name.split('.').length - 1] != 'pdf') {\r\n this.projectServ.snackBarLoader('Only .xlsx,.xls or pdf files are allowed', 'Done', '1000', 'red-snackbar');\r\n return;\r\n } else {\r\n\r\n this.attachmentUpdate.ProjectCclassAssemblyDtlId = this.data.id;\r\n this.attachmentUpdate.FileName = this.selectedFiles[i].name;\r\n this.attachmentUpdate.FileExtension = this.selectedFiles[i].name.split('.')[this.selectedFiles[i].name.split('.').length - 1];\r\n this.attachmentUpdate.IsABB = true;\r\n this.attachmentUpdate.IsVendor = false;\r\n this.attachmentUpdate.CategoryId = 3;\r\n this.attachmentUpdate.Id = 0;\r\n this.attachmentUpdate.Link = '';\r\n this.attachmentUpdate.Remark = '';\r\n this.attachmentUpdate.UploadedDate = new Date();\r\n this.attachmentUpdateBulk.push({\r\n Id: this.attachmentUpdate.Id,\r\n ProjectCclassAssemblyDtlId: this.attachmentUpdate.ProjectCclassAssemblyDtlId,\r\n FileName: this.attachmentUpdate.FileName,\r\n FileExtension: this.attachmentUpdate.FileExtension,\r\n IsActive: true,\r\n IsABB: this.attachmentUpdate.IsABB,\r\n IsVendor: this.attachmentUpdate.IsVendor,\r\n CategoryId: this.attachmentUpdate.CategoryId,\r\n Link: this.attachmentUpdate.Link,\r\n Remark: this.attachmentUpdate.Remark,\r\n UploadedDate: this.attachmentUpdate.UploadedDate,\r\n ProjectCclassAssemblyInvoicId: 0,\r\n ProjectCClassAssemblyDisputeId: 0,\r\n DisputeRaisedCategory: \"New\"\r\n });\r\n\r\n }\r\n }\r\n this.disputeServ.saveDispute(this.disputeSave).subscribe({\r\n next: (val: any) => {\r\n debugger;\r\n for (let i = 0; i < this.attachmentUpdateBulk.length; i++) {\r\n this.attachmentUpdateBulk[i].ProjectCClassAssemblyDisputeId = val;\r\n }\r\n this.disputeServ.DisputeAttachmentSave(this.attachmentUpdateBulk).subscribe((data: any) => {\r\n if (data != \"\") {\r\n debugger;\r\n this.disputeServ.AddFileDetails(this.selectedFiles, this.attachmentUpdate.ProjectCclassAssemblyDtlId).subscribe((data: any) => {\r\n this.selectedFiles = [];\r\n });\r\n //this.vendServ.snackBarLoader('File uploaded successfully.', 'Done', '1000', 'red-snackbar');\r\n const inputElements = document.querySelectorAll('input[type=\"file\"]');\r\n inputElements.forEach((element: any) => {\r\n element.value = '';\r\n });\r\n this.wiringTableIdSelectionReopen(this.data?.id, 0);\r\n this.projectServ.snackBarLoader('Dispute raised Successfully', 'Done', '1000', 'red-snackbar');\r\n this.dialogRef.close();\r\n }\r\n /* this.dialogRef.close(); */\r\n });\r\n\r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar');\r\n this.dialogRef.close();\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n}\r\nexport interface disputeStatusDialogData {\r\n id: number;\r\n disputeStatus: string;\r\n}\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './dispute-listing.component.html',\r\n styleUrls: ['./review-verify-material-details.component.scss']\r\n})\r\n\r\nexport class DisputeQEListingDialog {\r\n disputedataSource!: MatTableDataSource;\r\n ProjectId: number = 0;\r\n Status: string = '';\r\n statusList: disputeStatusDialogData[] = [];\r\n role: string;\r\n projectStatus: string;\r\n QualityEngineerId: number\r\n\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n\r\n disputeSave: DisputeSave = {\r\n id: 0, wiringTableId: 0, remarks: '', resolutionRemarks: '', status: '', isActive: true,\r\n createdBy: 1, createdDate: new Date(), updatedBy: 1, updatedDate: new Date()\r\n }\r\n\r\n displayedColumns: string[] = ['SequenceNo','RaisedRemarks', 'ResolvedRemarks', 'Status', 'DisputeStatus'];/* 'FileName', */\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DisputeDialogData, private router: Router, public dialogRef: MatDialogRef, private disputeServ: DisputeService, public dialog: MatDialog, private projectServ: ProjectQEDataService) {\r\n\r\n }\r\n ngOnInit() {\r\n console.log(this.data);\r\n this.Status = this.data.status;\r\n console.log(\"qqq\" + this.data.projStatus);\r\n this.projectStatus = this.data.projStatus\r\n this.QualityEngineerId = Number(sessionStorage.getItem('userId'));\r\n this.getDispute();\r\n console.log(sessionStorage.getItem('role'))\r\n this.role = sessionStorage.getItem('role');\r\n\r\n\r\n }\r\n\r\n getDispute() {\r\n debugger;\r\n this.disputeServ.GetDisputeForQE(this.data.id, 0, this.QualityEngineerId).subscribe((data: any) => {\r\n this.disputetbldata(data);\r\n });\r\n }\r\n onClickReopen(data: any) {\r\n const dialogRef = this.dialog.open(DisputeQERequestDialog, {\r\n data: { id: data.id, projectId: this.data.projectId, bomNumber: this.data.bomNumber, bomNumberId: this.data.bomNumberId, wiringTableId: this.data.id, moduleName: this.data.moduleName, Status: this.data.status, displayedColumns: this.displayedColumns, flag: 'exist' },\r\n height: '90%',\r\n width: '85%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getDispute();\r\n\r\n });\r\n }\r\n onClickCloseStatus(data: any) {\r\n var userId = sessionStorage.getItem('userId');\r\n\r\n this.disputeSave.id = data.id,\r\n this.disputeSave.wiringTableId = data.wiringTableId;\r\n this.disputeSave.remarks = \"\";\r\n this.disputeSave.resolutionRemarks = \"\";\r\n this.disputeSave.status = 'closed';\r\n this.disputeSave.createdBy = Number(userId);\r\n this.disputeServ.saveDispute(this.disputeSave).subscribe({\r\n next: (val: any) => {\r\n this.projectServ.snackBarLoader('Dispute ' + this.disputeSave.status + ' Successfully', 'Done', '1000', 'red-snackbar')\r\n //this.dialogRef.close(true);\r\n this.getDispute();\r\n },\r\n error: (err: any) => {\r\n this.projectServ.snackBarLoader(err.error, 'Done', '1000', 'red-snackbar')\r\n }\r\n });\r\n //this.dialogRef.close();\r\n this.getDispute();\r\n }\r\n onRaiseDispute() {\r\n debugger;\r\n const dialogRef = this.dialog.open(DisputeQERequestDialog, {\r\n data: { id: this.data.id, projectId: this.data.projectId, bomNumber: this.data.bomNumber, bomNumberId: this.data.bomNumberId, moduleName: this.data.moduleName, Status: this.data.status, displayedColumns: this.displayedColumns, flag: 'new' },\r\n height: '78%',\r\n width: '75%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n debugger;\r\n this.getDispute();\r\n\r\n });\r\n }\r\n downloadFile(id, fileName) {\r\n debugger;\r\n var data1 = id + '_' + fileName;\r\n this.disputeServ.GetFileByName(data1).subscribe((data2: any) => {\r\n var content = data2;\r\n console.log(content);\r\n this.SaveDemo(content, fileName);\r\n });\r\n }\r\n base64ToArrayBuffer(base64: any): ArrayBuffer {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n }\r\n SaveDemo(data2: any, data: string) {\r\n var bytes = this.base64ToArrayBuffer(data2);\r\n let file = new Blob([bytes], { type: '' });\r\n saveAs(file, data);\r\n }\r\n\r\n disputetbldata(data: any) {\r\n this.disputedataSource = new MatTableDataSource(data);\r\n this.disputedataSource.paginator = this.paginator;\r\n console.log(this.disputedataSource);\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n /* addHyperlink(Data: string) {\r\n \r\n \r\n var retValText = \"\"; \r\n \r\n \r\n retValText=Data.replace(/;/g, '
'); \r\n \r\n \r\n \r\n return retValText;\r\n } */\r\n\r\n\r\n addHyperlink(Data: string) {\r\n\r\n const jsonObject = JSON.parse(Data);\r\n var retValText = \"\";\r\n\r\n var retVal = \"\";\r\n for (var key in jsonObject) {\r\n retValText = jsonObject[key].Text;//.replace('; ', ';
'); \r\n\r\n }\r\n\r\n return retValText;\r\n }\r\n\r\n logEmail(email: any) {\r\n console.log('Email:', email);\r\n }\r\n shouldShowReopenButton(row: any, action: any): boolean {\r\n if (action == \"Reopen\") {\r\n if (this.role == \"Quality Engineer\" || this.role == \"Project Engineer\") {\r\n if (row.disputeStatus == \"New\" || row.disputeStatus == \"Reopened\") {\r\n return false;\r\n }\r\n else\r\n return true;\r\n }\r\n\r\n\r\n\r\n }\r\n else if (action == \"Close\") {\r\n if (this.role == \"Quality Engineer\" || this.role == \"Project Engineer\")\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n}\r\n\r\nexport interface Attachments {\r\n cClassName: string;\r\n FileName: string;\r\n FileExtension: string;\r\n IsABB: boolean;\r\n AttachmentId: number;\r\n}\r\nexport interface VerifiedArticleSave {\r\n id: number,\r\n usedQty: number,\r\n verifiedQty: number,\r\n updatedBy: number,\r\n updatedDate: Date,\r\n}\r\nexport interface VerifiedDispatchData {\r\n cClassMatID: number,\r\n cClassId: number,\r\n materialType: string,\r\n //Module: string,\r\n articleName: string,\r\n articleNumber: string,\r\n uom: string,\r\n usedQty: number,\r\n verifiedQty: number,\r\n unitPrice: number,\r\n verifiedPrice: number,\r\n finalPrice: number,\r\n isVerified: boolean\r\n}\r\n@Component({\r\n selector: 'app-dialog3',\r\n templateUrl: './material-details.html',\r\n styleUrls: ['./review-verify-material-details.component.scss']\r\n})\r\n\r\nexport class MaterialDetailsQE {\r\n searchValue: string = '';\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n tempData: any[];\r\n isVerifiedWT: boolean = false;\r\n articlesSaveToSend: VerifiedArticleSave[] = [];\r\n @ViewChild('TABLE') table: ElementRef;\r\n articleSave: VerifiedArticleSave = { id: 0, usedQty: 1, verifiedQty: 1, updatedBy: 1, updatedDate: new Date() }\r\n displayedColumns: string[] = ['Module', 'MaterialType', 'spacerColumn', 'MaterialName', 'MaterialNo', 'spacerColumn', 'UOM', 'spacerColumn', 'UsedQty', 'spacerColumn', 'UnitPrice', 'spacerColumn', 'TotalPrice', 'spacerColumn', 'VerifiedQty', 'spacerColumn', 'VerifiedPrice'];\r\n viewMaterialDataSource: MatTableDataSource;\r\n viewMaterialDataSource2: MatTableDataSource;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: VendorDialogData, private _snackBar: MatSnackBar, private apisrv: ApiservicesService, public dialogRef: MatDialogRef,\r\n private projectQEserv: ProjectQEDataService) { }\r\n ngOnInit() {\r\n this.getMaterialReviewFromCClassIDDetails();\r\n }\r\n onVerifiedQtyChange(element) {\r\n element.verifiedPrice = element.verifiedQty * element.unitPrice;\r\n element.verifiedPrice = element.verifiedPrice.toFixed(2);\r\n }\r\n getMaterialReviewFromCClassIDDetails() {\r\n this.projectQEserv.getMaterialReviewFromCClassIDDetails(this.data.id, 0).subscribe((data: any) => {\r\n this.tempData = data;\r\n this.isVerifiedWT = data?.map(x => x.isVerified)[0];\r\n this.viewMaterialDataSource = new MatTableDataSource(data);\r\n this.viewMaterialDataSource2 = new MatTableDataSource(data);\r\n this.viewMaterialDataSource.paginator = this.paginator;\r\n });\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.searchValue = filterValue;\r\n console.log('search' + this.searchValue)\r\n this.viewMaterialDataSource.filter = filterValue.trim().toLowerCase();\r\n this.viewMaterialDataSource2.filter = filterValue.trim().toLowerCase();\r\n }\r\n exportExcel() {\r\n this.ExportTOExcel();\r\n }\r\n ExportTOExcel() {\r\n var ws: XLSX.WorkSheet = XLSX.utils.table_to_sheet(this.table.nativeElement);\r\n ws['!cols'] = [{ width: 100 }, { width: 0 }, { width: 70 }, { width: 40 }, { width: 20 }, { width: 10 }, { width: 10 }, { width: 20 }];\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n\r\n /* save to file */\r\n debugger;\r\n if ((this.data.BOMNumber?.length + this.data.ModuleName?.length) > 150)\r\n XLSX.writeFile(wb, 'BomNo_' + this.data.BOMNumber.slice(0, 10) + '_WiringTableName_' + this.data.ModuleName.slice(0, 10) + '.xlsx');\r\n else\r\n XLSX.writeFile(wb, 'BomNo_' + this.data.BOMNumber + '_WiringTableName_' + this.data.ModuleName + '.xlsx');\r\n\r\n }\r\n Save() {\r\n var isPositiveVerifiedQty = true;\r\n this.articlesSaveToSend = [];\r\n for (let i = 0; i < this.viewMaterialDataSource.filteredData.length; i++) {\r\n\r\n if (this.viewMaterialDataSource.filteredData[i]?.verifiedQty == null) {\r\n this.projectQEserv.snackBarLoader('Please enter verified quantity', 'Done', '1000', 'red-snackbar');\r\n return;\r\n }\r\n else {\r\n const regex = /^(0|[1-9][0-9]*)$/;\r\n if (!regex.test(this.viewMaterialDataSource.filteredData[i]?.verifiedQty.toString())) {\r\n this.projectQEserv.snackBarLoader('Please enter valid verified quantity. Only Whole numbers are allowed', 'Done', '1000', 'red-snackbar');\r\n return;\r\n // Handle the invalid case (e.g., show an error message)\r\n }\r\n }\r\n this.articleSave.id = this.viewMaterialDataSource.filteredData[i].cClassMatID;\r\n this.articleSave.verifiedQty = this.viewMaterialDataSource.filteredData[i].verifiedQty != null ? this.viewMaterialDataSource.filteredData[i].verifiedQty : this.viewMaterialDataSource.filteredData[i].usedQty;\r\n //this.articleSave.finalPrice= this.dispatchDataSource.filteredData[i].finalPrice !=null ?this.dispatchDataSource.filteredData[i].finalPrice : 0;\r\n this.articlesSaveToSend.push({\r\n id: this.articleSave.id,\r\n usedQty: this.articleSave.usedQty,\r\n verifiedQty: this.articleSave.verifiedQty,\r\n updatedBy: Number(sessionStorage.getItem('userId')),\r\n updatedDate: new Date()\r\n });\r\n\r\n if (this.articleSave.verifiedQty < 0) {\r\n isPositiveVerifiedQty = false;\r\n }\r\n }\r\n if (isPositiveVerifiedQty == false) {\r\n this.projectQEserv.snackBarLoader('Verified quantity value should not be less than 0. Please enter valid verified quantity.', 'Done', '1000', 'red-snackbar');\r\n return;\r\n } else {\r\n this.projectQEserv.saveArticle(this.articlesSaveToSend).subscribe((data: any) => {\r\n this.projectQEserv.snackBarLoader('Updated successfully', 'Done', '1000', 'red-snackbar');\r\n this.dialogRef.close();\r\n });\r\n }\r\n\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n

\r\n Verification Configuration

\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n\r\n
Wiring Table Name {{element.moduleName}} Vendor Code {{element.vendorCode}} Vendor Name {{element.vendorName}} BOM Number {{element.bomNumber}} Drive Type {{element.driveType}} Drive Rating {{element.driveRating}} Purchase Order No {{element.poNo}} Purchase Order Date {{element.poDate}} PO Qty {{element.poQty}} No Of TLs {{element.noOfTls}} No Of Cubicles {{element.noOfCubicals}} No Of Drives {{element.noOfDrives}} Target Date {{element.targetDate}} Status {{element.status}} Actions\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
Verify\r\n \r\n Assign Vendor\r\n \r\n
\r\n
\r\n\r\n
","
\r\n
\r\n

Dispute Request

\r\n
\r\n
\r\n close\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n Raise Dispute\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Dispute Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n (choose only .xlsx,xls,pdf)\r\n

\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Dispute Reopened\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n Raised Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n Resolved Remarks\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n (choose only .xlsx,xls,pdf)\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
FileName {{element.fileName}}\r\n get_app\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
","\r\n\r\n
\r\n
\r\n \r\n

\r\n Dispute Listing

\r\n
\r\n
\r\n close\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n BOM Number : {{data.bomNumber}}\r\n
\r\n
\r\n Wiring Table Name : {{data.moduleName}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n
#Dispute \r\n {{element.sequenceNo}} \r\n Raised Remarks \r\n \r\n
    \r\n
      \r\n
    1. \r\n {{remarkDetails.disputeReason}}\r\n
      \r\n {{remarkDetails.disputeCreateBy}}
      \r\n {{remarkDetails.disputeCreatedDate}}\r\n
        \r\n
      • \r\n {{fileList.fileName.slice(0, 20)}}\r\n get_app\r\n
      • \r\n
      \r\n
    2. \r\n {{element.disputeClosedBy}}
      \r\n {{element.disputeClosedDate}}\r\n\r\n
    \r\n
\r\n\r\n
Resolved Remarks \r\n
    \r\n
      \r\n
    1. \r\n {{remarkDetails.disputeResolution}}\r\n
      \r\n {{remarkDetails.disputeResolvedBy}}
      \r\n {{remarkDetails.disputeResolveDate}}\r\n
        \r\n
      • \r\n {{fileList.fileName.slice(0, 20)}}\r\n get_app\r\n
      • \r\n
      \r\n
    2. \r\n
    \r\n
\r\n \r\n \r\n
Status {{element.disputeStatus }} Action \r\n Reopen   \r\n \r\n \r\n Close\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n\r\n \r\n\r\n\r\n \r\n \r\n","
\r\n
\r\n

Material Details

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n \r\n\r\n Search \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Wiring Table Name \r\n {{element.moduleName}} Material Type {{element.materialType}} Article Name {{element.materialName}} Article No {{element.materialNo}} UOM {{element.uom}} Used Qty {{element.usedQty}} Unit Price {{element.unitPrice}} Final Price {{element.finalPrice}} Verified Qty Verified Price {{element.verifiedPrice}}
No records foundNo data matching the filter
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
","import { Component, ElementRef, Inject, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { UploadVendorData, VendorDialogData } from '../ProjectDetails_ABB/projectDetails_ABB.component';\r\nimport { BOMMST, DialogData, VendorMST, WiringTableMST } from '../ProjectDetails_ABB/AddvendorConfigDialog';\r\nimport { AttachmentSave } from '../create-assign-vendor/create-assign-vendor.component';\r\nimport { formatDate } from '@angular/common';\r\nimport { DatePipe } from '@angular/common';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { VendorDataService } from '../Services/vendor-data.service';\r\nimport { RoleMaster } from './role-master.component';\r\nimport { MasterService } from '../Services/master.service';\r\n\r\n@Component({\r\n selector: 'app-AddUserRoleMap',\r\n templateUrl: './AddRoleMaster.html',\r\n styleUrls: ['./role-master.component.scss']\r\n})\r\n\r\nexport class AddRoleMaster {\r\n /**\r\n *\r\n */\r\n addRoleForm: FormGroup;\r\n selectedrole = new FormControl();\r\n selectedRoleOption: number = 0;\r\n selectedBomNumValue = [];\r\n displayedColumns: string[] = [];\r\n roleList: RoleMaster[] = [];\r\n wiringTableFormControl = new FormControl();\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n\r\n RoleSave: RoleMaster = { id: 0, rolename: '', isActive: '', createdBy: 0, createdDate: new Date(), updatedBy: 0, updatedDate: new Date() }\r\n attachmentAdd: AttachmentSave = {\r\n Id: 0, ProjectCclassAssemblyDtlId: 0, FileName: '', FileExtension: '', UploadedDate: new Date(),\r\n Link: '', CategoryId: 0, IsActive: true, IsABB: false, IsVendor: false, Remark: '', ProjectCclassAssemblyInvoicId: null,ProjectCClassAssemblyDisputeId:null,DisputeRaisedCategory:null\r\n }\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData, private formBuilder: FormBuilder, public dialogRef: MatDialogRef,\r\n private masterServ: MasterService, private datePipe: DatePipe, private vendorData: VendorDataService) {\r\n }\r\n emailRegex = '^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$';\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n ngOnInit() {\r\n this.addRoleForm = this.formBuilder.group({\r\n rolename: [null, Validators.required],\r\n isActive: [true]\r\n });\r\n }\r\n onClear() {\r\n this.addRoleForm.reset();\r\n this.addRoleForm.controls['isActive'].patchValue(true);\r\n }\r\n\r\n\r\n onsubmit() {\r\n if (!this.addRoleForm.value.rolename) {\r\n this.masterServ.snackBarLoader('Please enter Role Name', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n if (this.addRoleForm.valid) {\r\n this.RoleSave.rolename = this.addRoleForm.value.rolename;\r\n this.RoleSave.isActive = this.addRoleForm.value.isActive;\r\n this.RoleSave.createdBy = Number(sessionStorage.getItem('userId'))\r\n this.RoleSave.createdDate = new Date();\r\n this.masterServ.AddUpdateRole(this.RoleSave).subscribe((data: any) => {\r\n this.dialogRef.close();\r\n });\r\n }\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n

Add Role

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n Role Name\r\n \r\n \r\n
\r\n
\r\n Active\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, ElementRef, Inject, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { UploadVendorData, VendorDialogData } from '../ProjectDetails_ABB/projectDetails_ABB.component';\r\nimport { BOMMST, DialogData, VendorMST, WiringTableMST } from '../ProjectDetails_ABB/AddvendorConfigDialog';\r\nimport { AttachmentSave } from '../create-assign-vendor/create-assign-vendor.component';\r\nimport { formatDate } from '@angular/common';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Observable, of } from 'rxjs';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { VendorDataService } from '../Services/vendor-data.service';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { RoleMaster } from './role-master.component';\r\nimport { MasterService } from '../Services/master.service';\r\n\r\n@Component({\r\n selector: 'app-EditUserRoleMap',\r\n templateUrl: './EditRoleMaster.html',\r\n styleUrls: ['./role-master.component.scss']\r\n})\r\n\r\nexport class EditRoleMaster {\r\n /**\r\n *\r\n */\r\n editRoleForm: FormGroup;\r\n selectedOption: string = '';\r\n selectedrole = new FormControl();\r\n selectedBomNumValue = [];\r\n displayedColumns: string[] = [];\r\n roleList: RoleMaster[] = [];\r\n wiringTableFormControl = new FormControl();\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n\r\n VendorList: VendorMST[] = [];\r\n selectedRoleOption: number = 0;\r\n\r\n RoleSave: RoleMaster = { id: 0, rolename: '', isActive: '', createdBy: 0, createdDate: new Date(), updatedBy: 0, updatedDate: new Date() }\r\n attachmentAdd: AttachmentSave = {\r\n Id: 0, ProjectCclassAssemblyDtlId: 0, FileName: '', FileExtension: '', UploadedDate: new Date(),\r\n Link: '', CategoryId: 0, IsActive: true, IsABB: false, IsVendor: false, Remark: '', ProjectCclassAssemblyInvoicId: null,ProjectCClassAssemblyDisputeId:null,DisputeRaisedCategory:null\r\n }\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: RoleMaster, private formBuilder: FormBuilder, public dialogRef: MatDialogRef,\r\n private masterServ: MasterService, private datePipe: DatePipe, private vendorData: VendorDataService) { }\r\n\r\n numberRegex = '^-?[0-9]\\\\d*(\\\\.\\\\d{1,2})?$';\r\n emailRegex = '^[a-z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$';\r\n ngOnInit() {\r\n this.editRoleForm = this.formBuilder.group({\r\n rolename: [this.data.rolename, Validators.required],\r\n isActive: [this.data.isActive]\r\n });\r\n }\r\n onClear() {\r\n this.editRoleForm.controls['isActive'].patchValue(false);\r\n }\r\n\r\n onsubmit() {\r\n if (!this.editRoleForm.value.rolename) {\r\n this.masterServ.snackBarLoader('Please enter First Name', 'Done', '1000', 'red-snackbar')\r\n return;\r\n }\r\n\r\n if (this.editRoleForm.valid) {\r\n this.RoleSave.id = this.data.id;\r\n this.RoleSave.rolename = this.editRoleForm.value.rolename;\r\n this.RoleSave.isActive = this.editRoleForm.value.isActive;\r\n this.masterServ.AddUpdateRole(this.RoleSave).subscribe((data: any) => {\r\n this.dialogRef.close();\r\n });\r\n }\r\n }\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n

Edit Role

\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n Role Name\r\n \r\n \r\n
\r\n
\r\n Active\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MasterService } from '../Services/master.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { AddRoleMaster } from './AddRoleMaster';\r\nimport { EditRoleMaster } from './EditRoleMaster';\r\n\r\n\r\nexport interface RoleMaster {\r\n id: number;\r\n rolename: string;\r\n isActive: string;\r\n createdBy: number;\r\n createdDate: Date;\r\n updatedBy: number;\r\n updatedDate: Date;\r\n}\r\n\r\n@Component({\r\n selector: 'app-role-master',\r\n templateUrl: './role-master.component.html',\r\n styleUrls: ['./role-master.component.scss']\r\n})\r\nexport class RoleMasterComponent implements OnInit {\r\n @ViewChild(MatPaginator)\r\n paginator!: MatPaginator;\r\n RoledataSource!: MatTableDataSource;\r\n\r\n constructor(private masterServ: MasterService, public dialog: MatDialog) { }\r\n displayedColumns: string[] = ['Id','RoleName']//, 'ActiveStatus', 'EditRole', 'DeleteRole'];\r\n ngOnInit(): void {\r\n this.roletblData();\r\n }\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.RoledataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n onclickAdd() {\r\n const dialogRef = this.dialog.open(AddRoleMaster, {\r\n data: {},\r\n height: '55%',\r\n width: '58%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.roletblData();\r\n });\r\n }\r\n roletblData() {\r\n this.masterServ.GetRoleMasterList().subscribe((data: any) => {\r\n this.RoledataSource = new MatTableDataSource(data);\r\n this.RoledataSource.paginator = this.paginator;\r\n });\r\n }\r\n editRole(data: any) {\r\n const dialogRef = this.dialog.open(EditRoleMaster, {\r\n data: { id: data.id, rolename: data.roleName, isActive: (data.isActive == 'Active') ? true : false },\r\n height: '55%',\r\n width: '58%'\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.roletblData();\r\n });\r\n }\r\n deleteRole(data: any) {\r\n data.isActive = data.isActive == 'Active' ? true : false;\r\n this.masterServ.DeleteRole(data).subscribe((data: any) => {\r\n this.roletblData();\r\n });\r\n }\r\n}\r\n","

Role Master

\r\n
\r\n
\r\n
\r\n \r\n\r\n Search \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
ID {{element.id}} Role name {{element.roleName}}
No data matching the filter
\r\n
\r\n
\r\n \r\n\r\n
","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { Observable } from 'rxjs';\r\n\r\ninterface IdTokenClaims {\r\n roles?: string[]; // Ensure roles is defined as an optional array of strings\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RoleGuard implements CanActivate {\r\n constructor(private msalService: MsalService, private router: Router) {}\r\n\r\n canActivate(\r\n next: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Observable | Promise | boolean {\r\n const requiredRole = next.data['role']; // The role required to access this route\r\n const account = this.msalService.instance.getAllAccounts()[0]; // Get the first account (the logged-in user)\r\n\r\n if (account) {\r\n // Cast idTokenClaims to the correct type\r\n const claims = account.idTokenClaims as IdTokenClaims; // Casting to the custom type\r\n\r\n const roles = sessionStorage.getItem('role'); // Access roles as a string array\r\n\r\n if (requiredRole.includes(roles)) {\r\n return true; // Role matches, allow access\r\n }\r\n }\r\n\r\n // If roles don't match, redirect to the unauthorized page or login\r\n this.router.navigate(['/unauthorized']);\r\n return false;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n//Angular Material Components\r\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\r\nimport {CdkTableModule} from '@angular/cdk/table';\r\nimport {MatDividerModule} from '@angular/material/divider';\r\nimport {MatCheckboxModule} from '@angular/material/checkbox';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport {MatInputModule} from '@angular/material/input';\r\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\r\nimport {MatDatepickerModule} from '@angular/material/datepicker';\r\nimport {MatFormFieldModule} from '@angular/material/form-field';\r\nimport {MatRadioModule} from '@angular/material/radio';\r\nimport {MatSelectModule} from '@angular/material/select';\r\nimport {MatSliderModule} from '@angular/material/slider';\r\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\r\nimport {MatMenuModule} from '@angular/material/menu';\r\nimport {MatSidenavModule} from '@angular/material/sidenav';\r\nimport {MatToolbarModule} from '@angular/material/toolbar';\r\nimport {MatListModule} from '@angular/material/list';\r\nimport {MatGridListModule} from '@angular/material/grid-list';\r\nimport {MatCardModule} from '@angular/material/card';\r\nimport {MatStepperModule} from '@angular/material/stepper';\r\nimport {MatTabsModule} from '@angular/material/tabs';\r\nimport {MatExpansionModule} from '@angular/material/expansion';\r\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\r\nimport {MatChipsModule} from '@angular/material/chips';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\r\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\r\nimport {MatDialogModule} from '@angular/material/dialog';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport {MatSnackBarModule} from '@angular/material/snack-bar';\r\nimport {MatTableModule} from '@angular/material/table';\r\nimport {MatSortModule} from '@angular/material/sort';\r\nimport {MatPaginatorModule} from '@angular/material/paginator';\r\nimport {MatRippleModule} from '@angular/material/core';\r\nimport {MatMomentDateModule} from '@angular/material-moment-adapter';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n \r\n CdkTableModule,\r\n MatCheckboxModule,\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatAutocompleteModule,\r\n MatDatepickerModule,\r\n MatFormFieldModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatMenuModule,\r\n MatSidenavModule,\r\n MatToolbarModule,\r\n MatListModule,\r\n MatGridListModule,\r\n MatCardModule,\r\n MatStepperModule,\r\n MatTabsModule,\r\n MatExpansionModule,\r\n MatButtonToggleModule,\r\n MatChipsModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatProgressBarModule,\r\n MatDialogModule,\r\n MatTooltipModule,\r\n MatSnackBarModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatPaginatorModule,\r\n MatRippleModule,\r\n MatMomentDateModule\r\n ],\r\n exports: [\r\n BrowserAnimationsModule,\r\n CdkTableModule,\r\n MatCheckboxModule,\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatAutocompleteModule,\r\n MatDatepickerModule,\r\n MatFormFieldModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatMenuModule,\r\n MatSidenavModule,\r\n MatToolbarModule,\r\n MatListModule,\r\n MatGridListModule,\r\n MatCardModule,\r\n MatStepperModule,\r\n MatTabsModule,\r\n MatExpansionModule,\r\n MatButtonToggleModule,\r\n MatChipsModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatProgressBarModule,\r\n MatDialogModule,\r\n MatTooltipModule,\r\n MatSnackBarModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatPaginatorModule,\r\n MatRippleModule,\r\n MatMomentDateModule\r\n ]\r\n})\r\nexport class AppMaterialModule { }","import { Component, OnInit, Inject, OnDestroy } from '@angular/core';\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\nimport { AuthenticationResult, InteractionStatus, InteractionType, PopupRequest, RedirectRequest } from '@azure/msal-browser';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { ApiservicesService } from '../Services/apiservices.service';\r\n\r\n\r\n\r\n\r\ndeclare interface menu {\r\n menulink?: string;\r\n title: string;\r\n Icon: string;\r\n children?:menu[];\r\n\r\n}\r\nexport const menu: menu[] = [\r\n { menulink: '/dashboard', title: 'Dashboardddddd', Icon : 'dashboard'},\r\n { menulink: '/ProjectDetails', title: 'Project Details-ABB', Icon : 'horizontal_split'},\r\n { menulink: '/VendorProjectDetails', title: 'Project Details-Vendor', Icon : 'perm_media'},\r\n { menulink: '/Vendor', title: 'Vendor', Icon : 'badge'},\r\n { menulink: '/Material', title: 'Material', Icon : 'inventory'},\r\n { menulink: '/ProjectReport', title: 'Reports', Icon : 'perm_media'},\r\n {title: 'Configuration',\r\n Icon: 'settings', \r\n children: [\r\n {\r\n title: 'Business Line Master',\r\n Icon: 'work',\r\n menulink: '/ProjectReport'\r\n },\r\n { \r\n title: 'Product Group Master',\r\n Icon: 'group_work',\r\n menulink: '/ProjectReport'\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@Component({\r\n selector: 'app-side-nav',\r\n templateUrl: './side-nav.component.html',\r\n styleUrls: ['./side-nav.component.scss']\r\n})\r\nexport class SideNavComponent implements OnInit, OnDestroy {\r\n menuItems!: any[];\r\n customerCode!:any[];\r\n isIframe = false;\r\n loginDisplay = false;\r\n private readonly _destroying$ = new Subject();\r\n loginame!: string;\r\n loggedInCustomerCode!:string;\r\n loggedInCustomer21SeriesCode!:string;\r\n customerName!:string;\r\n Email: any;\r\n status = false;\r\n reportIssue: boolean = true;\r\n currentYear: number = new Date().getFullYear();\r\n image;\r\n images = [\r\n { path: '../../assets/img/audiimage.JPG' },\r\n { path: '../../assets/img/audiimage3.JPG' },\r\n { path: '../../assets/img/audiimage2.JPG' }\r\n ]\r\n constructor(\r\n @Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MsalGuardConfiguration,\r\n private authService: MsalService,\r\n private msalBroadcastService: MsalBroadcastService,public dialog: MatDialog,private http: HttpClient, private domSanitizer: DomSanitizer,private router:Router,\r\n public apisr:ApiservicesService\r\n ) { }\r\n ngOnInit(): void { \r\n this.msalBroadcastService.inProgress$\r\n .pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None),\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe(() => {\r\n this.setLoginDisplay();\r\n\r\n /* if (this.loginDisplay == true) {\r\n let MenuList = []\r\n // this.apisr.GetMenuAccess(this.Email).subscribe((res: any) => {\r\n var res=menu;\r\n // if (res.length > 0) {\r\n for (let i = 0; i < res.length; i++) {\r\n MenuList.push({\r\n menulink: res[i].menulink,\r\n title: res[i].title,\r\n Icon: res[i].Icon,\r\n });\r\n\r\n }\r\n this.menuItems = MenuList.filter(menuItem => menuItem);\r\n // this.router.navigateByUrl(\"\\dashboard\");\r\n } */\r\n this.apisr.GetABBLogin(window.btoa(this.Email)).subscribe((data:any)=>{\r\n console.log(data);\r\n if(data.length > 0)\r\n {\r\n sessionStorage.setItem('menuTitle',data[0].menuTitle);\r\n sessionStorage.setItem('menuIcon',data[0].menuIcon);\r\n sessionStorage.setItem('menuLink',data[0].menuLink);\r\n sessionStorage.setItem('roleId',data[0].roleIdRef);\r\n sessionStorage.setItem('role',data[0].role);\r\n sessionStorage.setItem('LoginEmail',this.Email);\r\n sessionStorage.setItem('userId',data[0].userID);\r\n sessionStorage.setItem('userToken',data[0].userToken);\r\n sessionStorage.setItem('tokenExpiration',data[0].tokenExpiration);\r\n sessionStorage.setItem('vendorId',data[0].vendorId);\r\n \r\n if(data.length >1)\r\n {\r\n sessionStorage.setItem('menuTitle2',data[1].menuTitle);\r\n sessionStorage.setItem('menuIcon2', data[1].menuIcon);\r\n sessionStorage.setItem('menuLink2',data[0].menuLink);\r\n }\r\n else\r\n {\r\n sessionStorage.setItem('menuTitle2',\"\");\r\n sessionStorage.setItem('menuIcon2', \"\");\r\n sessionStorage.setItem('menuLink2',\"\");\r\n \r\n }\r\n console.log(sessionStorage.getItem('role'));\r\n if(sessionStorage.getItem('role')=='Vendor'){\r\n this.router.navigateByUrl(\"\\VendorProjectDetails\");\r\n }else if(sessionStorage.getItem('role')=='SCM')\r\n {\r\n this.router.navigateByUrl(\"\\Vendor\");\r\n }\r\n else if(sessionStorage.getItem('role') == 'Quality Engineer')\r\n {\r\n this.router.navigateByUrl(\"\\ProjectDetailsQE\");\r\n }\r\n else{\r\n this.router.navigateByUrl(\"\\ProjectDetails\");\r\n }\r\n this.menuItems = data;\r\n this.reportIssue = true;\r\n }\r\n else{\r\n this.apisr.ShowSnackBar(\"User not authorized, Please contact administrator\",'red-snackbar'); \r\n this.loginDisplay = false;\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n setLoginDisplay() {\r\n\r\n this.loginDisplay = this.authService.instance.getAllAccounts().length > 0;\r\n let data = this.authService.instance.getAllAccounts();\r\n this.loginame = data[0].name == null ? \"\" : data[0].name;\r\n this.Email = data[0].username == null ? \"\" : data[0].username;\r\n /*this.apisr.GetCustomerCode(this.Email).subscribe((res: any) => {\r\n if (res.length > 0) {\r\n this.customerCode=res;\r\n this.loggedInCustomerCode=this.customerCode[0].custoemerCode;\r\n this.loggedInCustomer21SeriesCode=this.customerCode[0].customerCode21Series;\r\n this.customerName=this.customerCode[0].customerName;\r\n sessionStorage.setItem('customerCode', this.loggedInCustomerCode);\r\n if (this.loginame.includes('@'))\r\n {\r\n this.loginame=this.customerCode[0].firstName+\" \"+this.customerCode[0].lastName;\r\n }\r\n }\r\n });*/\r\n }\r\n\r\n MenuToggele() {\r\n\r\n this.status = !this.status;\r\n }\r\n\r\n\r\n UserManual(){\r\n if(sessionStorage.getItem('role')!='Vendor')\r\n {\r\n this.openFile(\"C-IMS_UserManual.pdf\"); \r\n }\r\n else{\r\n this.openFile(\"C-IMS UserManual.pdf\"); \r\n }\r\n }\r\n\r\n\r\n openFile(fileName) {\r\n window.open(\"assets/Files/\" + fileName);\r\n }\r\n\r\n\r\n /* ViewProcessFlowDialog() {\r\n const dialogRef = this.dialog.open(ProcessFlowDialog,{\r\n height: '680px',\r\n width: '1000px',data:{}\r\n \r\n }); \r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n console.log(`Dialog result: ${result}`);\r\n });\r\n \r\n }\r\n ViewReportIssueDailogue() {\r\n (window as any).open(\"https://abb.service-now.com/myservices?id=myis\", \"_blank\");\r\n }*/\r\n\r\n\r\n\r\n\r\n\r\n login() {\r\n if (this.msalGuardConfig.interactionType === InteractionType.Popup) {\r\n if (this.msalGuardConfig.authRequest) {\r\n this.authService.loginPopup({ ...this.msalGuardConfig.authRequest } as PopupRequest)\r\n .subscribe((response: AuthenticationResult) => {\r\n this.authService.instance.setActiveAccount(response.account);\r\n });\r\n } else {\r\n this.authService.loginPopup()\r\n .subscribe((response: AuthenticationResult) => {\r\n this.authService.instance.setActiveAccount(response.account);\r\n });\r\n }\r\n } else {\r\n if (this.msalGuardConfig.authRequest) {\r\n this.authService.loginRedirect({ ...this.msalGuardConfig.authRequest } as RedirectRequest);\r\n } else {\r\n this.authService.loginRedirect();\r\n }\r\n }\r\n }\r\n\r\n \r\nRegister()\r\n{\r\n window.open(\"https://usermanagement.abb.com/account/register\");\r\n}\r\nForgotPassword()\r\n{\r\n window.open(\"https://usermanagement.abb.com/account/forgotpassword\");\r\n}\r\n\r\n\r\n logout() {\r\n\r\n sessionStorage.removeItem('menuTitle');\r\n sessionStorage.removeItem('menuIcon');\r\n sessionStorage.removeItem('menuLink');\r\n sessionStorage.removeItem('roleId');\r\n sessionStorage.removeItem('role');\r\n sessionStorage.removeItem('LoginEmail');\r\n sessionStorage.removeItem('userId');\r\n sessionStorage.removeItem('userToken');\r\n sessionStorage.removeItem('tokenExpiration');\r\n sessionStorage.removeItem('menuTitle2');\r\n sessionStorage.removeItem('menuIcon2');\r\n sessionStorage.removeItem('menuLink2');\r\n if (this.msalGuardConfig.interactionType === InteractionType.Popup) {\r\n this.authService.logoutPopup({\r\n postLogoutRedirectUri: \"/\",\r\n mainWindowRedirectUri: \"/\"\r\n });\r\n } else {\r\n this.authService.logoutRedirect({\r\n postLogoutRedirectUri: \"/\",\r\n });\r\n }\r\n /* if (this.msalGuardConfig.interactionType === InteractionType.Popup) {\r\n this.authService.logoutPopup({\r\n postLogoutRedirectUri: \"/\",\r\n mainWindowRedirectUri: \"/\"\r\n });\r\n } else {\r\n this.authService.logoutRedirect({\r\n postLogoutRedirectUri: \"/\",\r\n });\r\n } */\r\n }\r\n ngOnDestroy(): void {\r\n this._destroying$.next(undefined);\r\n this._destroying$.complete();\r\n }\r\n}\r\n\r\n\r\n\r\n/* @Component ({\r\n selector: 'app-dialog',\r\n templateUrl: './reportIssueDialog.html',\r\n styleUrls: ['./side-nav.component.scss']})\r\n\r\n export class ReportIssueDialog {\r\n feedback: string;\r\n \r\n \r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,public apisrv:ApiservicesService, public dialogRef: MatDialogRef) {}; \r\n \r\n ngOnInit() {\r\n } \r\n \r\n onsubmit(){\r\n var loginID = sessionStorage.getItem('loginID');\r\n \r\n if(this.feedback == undefined)\r\n {\r\n this.apisrv.ShowSnackBar(\"Feedback is required\",'red-snackbar'); \r\n }\r\n else if(this.feedback.trim() ==\"\")\r\n {\r\n this.apisrv.ShowSnackBar(\"Feedback is required\",'red-snackbar'); \r\n }\r\n \r\n } \r\n\r\n close(){\r\n this.dialogRef.close();\r\n }\r\n \r\n }\r\n\r\n@Component ({\r\n selector: 'app-dialog',\r\n templateUrl: './ProcessFlowDialog.html',\r\n styleUrls: ['./side-nav.component.scss']})\r\n\r\n export class ProcessFlowDialog {\r\n\r\n feedback: string;\r\n \r\n \r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,public apisrv:ApiservicesService, public dialogRef: MatDialogRef) {}; \r\n \r\n ngOnInit() {\r\n } \r\n \r\n \r\n\r\n\r\n close(){\r\n this.dialogRef.close();\r\n }\r\n \r\n } */\r\n","
\r\n\t\r\n\t\t\r\n\r\n\r\n\r\n\t\t\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\r\n\r\n\r\n\t\t\t\r\n\t\t
\r\n\r\n\t
\r\n\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t

MOSD-Subcontracting Material Management System

\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\r\n\r\n\r\n\t\t\t
\r\n\r\n\t\t
\r\n\t
\r\n\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n\t\t\r\n\t\t\r\n \r\n \r\n
\r\n
\r\n
\r\n

{{loginame}}

\r\n
{{Email}}
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n 0\">\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{{item.menuIcon}}\r\n\t\t\t\t\t\t\t
{{item.menuTitle}}
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{{child.menuIcon}}\r\n\t\t\t\t\t\t\t
{{child.menuTitle}}
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n
\r\n \r\n \r\n {{item.menuIcon}}\r\n
{{item.menuTitle}}
\r\n
\r\n
\r\n
\r\n
\r\n \t\r\n \r\n
\r\n \r\n © Copyright {{currentYear}} ABB INDIA LTD V1.0\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
","import { Component, OnInit, Inject, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { ApiservicesService } from 'src/app/Services/apiservices.service';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup, FormBuilder, Validators, FormArray, FormControl } from '@angular/forms';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\nimport { MasterService } from '../Services/master.service';\r\nimport { MatSort } from '@angular/material/sort';\r\n\r\nexport interface UserRoleMappingModel{\r\n userId: number;\r\n firstName: string;\r\n lastName: string;\r\n email : string;\r\n mobile : string;\r\n vendorId:number;\r\n vendorName:string;\r\n isActive : boolean;\r\n role:string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-user-role-mapping',\r\n templateUrl: './user-role-mapping.component.html',\r\n styleUrls: ['./user-role-mapping.component.scss']\r\n})\r\nexport class UserRoleMappingComponent implements OnInit {\r\n\r\n constructor(private masterServ:MasterService,private snackBar: MatSnackBar,public dialog: MatDialog,) { }\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n isIdVisible: boolean = false;\r\n dataSource : any;\r\n show: boolean = true;\r\n vendorId:number;\r\n displayedColumns: string[] = ['firstName','lastName','email','role','vendorName','isActive','action'];\r\n\r\n ngOnInit(): void {\r\n this.getAllUserDetails();\r\n }\r\n\r\n getAllUserDetails(){\r\n if(sessionStorage.getItem('role')=='Vendor'){\r\n this.vendorId=Number(sessionStorage.getItem('vendorId'));\r\n }else{\r\n this.vendorId=0;\r\n }\r\n this.masterServ.getAllUserDetails().subscribe((data:any)=>{\r\n console.log('dataaa',data)\r\n this.dataSource= new MatTableDataSource(data);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n });\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n openDialogBox(){\r\n this.isIdVisible = false;\r\n const dialogRef = this.dialog.open(AddUserRoleMappingDialogComponent,{\r\n height: '90%',\r\n width: '40%',\r\n });\r\n dialogRef.afterClosed().subscribe({\r\n next: (val) => {\r\n if(val){\r\n this.getAllUserDetails();\r\n }\r\n }\r\n })\r\n }\r\n\r\n snackBarLoader(content, action, duration, color){\r\n this.snackBar.open(content, action, {\r\n duration: 2000,\r\n verticalPosition: \"top\", \r\n horizontalPosition: \"center\", \r\n panelClass: [color]\r\n });\r\n }\r\n delete(data:any){\r\n console.log('dataaa',data)\r\n if (confirm(\"Are you sure you want to delete?\")) { \r\n this.masterServ.deleteUserDet(data.userId).subscribe(() => { \r\n this.snackBarLoader('Deleted Successfully','Done','1000', 'red-snackbar')\r\n this.getAllUserDetails();\r\n }); \r\n }\r\n }\r\n loadResourceToEdit(data : any){\r\n debugger;\r\n this.isIdVisible = true;\r\n const dialogRef = this.dialog.open(AddUserRoleMappingDialogComponent,{\r\n data,\r\n height: '90%',\r\n width: '40%',\r\n }) \r\n dialogRef.afterClosed().subscribe({\r\n next: (val) => {\r\n if(val){\r\n this.getAllUserDetails();\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\r\n\r\nexport interface RoleMST{\r\n roleId:number;\r\n roleName:string;\r\n}\r\n\r\nexport interface VendorMST{\r\n vendorId:number;\r\n name:string;\r\n code:string;\r\n}\r\n\r\nexport interface UserRoleSave{\r\n id: number;\r\n firstName: string;\r\n lastName: string;\r\n email : string;\r\n mobile : string;\r\n vendor:number;\r\n isActive : boolean;\r\n role:string;\r\n createdBy:number;\r\n createdDate:Date;\r\n updatedBy:number;\r\n updatedDate:Date;\r\n}\r\n\r\n@Component ({\r\n selector: 'app-dialog-userRole',\r\n templateUrl: './add-user-role-mapping-dialog.html',\r\n styleUrls: ['./user-role-mapping.component.scss']\r\n})\r\n\r\n export class AddUserRoleMappingDialogComponent implements OnInit {\r\n formInstance: FormGroup;\r\n isIdVisible :boolean =false;\r\n ischecked :boolean =true;\r\n isEditable: boolean = false;\r\n vendorSelected:boolean=false;\r\n isDisabled: boolean = true;\r\n isEmailDisabled: boolean = false;\r\n role:string;\r\n vendorId:number;\r\n userRoleMappingModel: UserRoleMappingModel= {} as UserRoleMappingModel;\r\n userRoleSave:UserRoleSave={id:0,firstName:'',lastName:'',email:'',mobile:'',vendor:null,role:'',isActive:true,\r\n createdBy:0,createdDate:new Date(),updatedBy:0,updatedDate:new Date()\r\n };\r\n roleMST:RoleMST[]=[];\r\n vendorMST:VendorMST[]=[];\r\n isABBEmail:boolean=false;\r\n isExternalVendor:boolean=false;\r\n showVendor:boolean=false;\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,public dialogRef: MatDialogRef,\r\n private snackBar: MatSnackBar,private _formBuilder: FormBuilder, private masterServ: MasterService) \r\n {\r\n console.log(this.data);\r\n if(this.data !=null && this.data !=undefined)\r\n this.isEmailDisabled = true;\r\n this.formInstance = _formBuilder.group({\r\n \"userId\": 0,\r\n \"email\": [{value: '', disabled: this.isEmailDisabled}, Validators.required], \r\n \"firstName\": [{value: '', disabled: (this.data !=undefined && this.data.role)=='Vendor'?false: true}],\r\n \"lastName\": [{value: '', disabled:(this.data !=undefined && this.data.role)=='Vendor'?false: true}],\r\n \"isActive\": true,\r\n \"mobile\": '',\r\n \"role\": [{value: '', disabled: false}],\r\n \"vendorName\": [{value: '', disabled: false}],\r\n\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n console.log('this.data',this.data);\r\n this.masterServ.GetExternalVendorValue().subscribe((data:any)=>{\r\n this.showVendor=data;\r\n debugger;\r\n if(this.data != undefined){\r\n if(!this.data.email?.includes('abb.com')){\r\n this.formInstance.get('role')?.disable();\r\n this.isExternalVendor=true;\r\n // this.formInstance.get('firstName')?.disable();\r\n // this.formInstance.get('lastName')?.disable();\r\n this.formInstance.get('vendorName')?.disable();\r\n }\r\n else{\r\n this.isABBEmail= true;\r\n }\r\n }\r\n this.getRoleDetails();\r\n //this.getVendorDetails();\r\n this.masterServ.getRoleDetails().subscribe((data:any)=>{\r\n this.roleMST=data;\r\n if(this.isABBEmail &&this.showVendor){\r\n this.roleMST= this.roleMST\r\n }\r\n else if(this.isABBEmail &&!this.showVendor){\r\n this.roleMST= this.roleMST.filter(role=>role.roleName !== 'Vendor')\r\n }\r\n else if(!this.isExternalVendor){\r\n this.roleMST= this.roleMST.filter(role=>role.roleName !== 'Vendor')\r\n }\r\n console.log('roleMST',this.roleMST)\r\n this.masterServ.getVendorDetails().subscribe((data:any)=>{\r\n this.vendorMST=data;\r\n if(this.data !=null && this.data !=undefined)\r\n {\r\n console.log('this.data',this.data)\r\n this.isDisabled = false;\r\n this.isEditable = true;\r\n this.userRoleMappingModel.userId = this.data.userId;\r\n this.userRoleMappingModel.firstName = this.data.firstName;\r\n this.userRoleMappingModel.lastName = this.data.lastName;\r\n this.userRoleMappingModel.email = this.data.email;\r\n this.userRoleMappingModel.mobile = this.data.mobile;\r\n this.userRoleMappingModel.isActive = this.data.isActive;\r\n this.isIdVisible = true;\r\n this.userRoleMappingModel.role=this.data.role;\r\n this.userRoleMappingModel.vendorName=this.data.vendorName;\r\n this.userRoleMappingModel.vendorId= this.data.vendorId;\r\n if(this.data.role=='Vendor'){\r\n this.vendorSelected=true;\r\n }\r\n }\r\n var emailId = sessionStorage.getItem('LoginEmail');\r\n var userId=Number(sessionStorage.getItem('userId'));\r\n });\r\n });\r\n });\r\n \r\n }\r\n getRoleDetails(){\r\n this.masterServ.getRoleDetails().subscribe((data:any)=>{\r\n this.roleMST=data;\r\n debugger;\r\n if(this.isABBEmail && this.showVendor){\r\n this.roleMST= this.roleMST\r\n }\r\n else if(this.isABBEmail && !this.showVendor){\r\n this.roleMST= this.roleMST.filter(role=>role.roleName !== 'Vendor')\r\n }\r\n else if(!this.isExternalVendor){\r\n this.roleMST= this.roleMST.filter(role=>role.roleName !== 'Vendor')\r\n }\r\n console.log('roleMST',this.roleMST)\r\n });\r\n }\r\n getVendorDetails(){\r\n this.masterServ.getVendorDetails().subscribe((data:any)=>{\r\n console.log('dataaa',data)\r\n this.vendorMST=data;\r\n });\r\n }\r\n\r\n retrieve() {\r\n if(this.formInstance.value.email==undefined){\r\n this.snackBarLoader('Please enter user email', 'Error', 3000, 'red-snackbar');\r\n return\r\n }\r\n if(this.formInstance.value.email.trim()==''){\r\n this.snackBarLoader('Please enter user email', 'Error', 3000, 'red-snackbar');\r\n return\r\n }\r\n \r\n else{\r\n this.isEditable = true;\r\n this.masterServ.getUserDetailsByEmail(this.formInstance.value.email).subscribe({\r\n next: (data: any) => {\r\n \r\n console.log(data);\r\n \r\n if (data) {\r\n this.isABBEmail=true;\r\n this.isExternalVendor=false;\r\n this.userRoleMappingModel = data;\r\n this.getRoleDetails();\r\n }\r\n else if(!this.formInstance.value.email?.includes('abb.com')){\r\n this.isExternalVendor=true;\r\n this.isABBEmail=false;\r\n console.log(this.isExternalVendor);\r\n this.userRoleMappingModel.isActive = true;\r\n this.formInstance.patchValue({isActive : true});\r\n\r\n this.userRoleMappingModel.role='Vendor';\r\n this.formInstance.get('role')?.setValue('Vendor');\r\n this.formInstance.get('role')?.disable();\r\n \r\n \r\n this.formInstance.get('firstName')?.enable();\r\n this.formInstance.get('lastName')?.enable();\r\n \r\n this.vendorSelected=true;\r\n this.getRoleDetails();\r\n this.getVendorDetails();\r\n } else {\r\n \r\n this.snackBarLoader('Data not found', 'Error', 3000, 'red-snackbar');\r\n \r\n }\r\n \r\n },\r\n \r\n error: (err: any) => {\r\n \r\n console.log(err);\r\n \r\n this.snackBarLoader(err.error.text, 'Error', 3000, 'red-snackbar');\r\n \r\n this.isEditable = false;\r\n \r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n \r\n snackBarLoader(content, action, duration, color){\r\n this.snackBar.open(content, action, {\r\n duration: 2000,\r\n verticalPosition: \"top\", \r\n horizontalPosition: \"center\", \r\n panelClass: [color]\r\n });\r\n }\r\n \r\n closepopup(){\r\n this.dialogRef.close();\r\n }\r\n onRoleChange(roleName){\r\n console.log(roleName);\r\n if(roleName=='Vendor'){\r\n this.vendorSelected=true;\r\n this.getVendorDetails();\r\n }else{\r\n this.vendorSelected=false;\r\n }\r\n }\r\n onVendorChange(vendorId){\r\n this.userRoleMappingModel.vendorId=vendorId;\r\n }\r\n save(){\r\n \r\n console.log(this.formInstance.getRawValue()?.role);\r\n if(this.isExternalVendor && !this.formInstance.value.firstName){\r\n this.snackBarLoader('Please enter FirstName','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n if(this.isExternalVendor && !this.formInstance.value.lastName){\r\n this.snackBarLoader('Please enter LastName','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n if(!this.formInstance.getRawValue()?.role){\r\n this.snackBarLoader('Please choose role','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n if(this.formInstance.getRawValue()?.role=='Vendor' && !(this.userRoleMappingModel.vendorId)){\r\n this.snackBarLoader('Please choose Vendor','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n this.userRoleSave.id=0;\r\n this.userRoleSave.firstName=this.userRoleMappingModel.firstName;\r\n this.userRoleSave.lastName=this.userRoleMappingModel.lastName;\r\n this.userRoleSave.email=this.userRoleMappingModel.email;\r\n this.userRoleSave.mobile=this.userRoleMappingModel.mobile;\r\n this.userRoleSave.isActive=this.userRoleMappingModel.isActive;\r\n this.userRoleSave.role=this.formInstance.getRawValue()?.role;\r\n this.userRoleSave.vendor=this.userRoleMappingModel.vendorId;\r\n this.userRoleSave.createdBy=Number(sessionStorage.getItem('userId'));\r\n this.userRoleSave.createdDate=new Date();\r\n this.masterServ.save(this.userRoleSave).subscribe({\r\n next: (val :any) => {\r\n this.snackBarLoader('Submitted Successfully','Done','1000', 'red-snackbar')\r\n //this.resetForm();\r\n this.dialogRef.close(true);\r\n },\r\n error: (err: any) =>{\r\n this.snackBarLoader(err.error,'Done','1000', 'red-snackbar')\r\n this.resetForm();\r\n }\r\n })\r\n }\r\n \r\n update(){\r\n if(this.isExternalVendor && !this.formInstance.value.firstName){\r\n this.snackBarLoader('Please enter FirstName','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n if(this.isExternalVendor && !this.formInstance.value.lastName){\r\n this.snackBarLoader('Please enter LastName','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n if(!this.formInstance.getRawValue()?.role){\r\n this.snackBarLoader('Please choose role','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n if(this.formInstance.getRawValue()?.role=='Vendor' && !(this.userRoleMappingModel.vendorId)){\r\n this.snackBarLoader('Please choose Vendor','Done','1000', 'red-snackbar')\r\n return;\r\n }\r\n this.userRoleSave.id=this.data.userId;\r\n this.userRoleSave.firstName= (this.data !=undefined && this.data.role)=='Vendor' ?this.formInstance.value.firstName:this.data.firstName;\r\n this.userRoleSave.lastName=(this.data !=undefined && this.data.role)=='Vendor' ?this.formInstance.value.lastName:this.data.lastName;\r\n this.userRoleSave.email=this.data.email;\r\n this.userRoleSave.mobile=this.data.mobile;\r\n this.userRoleSave.role=this.formInstance.getRawValue()?.role;\r\n this.userRoleSave.vendor=this.formInstance.getRawValue()?.role =='Vendor'? this.userRoleMappingModel.vendorId:null;\r\n this.userRoleSave.isActive=this.formInstance.value.isActive;\r\n this.userRoleSave.updatedBy=Number(sessionStorage.getItem('userId'));\r\n this.userRoleSave.updatedDate=new Date();\r\n this.masterServ.save(this.userRoleSave).subscribe({\r\n next: (val :any) => {\r\n this.snackBarLoader('Updated Successfully','Done','1000', 'red-snackbar')\r\n this.resetForm();\r\n this.dialogRef.close(true);\r\n },\r\n error: (err: any) =>{\r\n this.snackBarLoader(err.error,'Done','1000', 'red-snackbar')\r\n this.resetForm();\r\n }\r\n }) \r\n \r\n }\r\n\r\n \r\n resetForm() { \r\n this.isEditable = false;\r\n this.formInstance.reset(); \r\n this.userRoleMappingModel.userId = 0;\r\n Object.keys(this.formInstance.controls).forEach(key => {\r\n this.formInstance.get(key).setErrors(null) ;\r\n });\r\n this.isIdVisible = false;\r\n this.dialogRef.close(true);\r\n }\r\n}\r\n","\r\n
\r\n

User Role Mapping

\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n Search\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Id{{ element.userId }}First Name{{ element.firstName }}Last Name{{ element.lastName }}Email{{ element.email }}Role{{ element.role }}Vendor{{ element.vendorName }}Status{{ element.isActive ? 'Active' : 'Inactive' }}Action\r\n \r\n \r\n
No data matching the filter
\r\n \r\n
\r\n
\r\n
","\r\n
\r\n

User Role Map\r\n close\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Id \r\n \r\n \r\n
\r\n
\r\n \r\n Email Id\r\n \r\n Please enter email\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n First Name \r\n \r\n \r\n
\r\n
\r\n \r\n Last Name \r\n \r\n \r\n
\r\n
\r\n \r\n Mobile Number\r\n \r\n \r\n
\r\n
\r\n \r\n Role\r\n \r\n {{role.roleName}}\r\n \r\n \r\n
\r\n
\r\n \r\n Select Vendor\r\n \r\n {{vendor.name}}\r\n \r\n \r\n
\r\n
\r\n \r\n Active \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","export const environment = {\r\n production: false,\r\n redirectUri: 'https://stage.MOSD-Subcontracting-Material-Managements.in.abb.com/',\r\n webApiUrl : 'https://stage.MOSD-Subcontracting-Material-Managements.in.abb.com/api/',\r\n clientIdForLogin : '59da47ed-9a05-4995-bad2-59e8b0733fa1',\r\n \r\n\r\n barChartYellow: '#ffd100', // Yellow' rgba(255, 206, 86, 0.9)\r\n barChartBlack:'#005976', //rgba(128, 128, 128, 0.9)\r\n doughnutChartsColor:['#ffd100','#005976', '#00a66a', '#008d7d', '#5bbb4c',\r\n '#acca25', '#007382', '#6e6e6e', '#a9a9a9', '#d2d2d2', '#a5b64d'],\r\n mixedChartColor:['#6E6E6E','#ffd100','#00a66a','#005976'], //line,bar,bubble\r\n \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","var map = {\n\t\"./af\": 62275,\n\t\"./af.js\": 62275,\n\t\"./ar\": 90857,\n\t\"./ar-dz\": 11218,\n\t\"./ar-dz.js\": 11218,\n\t\"./ar-kw\": 14754,\n\t\"./ar-kw.js\": 14754,\n\t\"./ar-ly\": 66680,\n\t\"./ar-ly.js\": 66680,\n\t\"./ar-ma\": 92178,\n\t\"./ar-ma.js\": 92178,\n\t\"./ar-ps\": 42060,\n\t\"./ar-ps.js\": 42060,\n\t\"./ar-sa\": 56522,\n\t\"./ar-sa.js\": 56522,\n\t\"./ar-tn\": 95682,\n\t\"./ar-tn.js\": 95682,\n\t\"./ar.js\": 90857,\n\t\"./az\": 70164,\n\t\"./az.js\": 70164,\n\t\"./be\": 79774,\n\t\"./be.js\": 79774,\n\t\"./bg\": 60947,\n\t\"./bg.js\": 60947,\n\t\"./bm\": 21832,\n\t\"./bm.js\": 21832,\n\t\"./bn\": 89650,\n\t\"./bn-bd\": 74477,\n\t\"./bn-bd.js\": 74477,\n\t\"./bn.js\": 89650,\n\t\"./bo\": 66005,\n\t\"./bo.js\": 66005,\n\t\"./br\": 98492,\n\t\"./br.js\": 98492,\n\t\"./bs\": 70534,\n\t\"./bs.js\": 70534,\n\t\"./ca\": 52061,\n\t\"./ca.js\": 52061,\n\t\"./cs\": 84737,\n\t\"./cs.js\": 84737,\n\t\"./cv\": 61167,\n\t\"./cv.js\": 61167,\n\t\"./cy\": 77996,\n\t\"./cy.js\": 77996,\n\t\"./da\": 9528,\n\t\"./da.js\": 9528,\n\t\"./de\": 14540,\n\t\"./de-at\": 49430,\n\t\"./de-at.js\": 49430,\n\t\"./de-ch\": 67978,\n\t\"./de-ch.js\": 67978,\n\t\"./de.js\": 14540,\n\t\"./dv\": 83426,\n\t\"./dv.js\": 83426,\n\t\"./el\": 6616,\n\t\"./el.js\": 6616,\n\t\"./en-au\": 63816,\n\t\"./en-au.js\": 63816,\n\t\"./en-ca\": 32162,\n\t\"./en-ca.js\": 32162,\n\t\"./en-gb\": 83305,\n\t\"./en-gb.js\": 83305,\n\t\"./en-ie\": 61954,\n\t\"./en-ie.js\": 61954,\n\t\"./en-il\": 43060,\n\t\"./en-il.js\": 43060,\n\t\"./en-in\": 59923,\n\t\"./en-in.js\": 59923,\n\t\"./en-nz\": 13540,\n\t\"./en-nz.js\": 13540,\n\t\"./en-sg\": 16505,\n\t\"./en-sg.js\": 16505,\n\t\"./eo\": 41907,\n\t\"./eo.js\": 41907,\n\t\"./es\": 86640,\n\t\"./es-do\": 41246,\n\t\"./es-do.js\": 41246,\n\t\"./es-mx\": 56131,\n\t\"./es-mx.js\": 56131,\n\t\"./es-us\": 36430,\n\t\"./es-us.js\": 36430,\n\t\"./es.js\": 86640,\n\t\"./et\": 62551,\n\t\"./et.js\": 62551,\n\t\"./eu\": 32711,\n\t\"./eu.js\": 32711,\n\t\"./fa\": 54572,\n\t\"./fa.js\": 54572,\n\t\"./fi\": 33390,\n\t\"./fi.js\": 33390,\n\t\"./fil\": 87860,\n\t\"./fil.js\": 87860,\n\t\"./fo\": 48216,\n\t\"./fo.js\": 48216,\n\t\"./fr\": 99291,\n\t\"./fr-ca\": 98527,\n\t\"./fr-ca.js\": 98527,\n\t\"./fr-ch\": 58407,\n\t\"./fr-ch.js\": 58407,\n\t\"./fr.js\": 99291,\n\t\"./fy\": 47054,\n\t\"./fy.js\": 47054,\n\t\"./ga\": 49540,\n\t\"./ga.js\": 49540,\n\t\"./gd\": 73917,\n\t\"./gd.js\": 73917,\n\t\"./gl\": 51486,\n\t\"./gl.js\": 51486,\n\t\"./gom-deva\": 56245,\n\t\"./gom-deva.js\": 56245,\n\t\"./gom-latn\": 48868,\n\t\"./gom-latn.js\": 48868,\n\t\"./gu\": 59652,\n\t\"./gu.js\": 59652,\n\t\"./he\": 89019,\n\t\"./he.js\": 89019,\n\t\"./hi\": 42040,\n\t\"./hi.js\": 42040,\n\t\"./hr\": 63402,\n\t\"./hr.js\": 63402,\n\t\"./hu\": 79322,\n\t\"./hu.js\": 79322,\n\t\"./hy-am\": 27609,\n\t\"./hy-am.js\": 27609,\n\t\"./id\": 57942,\n\t\"./id.js\": 57942,\n\t\"./is\": 98275,\n\t\"./is.js\": 98275,\n\t\"./it\": 73053,\n\t\"./it-ch\": 4378,\n\t\"./it-ch.js\": 4378,\n\t\"./it.js\": 73053,\n\t\"./ja\": 46176,\n\t\"./ja.js\": 46176,\n\t\"./jv\": 679,\n\t\"./jv.js\": 679,\n\t\"./ka\": 92726,\n\t\"./ka.js\": 92726,\n\t\"./kk\": 72953,\n\t\"./kk.js\": 72953,\n\t\"./km\": 86957,\n\t\"./km.js\": 86957,\n\t\"./kn\": 59181,\n\t\"./kn.js\": 59181,\n\t\"./ko\": 47148,\n\t\"./ko.js\": 47148,\n\t\"./ku\": 27752,\n\t\"./ku-kmr\": 63898,\n\t\"./ku-kmr.js\": 63898,\n\t\"./ku.js\": 27752,\n\t\"./ky\": 65675,\n\t\"./ky.js\": 65675,\n\t\"./lb\": 41263,\n\t\"./lb.js\": 41263,\n\t\"./lo\": 65746,\n\t\"./lo.js\": 65746,\n\t\"./lt\": 11143,\n\t\"./lt.js\": 11143,\n\t\"./lv\": 38753,\n\t\"./lv.js\": 38753,\n\t\"./me\": 44054,\n\t\"./me.js\": 44054,\n\t\"./mi\": 31573,\n\t\"./mi.js\": 31573,\n\t\"./mk\": 30202,\n\t\"./mk.js\": 30202,\n\t\"./ml\": 68523,\n\t\"./ml.js\": 68523,\n\t\"./mn\": 79794,\n\t\"./mn.js\": 79794,\n\t\"./mr\": 56681,\n\t\"./mr.js\": 56681,\n\t\"./ms\": 56975,\n\t\"./ms-my\": 39859,\n\t\"./ms-my.js\": 39859,\n\t\"./ms.js\": 56975,\n\t\"./mt\": 3691,\n\t\"./mt.js\": 3691,\n\t\"./my\": 5152,\n\t\"./my.js\": 5152,\n\t\"./nb\": 7607,\n\t\"./nb.js\": 7607,\n\t\"./ne\": 21526,\n\t\"./ne.js\": 21526,\n\t\"./nl\": 86368,\n\t\"./nl-be\": 40076,\n\t\"./nl-be.js\": 40076,\n\t\"./nl.js\": 86368,\n\t\"./nn\": 68420,\n\t\"./nn.js\": 68420,\n\t\"./oc-lnc\": 51906,\n\t\"./oc-lnc.js\": 51906,\n\t\"./pa-in\": 94504,\n\t\"./pa-in.js\": 94504,\n\t\"./pl\": 54721,\n\t\"./pl.js\": 54721,\n\t\"./pt\": 74645,\n\t\"./pt-br\": 54548,\n\t\"./pt-br.js\": 54548,\n\t\"./pt.js\": 74645,\n\t\"./ro\": 71977,\n\t\"./ro.js\": 71977,\n\t\"./ru\": 26042,\n\t\"./ru.js\": 26042,\n\t\"./sd\": 78849,\n\t\"./sd.js\": 78849,\n\t\"./se\": 27739,\n\t\"./se.js\": 27739,\n\t\"./si\": 50084,\n\t\"./si.js\": 50084,\n\t\"./sk\": 92449,\n\t\"./sk.js\": 92449,\n\t\"./sl\": 23086,\n\t\"./sl.js\": 23086,\n\t\"./sq\": 33139,\n\t\"./sq.js\": 33139,\n\t\"./sr\": 30607,\n\t\"./sr-cyrl\": 30063,\n\t\"./sr-cyrl.js\": 30063,\n\t\"./sr.js\": 30607,\n\t\"./ss\": 40131,\n\t\"./ss.js\": 40131,\n\t\"./sv\": 21665,\n\t\"./sv.js\": 21665,\n\t\"./sw\": 5642,\n\t\"./sw.js\": 5642,\n\t\"./ta\": 33622,\n\t\"./ta.js\": 33622,\n\t\"./te\": 74825,\n\t\"./te.js\": 74825,\n\t\"./tet\": 48336,\n\t\"./tet.js\": 48336,\n\t\"./tg\": 39238,\n\t\"./tg.js\": 39238,\n\t\"./th\": 99463,\n\t\"./th.js\": 99463,\n\t\"./tk\": 39986,\n\t\"./tk.js\": 39986,\n\t\"./tl-ph\": 29672,\n\t\"./tl-ph.js\": 29672,\n\t\"./tlh\": 40043,\n\t\"./tlh.js\": 40043,\n\t\"./tr\": 51212,\n\t\"./tr.js\": 51212,\n\t\"./tzl\": 50110,\n\t\"./tzl.js\": 50110,\n\t\"./tzm\": 80482,\n\t\"./tzm-latn\": 38309,\n\t\"./tzm-latn.js\": 38309,\n\t\"./tzm.js\": 80482,\n\t\"./ug-cn\": 42495,\n\t\"./ug-cn.js\": 42495,\n\t\"./uk\": 54157,\n\t\"./uk.js\": 54157,\n\t\"./ur\": 80984,\n\t\"./ur.js\": 80984,\n\t\"./uz\": 64141,\n\t\"./uz-latn\": 43662,\n\t\"./uz-latn.js\": 43662,\n\t\"./uz.js\": 64141,\n\t\"./vi\": 12607,\n\t\"./vi.js\": 12607,\n\t\"./x-pseudo\": 66460,\n\t\"./x-pseudo.js\": 66460,\n\t\"./yo\": 92948,\n\t\"./yo.js\": 92948,\n\t\"./zh-cn\": 62658,\n\t\"./zh-cn.js\": 62658,\n\t\"./zh-hk\": 39352,\n\t\"./zh-hk.js\": 39352,\n\t\"./zh-mo\": 38274,\n\t\"./zh-mo.js\": 38274,\n\t\"./zh-tw\": 98451,\n\t\"./zh-tw.js\": 98451\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","/* (ignored) */","/* (ignored) */"],"names":["MAT_DIALOG_DATA","MatTableDataSource","of","map","startWith","Validators","FormControl","i0","UploadVendorData","AddvendorConfigDialog","constructor","data","_formBuilder","_snackBar","formBuilder","apisrv","vendorData","projectServ","dialogRef","snackBar","datePipe","WiringTableId","VendorId","PurchaceOrderNo","PurchaceOrderDate","PurchaceOrderQty","NoOfTls","NoOfCubicles","NoOfdrives","DriveType","DriveRating","createdBy","VendorList","formInstance","group","required","ngOnInit","undefined","getBOMDetail","ProjectId","getVendorData","vendordataSource","selectBOMNumFormControl","wiringTableFormControl","selectVendorFormControl","PoNo","PoDate","PoQty","NoOfDrives","NoOfCubicals","filteredOptions","myControl","valueChanges","pipe","value","_filter","filteredOptions1","myControl1","_filter1","projectId","id","getBOMDetailList","subscribe","BOMList","console","log","bomId","length","forEach","e","selectedBomNumValue","indexOf","push","patchValue","getWiringTbleList","WiringTableList","bomNumSelection","bomid","reset","getVendorList","vendorFilteredOptions","searchVendorTextboxControl","name","VendorFilter","filterValue","toLowerCase","setVendorSelectedValues","selectedVendorId","selectedVendorValue","selectedVendorValues","item","filteredList","filter","option","includes","vendorSelectionChange","event","isUserInput","source","selected","index","splice","openedVendorChange","searchVendorTextBox","nativeElement","focus","clearVendorSearch","stopPropagation","vendorSelection","controls","vendorId","vendorControl","selectedVendorIdExists","some","selectedVendorValueExists","handleInput","onClear","options","filterValue1","options1","option1","close","snackBarLoader","content","action","duration","color","open","verticalPosition","horizontalPosition","panelClass","onsubmit","userId","sessionStorage","getItem","valid","wiringTableSave","get","String","transform","Number","saveVendorDetails","next","val","error","err","MaterialTableDataList","displayedColumns","selectors","viewQuery","ctx","MatPaginator","jsPDF","html2canvas","saveAs","XLSX","element_r33","ctx_r49","$event","element_r48","TableData","MaterialTableData","Id","ProjectName","Plant","SalesOrderNo","Customer","ProjectStatus","IsActive","IsClose","ProjectCreatedDate","TargetDate","ViewVendorData","projectDetails_ABB_Component","dialog","router","ngAfterViewInit","dataSource","paginator","getProjectData","getProjectHDR","role","tbldata","TableDataIndex","applyFilter","target","trim","openDialog","AddProjectDetails","height","width","afterClosed","result","vendorMaterial","navigate","disputevendorMaterial","DisputeDialog","ViewProjectDailogue","ViewProjectDialog","isActive","projectName","plant","salesOrderNo","customer","projectStatus","EditProjectDailogue","EditProjectDialog","plantId","onDelete","confirm","deleteProject","onClose","closeProject","shouldActionButton","row","isClose","fb","customerName","saleOrderNo","status","createdDate","Date","updatedBy","updatedDate","jobCardId","bomNumbers","form","containsAlphabetValidator","array","getPlant","newBOM","bomName","modulesArray","addBOM","removeBOM","bomIndex","removeAt","bomwiring","at","newWiring","moduleName","addBOMWiring","removeBOMWiring","wiringIndex","modules","boms","createModule","createBom","ModulesArray","addBoms","addModule","removeModule","removeBom","setControl","plantMST","SaveProjectDetails","hasError","b","w","bomDuplicates","panelDuplicates","checkIfSavedProjectNumber","CheckIfSavedSalesOrderNo","projectSave","saveProject","decls","vars","consts","template","invoiceServ","viewProject","vendortbldata","View","element","ViewMaterialReview","BOMNumber","bomNumber","ModuleName","getVendorDataList","getInvoiceDataList","InvoiceTableData","invoicedataSource","downloadFile","data1","attachementId","invoiceUpload","GetInvoiceFileByName","data2","SaveDemo","base64ToArrayBuffer","base64","binary_string","window","atob","len","bytes","Uint8Array","i","charCodeAt","buffer","file","Blob","type","closeGroup","expansionName","display","display2","display3","openGroup","makePdf","document","getElementById","hidden","then","canvas","imgWidth","pageHeight","imgHeight","heightLeft","contentDataURL","toDataURL","pdf","position","addImage","save","editform","selectedValue","selectedData","text","triggerValue","updateProjectDetails","VendorMaterialDialog","obj","AssignActivateVendor","VendorCode","VendorName","onclickAssign","_a","AssignVendor","inputData","assignWiringTable","onFileChange","files","EditVendorDailogue","EditvendorConfigDialog","vendorCode","vendorName","driveType","poNo","poQty","noOfTls","noOfCubicals","noOfDrives","onDeleteVendor","existingDate","editVendorform","UnitPrice","disputeServ","wiringTableId","remarks","resolutionRemarks","Remarks","ResolutionRemarks","disputeStatus2","reopenform","bomnoList","selectedBomId","wiringTableIdSelection","GetDispute","wiringTableIdSelectionReopen","disputeStatus","onClickSave","disputeSave","saveDispute","alphanumericValidator","control","regex","test","alphanumeric","containsAtLeastOneCharacterValidator","hasAtLeastOneCharacter","containsCharacter","hasAlphabet","containsAlphabet","vendServ","getMaterialReviewFromCClassIDDetails","tempData","showVerified","x","isVerified","viewMaterialDataSource","viewMaterialDataSource2","ExportTOExcel","ws","utils","table_to_sheet","table","wb","book_new","book_append_sheet","_b","writeFile","slice","MaterialReviewVendorform","onUpdate","exportExcel","searchValue","formatDate","AddvendorDetailConfigDialog","ApplicationDetails","getDriveRatingSuggestions","GetDriveRatingListForAutoSuggest","dataa","driveRatingSuggestionList","driveRating","driveRatingSuggestionFilteredOptions","_driveRatingFilter","today","find","element_r69","element_r73","CreateAssignVendorComponent","route","ProjectCclassAssemblyDtlId","FileName","FileExtension","UploadedDate","Link","CategoryId","IsABB","IsVendor","Remark","ProjectCclassAssemblyInvoicId","ProjectCClassAssemblyDisputeId","DisputeRaisedCategory","paramMap","params","backClick","AssignEachVendor","OpenAttachment","ABB_OpenAttachment","projStatus","filteredData","d","cClassId","fileName","DisputeListingDialog","bomNumberId","isDisplayAssign1","isDisplayAssign","hasTrue","v","showAssign","showNewVendor","isDisplayVerify1","isDisplayVerify","shouldDisplayColumn","getWiringTableStatus","IsSubmitEnabled","isSubmitEnabled","wiringTableList","commonWiringTableSave","assignCommonWiringTable","keepAttachment","changedFileName","fileExtension","changedFileExtn","fileDisplay","chooseFile","changeAttachment","onFileSelected","input","split","attachmentUpdate","ABBAttachmentSave","AddFileDetails","JSON","stringify","EditvendorDetailConfigDialog","poDate","Status","targetDate","applicationDetails","shouldShowButton","getColor","isResolvedDispute","hasSubmittedRecord","qeAssign","OpenandAssignQE","ABB_AssignQE","isDisabled","initialDate","wiringTableUpdate","DisputeRequestDialog","flag","loadDisputeAttachmentDetails","getDisputeAttachmentList","disputeAttachmentDataSource","checkedData","isChecked","disabled","deleteAttachment","ele","attachmentId","DeleteFileByName","deleteDisputeAttachment","selectedFiles","Array","from","onReopenFileSelected","GetFileByName","attachmentUpdateBulk","DisputeAttachmentSave","inputElements","querySelectorAll","getDispute","disputetbldata","onClickReopen","onClickCloseStatus","onRaiseDispute","disputedataSource","addHyperlink","Data","jsonObject","parse","retValText","retVal","key","Text","logEmail","email","shouldShowReopenButton","loadAttachmentDetails","getABBAttachmentDetails","attachmentDataSource","uploadFiles","closepopup","QualityEngineerId","loadQEDetails","getQEDetails","QEDataSource","OnSelectionChange","selectedItem","selectedRow","AssignQEData","saveQEDetails","ExcelJS","MaterialTypeListingDialog","UOMListingDialog","MaterialComponent","masterServ","ArticleNo","ArticleDescription","UOMshort","UOM","MaterialType","materialTypeId","getMaterialsList","getMaterialTypeList","getMaterialUOMList","GetMaterialUOMList","uomList","materialUOMList","GetMaterialList","res","materialData","materialtbldata","exportAsExcelFile","json","excelFileName","tempmaterialTypeName","workbook","Workbook","sheet","addWorksheet","sheet2","state","sheet3","columns","header","j","columnWidth","column","lengths","values","toString","maxLength","jsonRow","addRow","materialDropDown","uomDropDown","getCell","dataValidation","formulae","xlsx","writeBuffer","saveAsExcelFile","EXCEL_TYPE","EXCEL_EXTENSION","generateExcel","matTypeList","materialTypeList","materialTypeName","a","materialType","uomShortName","uomShort","excelSave","excelSave2","generateExistingGridExcel","getAllArticleGridDetails","radiobuttonclick","selectedradioButton","bulkMaterialDataToSend","onCheckboxChange","displayUpload","GetAllMaterialGridDetails","excelmaterialdataSource","articleData","articaleNumber","materialName","uom","unitPrice","dataReading","workSheet_Article","aoa_to_sheet","combined_wb","onUploadMaterials","selectedRadioValue","isFileUploaded","filename","AddUploadMaterial","isNaN","Message","excelArticleData","fileSizeInBytes","size","fileSizeInKB","fileSizeInMB","fileUploaded","Error","reader","FileReader","onload","binaryStr","read","firstSheetName","SheetNames","worksheet","Sheets","sheet_to_json","shift","materialModelBulkUpload","ArticaleNumber","MaterialName","readAsBinaryString","addMaterialTypeDialog","searchText","materialdataSource","onDeleteMaterial","DeleteMaterial","onAddMaterial","AddMaterialDialog","onEditMaterial","EditMaterialDialog","articaleNo","getMaterialType","getUOM","addMaterialform","selectmaterialTypeControl","pattern","numberRegex","active","UOMDialog","MaterialTypeDialog","materialTypeSelection","setValue","selectedMaterialTypeId","UOMSelection","onsaveMaterial","validate","addMaterialSave","AddMaterial","num","editMaterialform","uomSelection","onclickClear","onClickEdit","editMaterialSave","UpdateMaterial"],"sourceRoot":"webpack:///"}