{"version":3,"file":"main.js","mappings":";;;;;;;;;;;;;;;;AAAqE;IAKxD,kBAAkB,SAAlB,kBAAkB;IAE7B,YAAoB,EAAc;QAAd,OAAE,GAAF,EAAE,CAAY;QAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,eAAe;QACb,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC;;;;;AAVU,kBAAkB;IAH9B,wDAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;KAC3B,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;ACLyD;AAClD;AAE4B;IAKrD,gBAAgB,SAAhB,gBAAgB;IAU3B,8DAA8D;IAC9D,YAAoB,aAA+B,EAAU,WAA6B,EACpE,cAA8B;QADhC,kBAAa,GAAb,aAAa,CAAkB;QAAU,gBAAW,GAAX,WAAW,CAAkB;QACpE,mBAAc,GAAd,cAAc,CAAgB;QAElC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CACpC,oDAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAEf,IAAI,GAAE;YAEL,IAAI,CAAC,IAAI,GAAC,IAAI,CAAC;QAChB,CAAC,CACJ,CAAC;IACL,CAAC;QArBH,UAAU,CAAC,IAAY;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;YACxC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACzD;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAC5B;IAAA,CAAC;IAgBJ,QAAQ;QACN,6BAA6B;IAEjC,CAAC;;;;;;;;yBAzBE,gDAAK;;AADK,gBAAgB;IAH5B,wDAAS,CAAC;QACT,QAAQ,EAAE,cAAc;KACzB,CAAC;GACW,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRqB;AAED;AACY;AACE;AAGP;IAQ3C,cAAc,SAAd,cAAc;IAmC3B,MAAM;IAGJ,YAAoB,cAA8B,EAAU,eAAgC,EACjF,OAAgB,EAAS,YAAyB;QADzC,mBAAc,GAAd,cAAc,CAAgB;QAAU,oBAAe,GAAf,eAAe,CAAiB;QACjF,YAAO,GAAP,OAAO,CAAS;QAAS,iBAAY,GAAZ,YAAY,CAAa;QArC7D,gBAAW,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;QAE/C,SAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,WAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAYtB,uBAAkB,GAAG,EAAC,UAAU,EAAE,CAAC,EAAC,CAAC;QACrC,kEAAkE;QAClE,gBAAW,GAAW,CAAC,CAAC;QACxB,kEAAkE;QAClE,iBAAY,GAAW,EAAE,CAAC;QAC1B,kEAAkE;QAClE,kBAAa,GAAW,EAAE,CAAC;QAC3B,kEAAkE;QAClE,mBAAc,GAAW,EAAE,CAAC;QAC5B,kEAAkE;QAClE,cAAS,GAAW,EAAE,CAAC;QACvB,kEAAkE;QAClE,gBAAW,GAAW,EAAE,CAAC;QACzB;qDAC6C;QAC7C,aAAQ,GAAW,UAAU,CAAC;IAQ5B,CAAC;IAED,QAAQ;IACR,CAAC;IAED,YAAY,CAAC,QAAQ;QACnB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1D,OAAO,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;;;;;;;;AAhDU,cAAc;IAL1B,wDAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,uEAAqC;;KAEtC,CAAC;GACW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACf3B,wDAAwD;AACf;AACiB;AAEP;AACoC;AACrB;AAED;AAEZ;AAGN;AACwB;AACN;AACL;AAE5D,QAAQ;AAC6C;AACgC;AACZ;AACS;AACH;AACvB;AACiB;AAEzE,aAAa;AAC2E;AACjB;AAC6B;AACS;AACN;AACS;AACG;AACM;AAClB;AACG;AACY;AAChC;AACN;AACJ;AACyB;AACG;AACzD;AACqD;AACG;AACM;AAC1D;AACoF;AACI;AACQ;AAC/B;AACJ;AAClB;AAGvF,SAAS,qBAAqB,CAAC,IAAgB;IACpD,OAAO,IAAI,4EAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;IAgCY,WAAW,SAAX,WAAW;;AAAX,WAAW;IA7BvB,wDAAQ,CAAC;QACR,YAAY,EAAE;YACZ,6DAAc,EAAE,8DAAS,EAAE,8FAAmB,EAAE,iEAAU,EAAE,kFAAe,EAAE,2FAAkB,EAAE,wFAAiB;YAClH,iGAAoB,EAAE,gFAAe,EAAC,kFAAe,EAAC,8HAAyB;YAC/E,6GAAqB,EAAE,uHAAwB,EAAE,iHAAsB,EAAE,gIAA2B;YACpG,0HAAyB,EAAE,6HAA0B,EAAE,mIAA4B,EAAE,iHAAsB,EAAE,oHAAuB;YACpI,gGAAqB,EAAE,oFAAgB,EAAE,wFAAkB,EAAE,+GAAsB,EAAC,kHAAuB,EAAC,8GAAqB,EAAC,iHAAsB,EAAC,uHAAwB,EAAE,6DAAc,EAAC,iJAA0B,EAAC,qJAA2B,EAAC,6JAA6B,EAAC,0HAAyB;YAChT,wGAAmB;SACpB;QACD,eAAe,EAAE,EAAE;QACnB,OAAO,EAAE;YACP,qEAAa;YACb,0DAAY;YACZ,gEAAmB,EAAE;YACrB,mEAAgB;YAChB,0DAAY;YACZ,wDAAW,EAAE,gEAAmB;YAChC,gEAAe;YACf,gEAAmB;YACnB,+EAA0B,EAAE;YAC5B,yEAAuB,CAAC;gBACtB,MAAM,EAAE;oBACN,OAAO,EAAE,iEAAe;oBACxB,UAAU,EAAE,CAAC,qBAAqB,CAAC;oBACnC,IAAI,EAAE,CAAC,6DAAU,CAAC;iBACrB;aACA,CAAC;SACH;KACF,CAAC;GACW,WAAW;AAAA;;;;;;;;;;;;;;;;;;;;;;;;AC3FuD;AACV;IAOxD,eAAe,SAAf,eAAe;IAS1B,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;QAJ1C,WAAM,GAAG,IAAI,uDAAY,EAAE;QACrC,cAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;IAGY,CAAC;IAExD,QAAQ;QACN,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;;;;;;oBApBA,gDAAK;sBACL,gDAAK;0BACL,gDAAK;qBACL,iDAAM;;AALI,eAAe;IAL3B,wDAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,wEAAsC;;KAEvC,CAAC;GACW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRsB;AACD;AACc;AACW;AACd;IAO/C,yBAAyB,SAAzB,yBAAyB;IAQpC,YAAoB,eAAgC,EAAU,WAA4B;QAAtE,oBAAe,GAAf,eAAe,CAAiB;QAAU,gBAAW,GAAX,WAAW,CAAiB;QAN1F,SAAI,GAAa,IAAI,yEAAQ,EAAE,CAAC;QAChC,WAAM,GAAG,EAAE,CAAC;IAKkF,CAAC;IAE/F,QAAQ,KAAI,CAAC;IAEb,OAAO;QACL,MAAM,cAAc,GAAG,0EAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,IAAG,cAAc,CAAC,OAAO,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACtD,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC,EAAC,CAAC,GAAG,EAAE,EAAE;gBACR,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;;;;;AA5BU,yBAAyB;IALrC,wDAAS,CAAC;QACT,QAAQ,EAAE,wBAAwB;QAClC,oFAAkD;;KAEnD,CAAC;GACW,yBAAyB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXY;AACD;AAGM;AACmB;AACR;AACP;IAQ9C,qBAAqB,SAArB,qBAAqB;IAKhC,YAAoB,eAAgC,EAAS,WAA4B,EAAS,WAAuB;QAArG,oBAAe,GAAf,eAAe,CAAiB;QAAS,gBAAW,GAAX,WAAW,CAAiB;QAAS,gBAAW,GAAX,WAAW,CAAY;QAHzH,SAAI,GAAS,IAAI,iEAAI,EAAE,CAAC;QACxB,WAAM,GAAG,EAAE,CAAC;QACZ,eAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;IACoF,CAAC;IAE9H,QAAQ;QAEN,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;IAC7B,CAAC;IACH,OAAO;QAEN,MAAM,cAAc,GAAG,0EAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,IAAG,cAAc,CAAC,OAAO,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAClD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG;oBAC5D,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAC,aAAa,EAAC,EAAE,EAAC,WAAW,EAAC,EAAE,EAAC,CAAC,CAAC;gBAC1F,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;YAE3B,CAAC,EAAC,CAAC,GAAG,EAAE,EAAE;gBACR,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;SACJ;IAGH,CAAC;IAGC,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;;;;;;AArCU,qBAAqB;IALjC,wDAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,gFAA8C;;KAE/C,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACf2B;AAChB;AACI;AACU;AACe;AACE;AACX;AACN;AACb;IAOjC,0BAA0B,SAA1B,0BAA0B;IAarC,YAAoB,eAAgC,EAAU,WAA4B,EAAU,gBAAkC,EAAE,EAAe;QAAnI,oBAAe,GAAf,eAAe,CAAiB;QAAU,gBAAW,GAAX,WAAW,CAAiB;QAAU,qBAAgB,GAAhB,gBAAgB,CAAkB;QAZtI,cAAS,GAAc,IAAI,qEAAS,EAAE,CAAC;QACvC,WAAM,GAAG,EAAE,CAAC;QACZ,QAAG,GAAG,EAAE,CAAC;QAET,eAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;QAEzC,0BAAqB,GAAG,KAAK,CAAC;QAC9B,WAAM,GAAG,4EAAkB,CAAC;QAC5B,kBAAa,GAAG,KAAK,CAAC;IAMtB,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,oEAA4B,EAAE;aACjD,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC;aAC1C,KAAK,EAAE,CAAC;QAEX,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,WAAmB,EAAE,YAAoB,EAAE,EAAE;YACrF,IAAI,WAAW,KAAK,CAAC,EAAE;gBACrB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;gBAC3B,OAAO;aACR;iBACI;gBACH,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAClC,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;gBAChD,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;aACf;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBAC/B,IAAI,CAAC,MAAM,GAAG,wDAAwD,CAAC;aACxE;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,sCAAsC;IAC3D,CAAC;IAED,KAAK,CAAC,GAAW;QACf,MAAM,GAAG,GAAG,kBAAkB,CAAC;QAC/B,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,OAAO,GAAG,KAAK,CAAC,EAAE;YAChB,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;YAC1B,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;SACjB;QAED,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;YAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAErC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,aAAa,CAAC,GAAG;QACf,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACjD;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,WAAW;QACT,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,0BAA0B,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACvF,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;aACtB;iBAAM;gBACL,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,IAAI,CAAC,GAAG,GAAG,kCAAkC,CAAC;gBAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QAEV,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE/G,MAAM,cAAc,GAAG,+EAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzD,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,IAAI,cAAc,CAAC,OAAO,EAAE;YAC1B,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACjE,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC;oBACpC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG;oBACjC,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE;iBACrD,CAAC,CAAC;gBACH,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAE/B,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;gBACT,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;SACJ;IAGH,CAAC;IAED,sBAAsB;QACpB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,4EAAoC,EAAE;YACjE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,IAAI,CAAC,MAAM,GAAG,wDAAwD,CAAC;YACzE,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;;;;;;;AAnIU,0BAA0B;IALtC,yDAAS,CAAC;QACT,QAAQ,EAAE,yBAAyB;QACnC,qFAAmD;;KAEpD,CAAC;GACW,0BAA0B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfW;AACD;AAEA;AACiB;AACH;AACG;AAC5B;IAOzB,qBAAqB,SAArB,qBAAqB;IAyBhC,YAAoB,eAAgC,EAChC,WAAwB,EACxB,cAA8B;QAF9B,oBAAe,GAAf,eAAe,CAAiB;QAChC,gBAAW,GAAX,WAAW,CAAa;QACxB,mBAAc,GAAd,cAAc,CAAgB;QAxBlD,SAAI,GAAS,IAAI,2DAAI,EAAE,CAAC;QACxB,kEAAkE;QAClE,WAAM,GAAW,EAAE,CAAC;QACnB,kEAAkE;QAClE,iBAAY,GAAW,EAAE,CAAC;QAC1B,kEAAkE;QAClE,kBAAa,GAAW,EAAE,CAAC;QAC3B,kEAAkE;QAClE,mBAAc,GAAW,EAAE,CAAC;QAC5B,kEAAkE;QAClE,kBAAa,GAAW,EAAE,CAAC;QAC3B,kBAAa,GAAW,EAAE,CAAC;QAC3B,kEAAkE;QAClE,gBAAW,GAAW,CAAC,CAAC;QAExB,gBAAW,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;IASM,CAAC;IAEvD,QAAQ;QACN,IAAI,WAAW,CAAC;QAChB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,oDAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;QACrF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAElD,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;SAC7B;IACH,CAAC;IAED,OAAO;QACL,MAAM,cAAc,GAAG,6EAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,IAAG,cAAc,CAAC,OAAO,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAClD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC1F,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa;oBACzG,aAAa,EAAE,IAAI,CAAC,aAAa,EAAC,CAAC,CAAC;gBACtC,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC,EAAC,CAAC,GAAG,EAAE,EAAE;gBACR,IAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAAC,EAAE;oBAC9D,IAAI,CAAC,MAAM,GAAG,+CAA+C,CAAC;iBAC/D;YACH,CAAC,CAAC;SACH;IACH,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;;;;;;AA3DU,qBAAqB;IALjC,wDAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,gFAA8C;;KAE/C,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdqE;AACtD;AAGmB;AAET;AASR;IAOtC,sBAAsB,SAAtB,sBAAsB;IAkBjC,YAAoB,eAAgC,EAAU,YAA0B,EAC9E,KAAwB,EAAU,eAAgC;QADxD,oBAAe,GAAf,eAAe,CAAiB;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAC9E,UAAK,GAAL,KAAK,CAAmB;QAAU,oBAAe,GAAf,eAAe,CAAiB;QAhB5E,WAAM,GAAG,EAAE,CAAC;QACZ,QAAG,GAAG,EAAE,CAAC;QACT,WAAM,GAAG,4EAAkB,CAAC;QAC5B,kBAAa,GAAG,IAAI,CAAC;QAErB,WAAM,GAAG,EAAE,CAAC;QACZ,aAAQ,GAAG,CAAC,CAAC;QACb,UAAK,GAAG,CAAC,CAAC;QAMV,oBAAe,GAAG,KAAK,CAAC;QAItB,0BAA0B;IAC5B,CAAC;IAED,QAAQ;QACN,qCAAqC;QACrC,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,mEAAmE;IACnE,eAAe;QACb,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,GAAG,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC7B;IACH,CAAC;IAED,QAAQ;QACR,iCAAiC;QAC/B,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,WAAW,GAAE,IAAI,CAAC,OAAO,CAAC,MAAM;QACrC,IAAI,YAAmB;QAGtB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEzB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,IAAI,WAAW,IAAI,IAAI,EAAE;YACvB,YAAY,GAAG,QAAQ;SACxB;aACI;YAEH,YAAY,GAAG,EAAE;SAElB;QACD,OAAO,CAAC,GAAG,CAAC,cAAc,EAAC,YAAY,CAAC,CAAC;QAEzC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,iBAAiB;QAClB,oBAAoB;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAElC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,IAAiB,EAAE,EAAE;gBACxI,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;gBAC9B,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAClC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;gBAC9B,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,CAAC,EACD,GAAG,CAAC,EAAE;gBACJ,IAAI,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACxB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;oBACzC,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;YAC5B,CAAC,CACF,CAAC;SACH;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,IAAiB,EAAE,EAAE;gBACxI,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;gBAC9B,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAClC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;gBAC9B,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,CAAC,EACD,GAAG,CAAC,EAAE;gBACJ,IAAI,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACxB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;oBACzC,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;YAC5B,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IAEjC,CAAC;IAGD,kBAAkB,CAAC,OAAO;QACxB,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACpE,CAAC;;;;;;;;;qBAlHA,oDAAS,SAAC,UAAU;oBAGpB,oDAAS,SAAC,SAAS;;AAfT,sBAAsB;IALlC,wDAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,iFAA+C;;KAEhD,CAAC;GACW,sBAAsB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBiB;AAED;AAGiB;AACE;AACI;AAEb;IAQ9C,sBAAsB,SAAtB,sBAAsB;IAgBjC,YAAoB,eAAgC,EAAU,YAA0B,EAC9E,cAA8B,EAAU,cAA8B;QAD5D,oBAAe,GAAf,eAAe,CAAiB;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAC9E,mBAAc,GAAd,cAAc,CAAgB;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAfhF,WAAM,GAAG,EAAE,CAAC;QACZ,QAAG,GAAG,EAAE,CAAC;QAET,0BAAqB,GAAG,KAAK,CAAC;QAC9B,WAAM,GAAG,4EAAkB,CAAC;QAC5B,cAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;QAE1C,kEAAkE;QAClE,iCAA4B,GAAW,EAAE,CAAC;QAC1C,kEAAkE;QAClE,gBAAW,GAAW,CAAC,CAAC;QACxB,kEAAkE;QAClE,iBAAY,GAAW,EAAE,CAAC;IAIxB,CAAC;IAEH,QAAQ;QACN,IAAG,IAAI,CAAC,OAAO,EAAC;YAChB,qDAAqD;YACrD,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,4BAA4B,CAAC;SACrD;IAAA,CAAC;IAEF,UAAU;QACR,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC9D;iFACqE;YACnE,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC;gBAC3C,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC9D,4BAA4B,EAAE,IAAI,CAAC,4BAA4B;aAIhE,CAAC,CAAC;YAEL,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACH,CAAC;IAEH,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;;;;;;;AA5CU,sBAAsB;IALlC,wDAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,gFAA8C;;KAE/C,CAAC;GACW,sBAAsB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACjBa;AACD;AAEyB;IAO7D,4BAA4B,SAA5B,4BAA4B;IAIvC,YAAoB,eAAgC,EAAU,WAA4B;QAAtE,oBAAe,GAAf,eAAe,CAAiB;QAAU,gBAAW,GAAX,WAAW,CAAiB;IAAI,CAAC;IAE/F,QAAQ,KAAI,CAAC;IAGb,UAAU;QACR,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,EAAC,CAAC,GAAG,EAAE,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;;;;;AApBU,4BAA4B;IALxC,wDAAS,CAAC;QACT,QAAQ,EAAE,2BAA2B;QACrC,uFAAqD;;KAEtD,CAAC;GACW,4BAA4B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACVS;AACD;AAEiB;IAOrD,wBAAwB,SAAxB,wBAAwB;IAGnC,YAAoB,eAAgC,EAAU,WAAwB;QAAlE,oBAAe,GAAf,eAAe,CAAiB;QAAU,gBAAW,GAAX,WAAW,CAAa;IAAI,CAAC;IAE3F,QAAQ,KAAI,CAAC;IAGb,UAAU;QACR,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACxD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG;gBAC5D,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAC,aAAa,EAAC,EAAE,EAAC,WAAW,EAAC,EAAE,EAAC,CAAC,CAAC;YAC1F,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,EAAC,CAAC,GAAG,EAAE,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;;;;;AApBU,wBAAwB;IALpC,wDAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,mFAAiD;;KAElD,CAAC;GACW,wBAAwB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACVa;AACD;AAE2B;IAO/D,6BAA6B,SAA7B,6BAA6B;IAGxC,YAAoB,eAAgC,EAAU,gBAAkC;QAA5E,oBAAe,GAAf,eAAe,CAAiB;QAAU,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAI,CAAC;IAErG,QAAQ,KAAI,CAAC;IAGb,eAAe;QACb,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACvE,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG;gBACtE,UAAU,EAAE,EAAE,EAAG,aAAa,EAAE,EAAE,EAAC,aAAa,EAAC,EAAE,EAAC,CAAC,CAAC;YACxD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,EAAC,CAAC,GAAG,EAAE,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;;;;;AApBU,6BAA6B;IALzC,wDAAS,CAAC;QACT,QAAQ,EAAE,4BAA4B;QACtC,wFAAsD;;KAEvD,CAAC;GACW,6BAA6B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACVQ;AACD;AAEiB;IAOrD,wBAAwB,SAAxB,wBAAwB;IAenC,YAAoB,eAAgC,EAAU,WAAwB;QAAlE,oBAAe,GAAf,eAAe,CAAiB;QAAU,gBAAW,GAAX,WAAW,CAAa;QAZtF,kEAAkE;QAClE,iBAAY,GAAW,EAAE,CAAC;QAC1B,kEAAkE;QAClE,kBAAa,GAAW,EAAE,CAAC;QAC3B,kEAAkE;QAClE,mBAAc,GAAW,EAAE,CAAC;QAC5B,kEAAkE;QAClE,kBAAa,GAAW,EAAE,CAAC;QAC3B,kBAAa,GAAW,EAAE,CAAC;QAC3B,kEAAkE;QAClE,gBAAW,GAAW,CAAC,CAAC;IAEkE,CAAC;IAG3F,QAAQ,KAAI,CAAC;IAEb,UAAU;QACR,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACxD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC1F,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa;gBACzG,aAAa,EAAE,IAAI,CAAC,aAAa,EAAC,CAAC,CAAC;YACtC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,EAAC,CAAC,GAAG,EAAE,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;;;;;AAjCU,wBAAwB;IALpC,wDAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,mFAAiD;;KAElD,CAAC;GACW,wBAAwB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACVoB;AACR;AAEuB;IAQ3D,2BAA2B,SAA3B,2BAA2B;IAetC,YAAoB,eAAgC,EAAU,cAA8B;QAAxE,oBAAe,GAAf,eAAe,CAAiB;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAb5F,kEAAkE;QAClE,iBAAY,GAAW,EAAE,CAAC;QAC1B,kEAAkE;QAClE,kBAAa,GAAW,EAAE,CAAC;QAC3B,kEAAkE;QAClE,kBAAa,GAAW,EAAE,CAAC;QAC3B,kEAAkE;QAClE,eAAU,GAAW,EAAE,CAAC;QACxB,eAAU,GAAW,EAAE,CAAC;QACxB,uBAAkB,GAAG,EAAE,CAAC;QACxB,gBAAW,GAAW,CAAC,CAAC;QACxB,iBAAY,GAAS,KAAK,CAAC;IAEqE,CAAC;IAEjG,QAAQ,KAAI,CAAC;IAEb,UAAU;QACR,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACjE,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY;gBACtG,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAC/K,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,EAAC,CAAC,GAAG,EAAE,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;;;;;AA/BU,2BAA2B;IANvC,wDAAS,CAAC;QACT,QAAQ,EAAE,0BAA0B;QACpC,sFAAoD;;KAErD,CAAC;GAEW,2BAA2B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACXU;AACD;AAEyB;AACd;IAO/C,0BAA0B,SAA1B,0BAA0B;IAQrC,YAAoB,eAAgC,EAAU,WAA4B;QAAtE,oBAAe,GAAf,eAAe,CAAiB;QAAU,gBAAW,GAAX,WAAW,CAAiB;QAP1F,WAAM,GAAG,EAAE,CAAC;IAOkF,CAAC;IAE/F,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtE,CAAC;IAED,SAAS,CAAC,QAAQ;QAChB,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;QACrD,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACjD,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;QACzD,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACzD,OAAO,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,QAAQ;QACN,MAAM,cAAc,GAAG,0EAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,IAAG,cAAc,CAAC,OAAO,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACvD,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC,EAAC,CAAC,GAAG,EAAE,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;;;;;AAvCU,0BAA0B;IALtC,wDAAS,CAAC;QACT,QAAQ,EAAE,yBAAyB;QACnC,qFAAmD;;KAEpD,CAAC;GACW,0BAA0B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXW;AACT;AACQ;AAEyB;AACR;AACQ;IAO7D,sBAAsB,SAAtB,sBAAsB;IASjC,YAAoB,eAAgC,EAAS,WAA4B,EAAU,WAAwB,EAAU,MAAa;QAA9H,oBAAe,GAAf,eAAe,CAAiB;QAAS,gBAAW,GAAX,WAAW,CAAiB;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,WAAM,GAAN,MAAM,CAAO;QAPnJ,WAAM,GAAG,EAAE,CAAC;QAKX,eAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;QACzC,UAAK,GAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IAC0H,CAAC;IAExJ,QAAQ;QACN,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QAC5C,iDAAiD;QAChD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,MAAM,cAAc,GAAG,0EAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,IAAG,cAAc,CAAC,OAAO,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACnD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG;oBAC5D,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAC,aAAa,EAAC,EAAE,EAAC,WAAW,EAAC,EAAE,EAAC,CAAC,CAAC;gBAC1F,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC,EAAC,CAAC,GAAG,EAAE,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACF,YAAY;QACT,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;;;;;;;AAnCU,sBAAsB;IALlC,wDAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,iFAA+C;;KAEhD,CAAC;GACW,sBAAsB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbe;AACD;AACU;AACe;AACE;AACX;IAOpD,2BAA2B,SAA3B,2BAA2B;IAMrC,YAAoB,eAAgC,EAAS,WAA4B,EAAU,gBAAkC;QAAjH,oBAAe,GAAf,eAAe,CAAiB;QAAS,gBAAW,GAAX,WAAW,CAAiB;QAAU,qBAAgB,GAAhB,gBAAgB,CAAkB;QALtI,cAAS,GAAc,IAAI,qEAAS,EAAE,CAAC;QACvC,WAAM,GAAG,EAAE,CAAC;QAEZ,eAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;QACxC,eAAU,GAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;IAG/C,CAAC;IAEE,QAAQ;QACP,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;IACpC,CAAC;IACD,aAAa;QACZ,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAG9G,MAAM,cAAc,GAAG,+EAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,IAAG,cAAc,CAAC,OAAO,EAAE;YACzB,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAClE,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG;oBACtE,UAAU,EAAE,EAAE,EAAG,aAAa,EAAE,EAAE,EAAC,aAAa,EAAC,EAAE,EAAC,CAAC,CAAC;gBACxD,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC,EAAC,CAAC,GAAG,EAAE,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACF,YAAY;QACT,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;;;;;;AArCS,2BAA2B;IALvC,wDAAS,CAAC;QACT,QAAQ,EAAE,0BAA0B;QACpC,sFAAoD;;KAErD,CAAC;GACW,2BAA2B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZxC;AACA;AACA;AAEA;AACA;IAOaK,sBAAsB,SAAtBA,sBAAsB;EAkBjCC,YAAoBC,eAApB,EAA8DC,WAA9D,EAAgGC,MAAhG,EAA6G;IAAzF;IAA0C;IAAkC;IAfhG,cAAiB,EAAjB;IACA,4BAAgC,KAAhC;IAIF,0BAAqB;MAACC,UAAU,EAAE;IAAb,CAArB;IACA,gBAAW,EAAX;IACA,mBAAsB,CAAtB;IACA,oBAAuB,EAAvB;IACA,qBAAwB,EAAxB;IACA,sBAAyB,EAAzB;IACA,qBAAwB,EAAxB;IACA,qBAAwB,EAAxB;EAGqH;;EAEnHC,QAAQ;IACN,KAAKC,IAAL,CAAUC,SAAV,GAAsB,KAAKD,IAAL,CAAU,SAAV,GAAsBE,EAA5C;EAED;;EAEDC,iBAAiB;IAIf,KAAKP,WAAL,CAAiBQ,aAAjB,CAA+B,KAAKJ,IAApC,EAA0CK,SAA1C,CAAoDC,GAAG,IAAG;MACxD,KAAKC,oBAAL,GAA4B,IAA5B;IACD,CAFD;EAGD;;EAEDC,QAAQ;IACN,MAAMC,cAAc,GAAGjB,8EAAgB,CAAC,KAAKQ,IAAN,CAAvC;IACA,KAAKU,MAAL,GAAcD,cAAc,CAACC,MAA7B;;IACD,IAAGD,cAAc,CAACE,OAAlB,EAA2B;MACxB,KAAKf,WAAL,CAAiBY,QAAjB,CAA0B,KAAKR,IAA/B,EAAqCK,SAArC,CAAgDC,GAAD,IAAQ;QACtD,KAAKM,SAAL;QACA,KAAKC,YAAL;MAEA,CAJD,EAIGC,GAAD,IAAQ;QACRC,OAAO,CAACC,KAAR,CAAcF,GAAd;MACD,CAND;IAOD;EAEJ;;EAEOG,0BAA0B,CAACb,aAAD,EAAc;IAAA;;IAAA;MAC5C,KAAI,CAACA,aAAL,GAAmBA,aAAnB;;MACA,KAAI,CAACT,eAAL,CAAqBuB,OAArB;;MACA,MAAMC,KAAK,SAAS,KAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAE5B,sBADmC;QAE9C6B,cAAc,EAAE;UAACtB,IAAI,EAAE,EAAC,GAAG,KAAI,CAACA;UAAT,CAAP;UAAuBI,aAAa,EAAE;QAAtC,CAF8B;QAG9CmB,QAAQ,EAAE,iBAHoC;QAI9CC,eAAe,EAAE,IAJ6B;QAK9CC,YAAY,EAAE;MALgC,CAA5B,CAApB;MAOA,MAAMN,KAAK,CAACO,OAAN,EAAN;IAV4C;EAW7C;;EAEDb,YAAY;IACV,KAAKlB,eAAL,CAAqBuB,OAArB;EACD;;EAEKN,SAAS;IAAA;;IAAA;MACb,MAAI,CAAChB,WAAL,CAAiB+B,WAAjB,CAA6B;QAC3BC,WAAW,EAAE,MAAI,CAACA,WADS;QACIC,YAAY,EAAE,MAAI,CAACA,YADvB;QACqCC,aAAa,EAAE,MAAI,CAACA,aADzD;QAE3BC,cAAc,EAAE,MAAI,CAACA,cAFM;QAEUC,aAAa,EAAE,MAAI,CAACA,aAF9B;QAE6CC,aAAa,EAAE,MAAI,CAACA;MAFjE,CAA7B;;MAIA,MAAI,CAACrC,WAAL,CAAiBsC,mBAAjB,CAAqC7B,SAArC,CAA+C8B,WAAW,IAAG;QAC3D,MAAI,CAACC,kBAAL,GAA0BD,WAA1B;MACD,CAFD;IALa;EASd;;AA3EgC;;;;;;;;;;AAAtB1C,sBAAsB,sDALlCL,wDAAS,CAAC;EACTiD,QAAQ,EAAE,qBADD;EAETC,UAAAA,uEAFS;;AAAA,CAAD,CAKyB,GAAtB7C,sBAAsB,CAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZqC;AACD;AAEmB;AACT;AAEA;IAO9C,uBAAuB,SAAvB,uBAAuB;IAUlC,YAAoB,eAAgC,EAAU,YAA0B;QAApE,oBAAe,GAAf,eAAe,CAAiB;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAPxF,WAAM,GAAG,EAAE,CAAC;QACZ,QAAG,GAAG,EAAE,CAAC;QACT,WAAM,GAAG,4EAAkB,CAAC;QAC5B,YAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAEnC,WAAM,GAAG,EAAE,CAAC;IAE+E,CAAC;IAE5F,QAAQ;QAEN,qCAAqC;QACpC,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAC9D,IAAI,CAAC,KAAK,GAAG,MAAe,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7C,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,6BAA6B,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IAEL,CAAC;IAID,QAAQ;QACJ,IAAI,MAAM,GAAG,IAAI,qEAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACpD,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,GAAG,qBAAqB,CAAC;QACxC,CAAC,EAAC,CAAC,GAAG,EAAE,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAED,aAAa;QACX,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,KAAK,GAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,uCAAuC;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU;QAChF,MAAM,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAChE,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE;IACpH,CAAC;;;;;;AAxDU,uBAAuB;IALnC,wDAAS,CAAC;QACT,QAAQ,EAAE,sBAAsB;QAChC,kFAAgD;;KAEjD,CAAC;GACW,uBAAuB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACbc;AAED;AAGuB;IAO3D,yBAAyB,SAAzB,yBAAyB;IAYpC,YAAoB,eAAgC,EAAU,cAA8B;QAAxE,oBAAe,GAAf,eAAe,CAAiB;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAT5F,iBAAY,GAAW,EAAE,CAAC;QAC1B,kBAAa,GAAW,EAAE,CAAC;QAC3B,kBAAa,GAAW,EAAE,CAAC;QAC3B,eAAU,GAAW,EAAE,CAAC;QACxB,eAAU,GAAW,EAAE,CAAC;QACxB,uBAAkB,GAAW,EAAE,CAAC;QAChC,gBAAW,GAAW,CAAC,CAAC;QACxB,iBAAY,GAAY,KAAK,CAAC;IAEkE,CAAC;IAEjG,QAAQ,KAAI,CAAC;IAEb,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9D,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAC,CAAC,CAAC;YACtR,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,EAAC,CAAC,GAAG,EAAE,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;;;;;;AA3BU,yBAAyB;IALrC,wDAAS,CAAC;QACT,QAAQ,EAAE,wBAAwB;QAClC,oFAAkD;;KAEnD,CAAC;GACW,yBAAyB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACZY;AACD;AAEmB;AACT;IAS9C,uBAAuB,SAAvB,uBAAuB;IAwBlC,YAAoB,eAAgC,EAAU,YAA0B;QAApE,oBAAe,GAAf,eAAe,CAAiB;QAAU,iBAAY,GAAZ,YAAY,CAAc;QArBxF,WAAM,GAAG,EAAE,CAAC;QACZ,QAAG,GAAG,EAAE,CAAC;QAET,0BAAqB,GAAG,KAAK,CAAC;QAC9B,WAAM,GAAG,4EAAkB,CAAC;QAC5B,8DAA8D;QAC9D,YAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAEnC,gBAAW,GAAG,CAAC,CAAC;QAChB,iBAAY,GAAG,EAAE,CAAC;QAClB,yBAAoB,GAAW,EAAE,CAAC;QAClC,qBAAgB,GAAQ,EAAE,CAAC;QAC3B,uBAAkB,GAAG,EAAC,UAAU,EAAE,CAAC,EAAC,CAAC;QAErC,oBAAe,GAAG,KAAK,CAAC;QAExB,WAAM,GAAG,EAAE,CAAC;QACZ,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC;IAIkE,CAAC;IAE5F,QAAQ;IAER,CAAC;IACD,SAAS;QACP,IAAI,UAAU,GAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEvC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAChE,IAAI,CAAC,KAAK,GAAG,MAAe,CAAC;QAC/B,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,6BAA6B,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,SAAS;QACP,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC9D,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,GAAG,qBAAqB,CAAC;QACxC,CAAC,EAAC,CAAC,GAAG,EAAE,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAED,WAAW,CAAC,QAAgB,EAAE,KAAa;QACzC,IAAI,YAAY,CAAC;QACjB,IAAI,SAAS,CAAC;QACd,IAAI,QAAQ,KAAK,CAAC,EAAE;YAClB,YAAY,GAAG,KAAK,CAAC;YACrB,SAAS,GAAG,KAAK,CAAC;SACnB;aACI,IAAI,QAAQ,KAAK,CAAC,EAAE;YACvB,YAAY,GAAG,kBAAkB,CAAC;SACnC;aACI,IAAI,QAAQ,KAAK,CAAC,EAAE;YACvB,YAAY,GAAG,cAAc,CAAC;SAC/B;QACD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IACrC,CAAC;IAED,aAAa;QACX,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,KAAK,GAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,uCAAuC;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU;QAChF,MAAM,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAChE,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE;IACpH,CAAC;;;;;;AApFU,uBAAuB;IALnC,wDAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,iFAA+C;;KAEhD,CAAC;GACW,uBAAuB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbqB;AACR;AACE;AACM;AACW;IAOvD,mBAAmB,SAAnB,mBAAmB;IAK9B,YAAoB,eAAgC,EAAU,YAA0B,EAAU,eAAgC;QAA9G,oBAAe,GAAf,eAAe,CAAiB;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAAU,oBAAe,GAAf,eAAe,CAAiB;QAHlI,WAAM,GAAG,mEAAK,CAAC;QACf,WAAM,GAAG,EAAE,CAAC;IAE0H,CAAC;IAEvI,QAAQ;QACN,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,SAAS;QACP,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CACnD,CAAC,GAAQ,EAAE,EAAE;YACX,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QACpB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,6BAA6B,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,SAAS,CAAC,CAAC,IAAiB,EAAE,EAAE;YACxE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAC9B,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC,EACD,GAAG,CAAC,EAAE;YACJ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBACxB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,oBAAoB,CAAC;gBACtE,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CACF,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;;;;;;;mBA7CA,gDAAK;;AADK,mBAAmB;IAL/B,wDAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,8EAA4C;;KAE7C,CAAC;GACW,mBAAmB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACXkB;AACmB;IAOxD,oBAAoB,SAApB,oBAAoB;IAK/B,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;QAHpD,cAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;IAGY,CAAC;IAExD,QAAQ;QACN,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC;;;;;AAdU,oBAAoB;IALhC,wDAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,8EAA4C;;KAE7C,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;ACRU;AACiE;AAEvE;AAC2B;IAMnD,UAAU,SAAV,UAAU;IAErB,YAAoB,cAA8B,EAAU,KAAa;QAArD,mBAAc,GAAd,cAAc,CAAgB;QAAU,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE7E,WAAW,CACT,KAA6B,EAC7B,KAA0B;QAE1B,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,mDAAG,CAAC,IAAI,CAAC,EAAE;YACtD,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;gBACjC,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACtC,OAAO,KAAK,CAAC;aACd;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;;;;;AAhBU,UAAU;IAJtB,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,UAAU;AAAA;;;;;;;;;;;;;;;;;;;;;;ACVoB;AACiE;AAEvE;AAC2B;IAMnD,iBAAiB,SAAjB,iBAAiB;IAE5B,YAAoB,cAA8B,EAAU,KAAa;QAArD,mBAAc,GAAd,cAAc,CAAgB;QAAU,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE7E,WAAW,CACT,KAA6B,EAC7B,KAA0B;QAE1B,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,mDAAG,CAAC,IAAI,CAAC,EAAE;YACtD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE;gBAC9D,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACtC,OAAO,KAAK,CAAC;aACd;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;;;;;AAhBU,iBAAiB;IAJ7B,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;ACVa;AACiE;AAEvE;AAC2B;IAMnD,aAAa,SAAb,aAAa;IAExB,YAAoB,cAA8B,EAAU,KAAa;QAArD,mBAAc,GAAd,cAAc,CAAgB;QAAU,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE7E,WAAW,CACT,KAA6B,EAC7B,KAA0B;QAE1B,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,mDAAG,CAAC,IAAI,CAAC,EAAE;YACtD,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;gBACpC,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACtC,OAAO,KAAK,CAAC;aACd;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;;;;;AAhBU,aAAa;IAJzB,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,aAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;ACViB;AACiE;AAEvE;AAC2B;IAMnD,aAAa,SAAb,aAAa;IAExB,YAAoB,cAA8B,EAAU,KAAa;QAArD,mBAAc,GAAd,cAAc,CAAgB;QAAU,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE7E,WAAW,CACT,KAA6B,EAC7B,KAA0B;QAE1B,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,mDAAG,CAAC,IAAI,CAAC,EAAE;YACtD,IAAI,IAAI,EAAE;gBACR,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACtC,OAAO,KAAK,CAAC;aACd;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;;;;;AAhBU,aAAa;IAJzB,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,aAAa;AAAA;;;;;;;;;;;;;;;;;;;;;;ACViB;AACiE;AAEvE;AAC2B;IAMnD,cAAc,SAAd,cAAc;IAEzB,YAAoB,cAA8B,EAAU,KAAa;QAArD,mBAAc,GAAd,cAAc,CAAgB;QAAU,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAG7E,WAAW,CACT,KAA6B,EAC7B,KAA0B;QAE1B,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,mDAAG,CAAC,IAAI,CAAC,EAAE;YACtD,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrE,OAAO,KAAK,CAAC;aACd;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;;;;;AAjBU,cAAc;IAJ1B,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,cAAc;AAAA;;;;;;;;;;;;;;;;ACVpB,MAAM,QAAQ;IAWnB;QACE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;;;;;;;;;;;;;;;;;ACnBH;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2BM;AACG,MAAM,IAAI;IAQhB;QACC,sBAAsB;QACrB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAC,IAAI,CAAC;IAElB,CAAC;;;;;;;;;;;;;;;;;AC5CG,MAAM,SAAS;IAMpB;QACE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;;;;;;;;;;;;;;;;;ACXI,MAAM,KAAK;IAqBhB;QACE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,GAAE,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAE,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,GAAE,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,UAAU,GAAC,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAC,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAC,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,GAAC,KAAK,CAAC;IACpB,CAAC;;;;;;;;;;;;;;;;;ACzCI,MAAM,MAAM;IAKf;QACI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QAEf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAEpB,CAAC;;;;;;;;;;;;;;;;;ACRG,MAAM,OAAO;IAcjB;QACE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,GAAE,EAAE,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,GAAC,KAAK,CAAC;IACpB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1B6C;AACT;AACyB;AACA;IAQrD,iBAAiB,SAAjB,iBAAiB;IAY5B,YAAoB,cAA8B,EAAU,WAAwB,EAAU,KAAa;QAAvF,mBAAc,GAAd,cAAc,CAAgB;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,UAAK,GAAL,KAAK,CAAQ;QAV3G,gBAAW,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;QAE/C,kBAAa,GAAG;YACd,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,EAAE;SACpB;QAED,QAAG,GAAG,EAAE,CAAC;IAEqG,CAAC;IAE/G,QAAQ,KAAU,CAAC;IAEnB,cAAc;QACZ,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAClE,IAAI,CAAC,GAAG,GAAG,6BAA6B;YACxC,IAAI,CAAC,aAAa,GAAG;gBACnB,WAAW,EAAE,EAAE;gBACf,QAAQ,EAAE,EAAE;gBACZ,eAAe,EAAE,EAAE;aACpB;QACH,CAAC,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;IACzC,CAAC;;;;;;;AA9BU,iBAAiB;IAN7B,wDAAS,CAAC;QACT,QAAQ,EAAE,yBAAyB;QACnC,2EAAyC;;KAE1C,CAAC;GAEW,iBAAiB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACXoB;AACT;AACc;AACW;IAOrD,SAAS,SAAT,SAAS;IAOpB,YAAmB,cAA8B,EAAU,MAAc,EAAU,SAA2B;QAA3F,mBAAc,GAAd,cAAc,CAAgB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAkB;QAN9G,SAAI,GAAQ;YACV,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;SACb,CAAC;IAG+G,CAAC;IAElH,QAAQ,KAAU,CAAC;IAEnB,KAAK;QACH,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACpD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,CAAC,EAAC,KAAK,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;;;;;;;AAlBU,SAAS;IANrB,wDAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,kEAAgC;;KAEjC,CAAC;GAEW,SAAS;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVtB;AACA;AACA;AACA;AACA;AACA;AACA;IAQakD,mBAAmB,SAAnBA,mBAAmB;EAK9BjD,YAAoBkD,WAApB,EAA0DjD,eAA1D,EAAoGC,WAApG,EAA4H;IAAxG;IAAsC;IAA0C;IAHpG,kBAAa,KAAKgD,WAAL,CAAiBC,UAA9B;IACA,gBAAW,EAAX;EAEgI;;EAEhI9C,QAAQ;IACN,KAAK6C,WAAL,CAAiBE,eAAjB;IAEA,KAAKlD,WAAL,CAAiB+B,WAAjB,CAA6B;MAACC,WAAW,EAAE,CAAd;MAAiBC,YAAY,EAAE,GAA/B;MAAoCC,aAAa,EAAE,EAAnD;MAC7BC,cAAc,EAAE,EADa;MACTC,aAAa,EAAE,EADN;MACUC,aAAa,EAAE;IADzB,CAA7B,EAHM,CAIsD;IAC5D;;IACA,KAAKrC,WAAL,CAAiBmD,SAAjB,CAA2B1C,SAA3B,CAAqC2C,QAAQ,IAAG;MAC9C,KAAKC,QAAL,GAAgBD,QAAQ,CAACE,MAAT,CAAgBC,CAAC,IAAIA,CAAC,CAACC,IAAF,KAAW,SAAhC,CAAhB;IACD,CAFD;EAKD;;EAEKC,gBAAgB;IAAA;;IAAA;MACpB,MAAMlC,KAAK,SAAS,KAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAEkB,sIADmC;QAE9CjB,cAAc,EAAE;UAAC2B,QAAQ,EAAE,KAAI,CAACA;QAAhB,CAF8B;QAG9C1B,QAAQ,EAAE,kBAHoC;QAI9CC,eAAe,EAAE,IAJ6B;QAK9CC,YAAY,EAAE;MALgC,CAA5B,CAApB;MAQA,MAAMN,KAAK,CAACO,OAAN,EAAN;IAToB;EAUrB;;EAEK4B,mBAAmB,CAACC,IAAD,EAAK;IAAA;;IAAA;MAC5B,MAAMpC,KAAK,SAAS,MAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAEmB,+IADmC;QAE9ClB,cAAc,EAAE;UAACiC;QAAD,CAF8B;QAG9ChC,QAAQ,EAAE,iBAHoC;QAI9CC,eAAe,EAAE,IAJ6B;QAK9CC,YAAY,EAAE;MALgC,CAA5B,CAApB;MAOA,MAAMN,KAAK,CAACO,OAAN,EAAN;IAR4B;EAS7B;;EAEK8B,iBAAiB,CAACD,IAAD,EAAK;IAAA;;IAAA;MAC1B,MAAMpC,KAAK,SAAS,MAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAEoB,yIADmC;QAE9CnB,cAAc,EAAE;UAACiC,IAAI,EAAE,EAAC,GAAGA;UAAJ,CAAP;UAAkBN,QAAQ,EAAE,MAAI,CAACA;QAAjC,CAF8B;QAG9C1B,QAAQ,EAAE,kBAHoC;QAI9CC,eAAe,EAAE,IAJ6B;QAK9CC,YAAY,EAAE;MALgC,CAA5B,CAApB;MAOA,MAAMN,KAAK,CAACO,OAAN,EAAN;IAR0B;EAS3B;;EAED+B,kBAAkB,CAACzD,IAAD,EAAK;IACrB,OAAOA,IAAI,GAAG,GAAGA,IAAI,CAAC0D,SAAS,IAAI1D,IAAI,CAAC2D,QAAQ,EAArC,GAA0C,GAArD;EACD;;EAEDC,eAAe,CAACL,IAAD,EAAK;IAClB,MAAMM,IAAI,GAAG,IAAIC,IAAJ,CAASP,IAAI,CAACQ,gBAAd,EAAgCC,kBAAhC,CAAmD,EAAnD,EAAuD;MAAEC,IAAI,EAAE,SAAR;MAAmBC,MAAM,EAAE,SAA3B;MAAsCC,MAAM,EAAE;IAA9C,CAAvD,CAAb;IACA,MAAMC,EAAE,GAAG,IAAIN,IAAJ,CAASP,IAAI,CAACc,cAAd,EAA8BL,kBAA9B,CAAiD,EAAjD,EAAqD;MAAEC,IAAI,EAAE,SAAR;MAAmBC,MAAM,EAAE,SAA3B;MAAsCC,MAAM,EAAE;IAA9C,CAArD,CAAX;IACA,OAAO,GAAGN,IAAI,MAAMO,EAAE,EAAtB;EACD;;AA9D6B;;;;;;;;;;AAAnBzB,mBAAmB,sDAN/BvD,yDAAS,CAAC;EACTiD,QAAQ,EAAE,2BADD;EAETC,UAAAA,mEAFS;;AAAA,CAAD,CAMsB,GAAnBK,mBAAmB,CAAnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdb;AACA;AACA;AACA;AACA;AAGA;IAOa+B,eAAe,SAAfA,eAAe;EAQ1BhF,YAAoBC,eAApB,EAA8DgF,WAA9D,EAAsF;IAAlE;IAA0C;IANhE,aAAM,EAAN;IACA,0BAAqB;MAACC,UAAU,EAAE;IAAb,CAArB;IACA,mBAAsB,CAAtB;IACA,cAAS,KAAKD,WAAL,CAAiBE,KAA1B;EAG6F;;EAE3F9E,QAAQ;IACN;IAEA,KAAK4E,WAAL,CAAiBG,UAAjB,CAA6B;MAAClD,WAAW,EAAE,CAAd;MAAiBC,YAAY,EAAE,GAA/B;MAC3BkD,WAAW,EAAE,EADc;MACVC,YAAY,EAAE,EADJ;MACQC,cAAc,EAAE,EADxB;MAC2BC,aAAa,EAAC,EADzC;MAC4CC,WAAW,EAAC;IADxD,CAA7B;EAED;;EACKC,gBAAgB;IAAA;;IAAA;MACpB,MAAMjE,KAAK,SAAS,KAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC/CC,SAAS,EAAEiD,0HADoC;;QAEjD;QACE/C,QAAQ,EAAE,kBAHqC;QAI/CC,eAAe,EAAE,IAJ8B;QAK/CC,YAAY,EAAE;MALiC,CAA5B,CAApB;MAQD,MAAMN,KAAK,CAACO,OAAN,EAAN;IATqB;EAUtB;;EACK2D,mBAAmB,CAACC,IAAD,EAAK;IAAA;;IAAA;MAC5B,MAAMnE,KAAK,SAAS,MAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAEkD,mIADmC;QAE7CjD,cAAc,EAAE;UAACgE;QAAD,CAF6B;QAG9C/D,QAAQ,EAAE,iBAHoC;QAI9CC,eAAe,EAAE,IAJ6B;QAK9CC,YAAY,EAAE;MALgC,CAA5B,CAApB;MAOA,MAAMN,KAAK,CAACO,OAAN,EAAN;IAR4B;EAS7B;;EAEK6D,iBAAiB,CAACD,IAAD,EAAK;IAAA;;IAAA;MAC1B,MAAMnE,KAAK,SAAS,MAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAEmD,6HADmC;QAE9ClD,cAAc,EAAE;UAACgE,IAAI,EAAC,EAAC,GAAGA;UAAJ,CAAN;UAAgBE,KAAK,EAAC,MAAI,CAACA;QAA3B,CAF8B;QAG/CjE,QAAQ,EAAE,kBAHqC;QAI9CC,eAAe,EAAE,IAJ6B;QAK9CC,YAAY,EAAE;MALgC,CAA5B,CAApB;MAOA,MAAMN,KAAK,CAACO,OAAN,EAAN;IAR0B;EAS3B;;AA/C0B;;;;;;;;AAAfgD,eAAe,sDAL3BtF,wDAAS,CAAC;EACTiD,QAAQ,EAAE,kBADD;EAETC,UAAAA,+DAFS;;AAAA,CAAD,CAKkB,GAAfoC,eAAe,CAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdb;AACA;AACA;AACA;AACA;AAEA;IAOamB,yBAAyB,SAAzBA,yBAAyB;EAQlCnG,YAAoBC,eAApB,EAA8DmG,gBAA9D,EAAgG;IAA5E;IAA0C;IANhE,aAAM,EAAN;IACA,0BAAqB;MAAClB,UAAU,EAAE;IAAb,CAArB;IACA,mBAAsB,CAAtB;IACA,mBAAc,KAAKkB,gBAAL,CAAsBC,UAApC;EAGuG;;EAErGhG,QAAQ;IAGN,KAAK+F,gBAAL,CAAsBE,eAAtB,CAAuC;MAACpE,WAAW,EAAE,CAAd;MAAiBC,YAAY,EAAE,GAA/B;MACtCoE,UAAU,EAAE,EAD0B;MACrBC,aAAa,EAAE,EADM;MACHhB,aAAa,EAAC;IADX,CAAvC;EAED;;EACKiB,qBAAqB;IAAA;;IAAA;MACzB,MAAMhF,KAAK,SAAS,KAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC/CC,SAAS,EAAEoE,6JADoC;QAG/ClE,QAAQ,EAAE,kBAHqC;QAI/CC,eAAe,EAAE,IAJ8B;QAK/CC,YAAY,EAAE;MALiC,CAA5B,CAApB;MAQD,MAAMN,KAAK,CAACO,OAAN,EAAN;IAT0B;EAU3B;;EACK0E,wBAAwB,CAACC,SAAD,EAAU;IAAA;;IAAA;MACtC,MAAMlF,KAAK,SAAS,MAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAEqE,yKADmC;QAE7CpE,cAAc,EAAE;UAAC+E;QAAD,CAF6B;QAG9C9E,QAAQ,EAAE,iBAHoC;QAI9CC,eAAe,EAAE,IAJ6B;QAK9CC,YAAY,EAAE;MALgC,CAA5B,CAApB;MAOA,MAAMN,KAAK,CAACO,OAAN,EAAN;IARsC;EASvC;;EAEK4E,sBAAsB,CAACD,SAAD,EAAU;IAAA;;IAAA;MACpC,MAAMlF,KAAK,SAAS,MAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAEsE,iKADmC;QAE9CrE,cAAc,EAAE;UAAC+E,SAAS,EAAC,EAAC,GAAGA;UAAJ,CAAX;UAA0Bb,KAAK,EAAC,MAAI,CAACA;QAArC,CAF8B;QAG/CjE,QAAQ,EAAE,kBAHqC;QAI9CC,eAAe,EAAE,IAJ6B;QAK9CC,YAAY,EAAE;MALgC,CAA5B,CAApB;MAOA,MAAMN,KAAK,CAACO,OAAN,EAAN;IARoC;EASrC;;AA/CkC;;;;;;;;AAAzBmE,yBAAyB,sDALrCzG,wDAAS,CAAC;EACTiD,QAAQ,EAAE,uBADD;EAETC,UAAAA,yEAFS;;AAAA,CAAD,CAK4B,GAAzBuD,yBAAyB,CAAzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbb;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;IAUaY,eAAe,SAAfA,eAAe;EAY1B/G,YAAoBE,WAApB,EAAsDD,eAAtD,EAAgGiD,WAAhG,EAA4H;IAAxG;IAAkC;IAA0C;IAVhG,cAAS,KAAKhD,WAAL,CAAiBmD,SAA1B;IACA,0BAAqB;MAAC6B,UAAU,EAAE;IAAb,CAArB;IACA,gBAAW,EAAX;IACA,mBAAsB,CAAtB;IACA,oBAAuB,EAAvB;IACA,qBAAwB,EAAxB;IACA,sBAAyB,EAAzB;IACA,qBAAwB,EAAxB;IACA,qBAAwB,EAAxB;EAGO;;EAEP7E,QAAQ;IACN,KAAKH,WAAL,CAAiB+B,WAAjB,CAA6B;MAACC,WAAW,EAAE,KAAKA,WAAnB;MAAgCC,YAAY,EAAE,KAAKA,YAAnD;MAAiEC,aAAa,EAAE,KAAKA,aAArF;MAC3BC,cAAc,EAAE,KAAKA,cADM;MACUC,aAAa,EAAE,KAAKA,aAD9B;MAC6CC,aAAa,EAAE,KAAKA;IADjE,CAA7B;IAEA,KAAKrC,WAAL,CAAiBsC,mBAAjB,CAAqC7B,SAArC,CAA+C8B,WAAW,IAAG;MAC3D,KAAKC,kBAAL,GAA0BD,WAA1B;IACD,CAFD;IAGA,KAAKvC,WAAL,CAAiBmD,SAAjB,CAA2B1C,SAA3B,CAAqC2C,QAAQ,IAAG;MAC9C,KAAKC,QAAL,GAAgBD,QAAQ,CAACE,MAAT,CAAgBC,CAAC,IAAIA,CAAC,CAACC,IAAF,KAAW,SAAhC,CAAhB;IACD,CAFD;EAGD;;EAEKsD,gBAAgB;IAAA;;IAAA;MACpB,MAAMvF,KAAK,SAAS,KAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAEkF,0HADmC;QAE9CjF,cAAc,EAAE;UAAC2B,QAAQ,EAAE,KAAI,CAACA;QAAhB,CAF8B;QAG9C1B,QAAQ,EAAE,iBAHoC;QAI9CC,eAAe,EAAE,IAJ6B;QAK9CC,YAAY,EAAE;MALgC,CAA5B,CAApB;MAQA,MAAMN,KAAK,CAACO,OAAN,EAAN;IAToB;EAUrB;;EAEKiF,mBAAmB,CAAC3G,IAAD,EAAK;IAAA;;IAAA;MAC5B,MAAMmB,KAAK,SAAS,MAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAEmF,mIADmC;QAE9ClF,cAAc,EAAE;UAACtB;QAAD,CAF8B;QAG9CuB,QAAQ,EAAE,iBAHoC;QAI9CC,eAAe,EAAE,IAJ6B;QAK9CC,YAAY,EAAE;MALgC,CAA5B,CAApB;MAOA,MAAMN,KAAK,CAACO,OAAN,EAAN;IAR4B;EAS7B;;EAEKkF,iBAAiB,CAAC5G,IAAD,EAAK;IAAA;;IAAA;MAC1B,MAAMmB,KAAK,SAAS,MAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAE5B,6HADmC;QAE9C6B,cAAc,EAAE;UAACtB,IAAI,EAAE,EAAC,GAAGA;UAAJ,CAAP;UAAkBiD,QAAQ,EAAE,MAAI,CAACA;QAAjC,CAF8B;QAG9C1B,QAAQ,EAAE,gBAHoC;QAI9CC,eAAe,EAAE,IAJ6B;QAK9CC,YAAY,EAAE;MALgC,CAA5B,CAApB;MAOA,MAAMN,KAAK,CAACO,OAAN,EAAN;IAR0B;EAS3B;;EAEDmF,UAAU,CAACC,UAAD,EAAW;IACnB,KAAKlF,WAAL,GAAmBkF,UAAnB;IACA,KAAKlH,WAAL,CAAiB+B,WAAjB,CAA6B;MAACC,WAAW,EAAE,KAAKA,WAAnB;MAAgCC,YAAY,EAAE,KAAKA,YAAnD;MAC1BC,aAAa,EAAE,KAAKA,aADM;MACSC,cAAc,EAAE,KAAKA,cAD9B;MAC8CC,aAAa,EAAE,KAAKA,aADlE;MAE1BC,aAAa,EAAE,KAAKA;IAFM,CAA7B;EAGD;;EAEK8E,gBAAgB;IAAA;;IAAA;MACpB,MAAI,CAACnH,WAAL,CAAiB+B,WAAjB,CAA6B;QAACC,WAAW,EAAE,MAAI,CAACA,WAAnB;QAAgCC,YAAY,EAAE,MAAI,CAACA,YAAnD;QAC3BC,aAAa,EAAE,MAAI,CAACA,aADO;QACQC,cAAc,EAAE,MAAI,CAACA,cAD7B;QAC6CC,aAAa,EAAE,MAAI,CAACA,aADjE;QAE3BC,aAAa,EAAE,MAAI,CAACA;MAFO,CAA7B;IADoB;EAIrB;;EAGF+E,YAAY;IAET,KAAKpH,WAAL,CAAiB+B,WAAjB;IACA,KAAKG,aAAL,GAAqB,EAArB;IACA,KAAKC,cAAL,GAAsB,EAAtB;IACA,KAAKC,aAAL,GAAqB,EAArB;IACA,KAAKC,aAAL,GAAqB,EAArB;EACD;;AAjFyB;;;;;;;;;;AAAfwE,eAAe,sDAN3BrH,yDAAS,CAAC;EACTiD,QAAQ,EAAE,uBADD;EAETC,UAAAA,+DAFS;;AAAA,CAAD,CAMkB,GAAfmE,eAAe,CAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBb;AACA;AACA;AACA;AACA;AACA;IASaY,kBAAkB,SAAlBA,kBAAkB;EAqB7B3H,YAAoB4H,cAApB,EAA6D3H,eAA7D,EAA6F;IAAzE;IAAyC;IApB7D,iBAAY,KAAK2H,cAAL,CAAoBC,SAAhC,CAoB6F,CAnB7F;;IACA,qBAAwB,EAAxB,CAkB6F,CAjB7F;;IACA,kBAAqB,EAArB;IACA,kBAAqB,EAArB;IACA,0BAA6B,EAA7B;IACA,0BAAqB;MAAC3C,UAAU,EAAE;IAAb,CAArB,CAa6F,CAZ7F;;IACA,mBAAsB,CAAtB,CAW6F,CAV7F;;IACA,oBAAuB,EAAvB;IACA,eAAmB,IAAIuC,iEAAJ,EAAnB;IACA,gBAAmB,UAAnB;IACA,oBAAqB,KAArB;EAMiG;;EAEjGpH,QAAQ;IACN,KAAKuH,cAAL,CAAoBE,oBAApB,CAAyC;MAAC5F,WAAW,EAAE,KAAKA,WAAnB;MAAgCC,YAAY,EAAE,KAAKA,YAAnD;MACvCqE,aAAa,EAAE,KAAKA,aADmB;MACJuB,UAAU,EAAE,KAAKA,UADb;MACyBC,UAAU,EAAE,KAAKA,UAD1C;MACsDC,kBAAkB,EAAE,KAAKA,kBAD/E;MACmGC,YAAY,EAAE,KAAKA;IADtH,CAAzC;IAEA,KAAKN,cAAL,CAAoBpF,mBAApB,CAAwC7B,SAAxC,CAAkD8B,WAAW,IAAG;MAC9D,KAAKC,kBAAL,GAA0BD,WAA1B;IACD,CAFD;IAIFpB,OAAO,CAAC8G,GAAR,CAAY,WAAZ;IACA9G,OAAO,CAAC8G,GAAR,CAAY,KAAKN,SAAjB;IACA,KAAKO,qBAAL;EACC;;EAEDC,iBAAiB,CAACC,OAAD,EAAQ;IACvB,MAAMC,IAAI,GAAGD,OAAO,CAACE,YAAR,CAAqBC,KAArB,CAA2B,YAA3B,EAAyC,CAAzC,CAAb;IACA,KAAKb,cAAL,CAAoBc,YAApB,CAAiCH,IAAjC,EAAuC5H,SAAvC,CAAiDC,GAAG,IAAG;MACrD,MAAM+H,MAAM,GAAGC,GAAG,CAACC,eAAJ,CAAoBjI,GAApB,CAAf;MACA,MAAMkI,EAAE,GAAGC,QAAQ,CAACC,aAAT,CAAuB,GAAvB,CAAX;MACAF,EAAE,CAACG,YAAH,CAAgB,MAAhB,EAAwBN,MAAxB;MACAG,EAAE,CAACG,YAAH,CAAgB,UAAhB,EAA4B,GAAGX,OAAO,CAACY,QAAR,CAAiBC,OAAjB,CAAyB,KAAzB,EAA+B,GAA/B,CAAmC,GAAGb,OAAO,CAACc,KAAK,EAAlF;MACAL,QAAQ,CAACM,IAAT,CAAcC,WAAd,CAA0BR,EAA1B;MACAA,EAAE,CAACS,KAAH;MACAT,EAAE,CAACU,MAAH;IACD,CARD;EASD;;EAEKC,sBAAsB,CAACnB,OAAD,EAAQ;IAAA;;IAAA;MAC/B,MAAM7G,KAAK,SAAS,KAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QACjDC,SAAS,EAAE4F,4IADsC;QAEjD3F,cAAc,EAAE;UAAE0G,OAAO,EAAE,EAAE,GAAGA,OAAL;YAAcoB,QAAQ,EAAE,KAAI,CAACpB,OAAL,CAAaoB;UAArC;QAAX,CAFiC;QAGjD7H,QAAQ,EAAE,iBAHuC;QAIjDC,eAAe,EAAE,IAJgC;QAKjDC,YAAY,EAAE;MALmC,CAA5B,CAApB;MAOH,MAAMN,KAAK,CAACO,OAAN,EAAN;IARkC;EASnC;;EAEK2H,oBAAoB,CAACrB,OAAD,EAAQ;IAAA;;IAAA;MAChC,MAAM7G,KAAK,SAAS,MAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAE6F,yHADmC;QAE9C5F,cAAc,EAAE;UAAE0G,OAAO,EAAE,EAAE,GAAGA,OAAL;YAAcoB,QAAQ,EAAE,MAAI,CAACpB,OAAL,CAAaoB;UAArC;QAAX,CAF8B;QAG9C7H,QAAQ,EAAE,kBAHoC;QAI9CC,eAAe,EAAE,IAJ6B;QAK9CC,YAAY,EAAE;MALgC,CAA5B,CAApB;MAOA,MAAMN,KAAK,CAACO,OAAN,EAAN;IARgC;EASjC;;EAEKqF,gBAAgB;IAAA;;IAAA;MACpB,MAAI,CAACnF,WAAL,GAAiB,CAAjB;;MACA,MAAI,CAAC0F,cAAL,CAAoBE,oBAApB,CAAyC;QAAC5F,WAAW,EAAE,MAAI,CAACA,WAAnB;QAAgCC,YAAY,EAAE,MAAI,CAACA,YAAnD;QACvCqE,aAAa,EAAE,MAAI,CAACA,aADmB;QACJuB,UAAU,EAAE,MAAI,CAACA,UADb;QACyBC,UAAU,EAAE,MAAI,CAACA,UAD1C;QACsDC,kBAAkB,EAAE,MAAI,CAACA,kBAD/E;QACmGC,YAAY,EAAE,MAAI,CAACA;MADtH,CAAzC;IAFoB;EAInB;;EAEJZ,YAAY;IAET,KAAKM,cAAL,CAAoBE,oBAApB;IACA,KAAKtB,aAAL,GAAqB,EAArB;IACA,KAAKuB,UAAL,GAAkB,EAAlB;IACA,KAAKC,UAAL,GAAkB,EAAlB;IACA,KAAKC,kBAAL,GAA0B,EAA1B;EACD;;EAEDd,UAAU,CAACC,UAAD,EAAW;IACnB,KAAKlF,WAAL,GAAmBkF,UAAnB;IACA,KAAKQ,cAAL,CAAoBE,oBAApB,CAAyC;MAAC5F,WAAW,EAAE,KAAKA,WAAnB;MAAgCC,YAAY,EAAE,KAAKA,YAAnD;MACtCqE,aAAa,EAAE,KAAKA,aADkB;MACHuB,UAAU,EAAE,KAAKA,UADd;MAC0BC,UAAU,EAAE,KAAKA,UAD3C;MACuDC,kBAAkB,EAAE,KAAKA,kBADhF;MACoGC,YAAY,EAAE,KAAKA;IADvH,CAAzC;EAGD;;EAED0B,UAAU,CAACC,IAAD,EAAYC,IAAZ,EAA0BC,QAA1B,EAA0C;IAElD,MAAMC,CAAC,GAAGjB,QAAQ,CAACC,aAAT,CAAuB,GAAvB,CAAV;IACAD,QAAQ,CAACM,IAAT,CAAcC,WAAd,CAA0BU,CAA1B;IACAA,CAAC,CAACC,KAAF,CAAQC,OAAR,GAAkB,MAAlB;IACA,MAAMC,IAAI,GAAG,IAAIC,IAAJ,CAAS,CAACP,IAAD,CAAT,EAAiB;MAAEC,IAAI,EAAEA;IAAR,CAAjB,CAAb;IACA,MAAMO,GAAG,GAAGC,MAAM,CAAC1B,GAAP,CAAWC,eAAX,CAA2BsB,IAA3B,CAAZ;IACAH,CAAC,CAACO,IAAF,GAASF,GAAT;IAAcL,CAAC,CAACQ,QAAF,GAAaT,QAAb;IAAuBC,CAAC,CAACT,KAAF;IACrCe,MAAM,CAAC1B,GAAP,CAAW6B,eAAX,CAA2BJ,GAA3B;EACD;;EAEDK,GAAG;IAED,KAAK9C,cAAL,CAAoB+C,SAApB,CAA8B;MAACzI,WAAW,EAAE,KAAKA,WAAnB;MAAgCC,YAAY,EAAE,KAAKA,YAAnD;MAAiEyI,QAAQ,EAAC,KAAKA,QAA/E;MAC5BpE,aAAa,EAAE,KAAKA,aADQ;MACOuB,UAAU,EAAE,KAAKA,UADxB;MACoCC,UAAU,EAAE,KAAKA;IADrD,CAA9B,EACgGrH,SADhG,CAGEkK,QAAQ,IAAE;MAER,KAAKjB,UAAL,CAAgBiB,QAAhB,EAA0B,UAA1B,EAAsC,YAAtC;IACD,CANH;EASD;;EACDC,gBAAgB,CAACC,KAAD,EAAc;IAC5B,IAAIA,KAAK,KAAK,CAAd,EAAiB;MACf,OAAO,aAAP;IACD,CAFD,MAGK,IAAIA,KAAK,KAAK,CAAd,EAAiB;MACpB,OAAO,WAAP;IACD,CAFI,MAGA,IAAIA,KAAK,KAAK,CAAd,EAAiB;MACpB,OAAO,WAAP;IACD;;IACA,OAAO,UAAP;EACA;;EACD3C,qBAAqB;IAGnB,KAAKP,SAAL,CAAelH,SAAf,CAAyB;MACvBqK,IAAI,EAAGC,GAAD,IAAQ;QACZ,IAAIC,CAAJ;QACA,IAAIC,CAAJ;QACA,KAAKC,aAAL,GAAmBH,GAAnB;QACA,IAAII,GAAG,GAAE,KAAKD,aAAL,CAAmBE,MAA5B;;QAEA,KAAIJ,CAAC,GAAC,CAAN,EAAQA,CAAC,GAACG,GAAV,EAAcH,CAAC,EAAf,EAAkB;UAEd,KAAKE,aAAL,CAAmBF,CAAnB,EAAsBxB,QAAtB;;UACA,IAAG,KAAK0B,aAAL,CAAmBF,CAAnB,EAAsBxB,QAAtB,CAA+B4B,MAA/B,IAAuC,CAA1C,EACJ;YAEG,IAAIC,kBAAkB,GAAC,IAAIC,KAAJ,EAAvB;YACD,KAAMC,QAAN,GAAgB,GAAhB;YACAF,kBAAkB,CAACG,IAAnB,CAAwB,KAAKD,QAA7B;YACA,KAAKE,aAAL,GAAoBJ,kBAAkB,CAACK,IAAnB,CAAwB,GAAxB,CAApB;UAED,CARG,MAUJ;YACE,IAAIL,kBAAkB,GAAC,IAAIC,KAAJ,EAAvB;;YACF,KAAIL,CAAC,GAAC,CAAN,EAASA,CAAC,GAAE,KAAKC,aAAL,CAAmBF,CAAnB,EAAsBxB,QAAtB,CAA+B4B,MAA3C,EAAmDH,CAAC,EAApD,EAAuD;cAEtD,KAAMM,QAAN,GAAgB,KAAKL,aAAL,CAAmBF,CAAnB,EAAsBxB,QAAtB,CAA+ByB,CAA/B,EAAkCjC,QAAlD;cAEAqC,kBAAkB,CAACG,IAAnB,CAAwB,KAAKD,QAA7B;YAEA;;YACD,KAAKE,aAAL,GAAoBJ,kBAAkB,CAACK,IAAnB,CAAwB,IAAxB,CAApB;UAED;;UAED,KAAKR,aAAL,CAAmBF,CAAnB,EAAsBxB,QAAtB,CAA+BgC,IAA/B,CAAoC,KAAKC,aAAzC;UACAtK,OAAO,CAAC8G,GAAR,CAAY,KAAKwD,aAAjB;QAEG;;QAEDtK,OAAO,CAAC8G,GAAR,CAAYkD,GAAZ;MAED;IAxCsB,CAAzB;IA4CAhK,OAAO,CAAC8G,GAAR,CAAY,KAAKN,SAAjB;EAED;;AAhL0B;;;;;;;;AAAlBF,kBAAkB,sDAN9BjI,wDAAS,CAAC;EACTiD,QAAQ,EAAE,0BADD;EAETC,UAAAA,kEAFS;;AAAA,CAAD,CAMqB,GAAlB+E,kBAAkB,CAAlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbqC;AACO;AAIpB;AAEoB;AAEiB;AACR;AACE;AACI;IAO3D,qBAAqB,SAArB,qBAAqB;IAwChC,YAAoB,YAA0B,EACpC,KAAqB,EAAU,MAAc,EAAU,WAAwB,EAC/E,cAA8B,EAAU,WAA4B;QAF1D,iBAAY,GAAZ,YAAY,CAAc;QACpC,UAAK,GAAL,KAAK,CAAgB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,gBAAW,GAAX,WAAW,CAAa;QAC/E,mBAAc,GAAd,cAAc,CAAgB;QAAU,gBAAW,GAAX,WAAW,CAAiB;QAzC9E,uBAAkB,GAAG,EAAC,UAAU,EAAE,CAAC,EAAC,CAAC;QACrC,kEAAkE;QAClE,gBAAW,GAAW,CAAC,CAAC;QACxB,kEAAkE;QAClE,iBAAY,GAAW,EAAE,CAAC;QAC1B,kEAAkE;QAClE,kBAAa,GAAW,EAAE,CAAC;QAC3B,kEAAkE;QAClE,mBAAc,GAAW,EAAE,CAAC;QAC5B,kEAAkE;QAClE,cAAS,GAAW,EAAE,CAAC;QACvB,kEAAkE;QAClE,gBAAW,GAAW,EAAE,CAAC;QACzB,kEAAkE;QAClE,cAAS,GAAW,EAAE,CAAC;QACvB,kEAAkE;QAClE,iBAAY,GAAW,EAAE,CAAC;QAC1B,kEAAkE;QAClE,aAAQ,GAAW,EAAE,CAAC;QACtB,kEAAkE;QAClE,mBAAc,GAAW,EAAE,CAAC;QAC5B,kEAAkE;QAClE,sBAAiB,GAAW,EAAE,CAAC;QAC/B,kEAAkE;QAClE,kBAAa,GAAW,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;QAGzE,gBAAW,GAAQ,EAAE;QAErB,YAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QACnC,cAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;QAC1C,eAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;QACzC,UAAK,GAAU,IAAI,mEAAK,EAAE,CAAC;QACnB,sBAAiB,GAAG,IAAI,+CAAa,CAAO,CAAC,CAAC,CAAC;QACvD,iBAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;QACrD,aAAQ,GAAW,UAAU,CAAC;IAMoD,CAAC;IAEnF,QAAQ;QACN,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAG,IAAI,CAAC,WAAW,EAAE,EAAC;YACtB,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;SACnC;IACF,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,QAAQ,CAAC;YAClB,8CAA8C;SAC7C;aACI,IAAI,KAAK,KAAK,CAAC,EAAE;YACpB,OAAO,UAAU,CAAC;YACpB,8CAA8C;SAE/C;aACI,IAAI,KAAK,KAAK,CAAC,EAAE;YACpB,OAAO,sBAAsB,CAAC;YAChC,8CAA8C;SAE/C;aAEI,IAAI,KAAK,KAAI,CAAC,EAAC;YACjB,OAAO,sBAAsB,CAAC;SAEhC;IACD,CAAC;IAED,YAAY,CAAC,KAAc;QACzB,IAAI,KAAK,EAAC;YACR,OAAO,IAAI,CAAC;SACb;aACG;YACF,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,SAAS,CAAC,KAAc;QAExB,IAAG,KAAK,IAAE,IAAI,EAAC;YAEb,OAAO,IAAI;SACZ;aACG;YACJ,OAAO,EAAE,CAAC;SACT;IACD,CAAC;IAGD,cAAc,CAAC,KAAa;QAC1B,IAAI,KAAK,KAAK,GAAG,EAAE;YACjB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;SAC3B;aAAM,IAAI,KAAK,KAAK,GAAG,EAAE;YACxB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;QACH,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;IAC3B,CAAC;IAEC,SAAS;QACP,IAAI,CAAC,WAAW,GAAC,CAAC;QAClB,IAAI,CAAC,YAAY,CAAC,4BAA4B,CAAC,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY;YAC5G,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW;YAClI,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,EAAC,IAAI,CAAC,WAAW,EAAC,CAAC,CAAC;QAC9M,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;YAC5D,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QAEV,IAAG,IAAI,CAAC,WAAW,EAAE,EAAC;YACpB,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;QACtE,IAAI,CAAC,WAAW,GAAC,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,UAAU,CAAC,UAAU;QACnB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,4BAA4B,CAAC,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY;YAC3G,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW;YAChI,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,EAAC,IAAI,CAAC,WAAW,EAAC,CAAC,CAAC;IACnN,CAAC;IAED,aAAa,CAAC,KAAU;QACtB,MAAM,KAAK,GAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,GAAG,GAAS,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAGjE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;YACrE,MAAM,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YAEhE,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC;SAEpH;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACzE,MAAM,KAAK,GAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;YACrE,MAAM,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YAEhE,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC;SACpH;IACH,CAAC;IAED,UAAU,CAAC,IAAS,EAAE,IAAY,EAAE,QAAgB;QAEnD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;QAAC,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAEA,GAAG;QAED,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ;YAChH,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAC7G,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc;YACjH,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAC,WAAW,EAAC,IAAI,CAAC,WAAW,EAAC,CAAC,CAAC,SAAS,CAEnF,QAAQ,GAAE;YAER,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAEtD,CAAC,CACF;IAEH,CAAC;IAED,WAAW;QACT,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAChC,2DAA2D;YAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxC,IAAG,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE;gBACvB,kBAAkB,GAAG,KAAK,CAAC;aAC5B;QACH,CAAC,CAAC;QACF,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7D,kCAAkC;QAClC,IAAI,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAS,CAAC;YAC7E,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAEb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAAA,CAAC;IAEF,WAAW,CAAC,KAAa,EAAE,KAAa;QACtC,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,IAAI,KAAK,EAAE;gBACT,OAAO,MAAM,GAAG,KAAK,GAAG,GAAG,GAAC,GAAG,CAAC;aACjC;iBAAM;gBACL,OAAO,KAAK,CAAC;aACd;SACF;aAAM,IAAI,KAAK,KAAK,CAAC,EAAE;YACtB,OAAO,kBAAkB,CAAC;SAC3B;aAAM,IAAI,KAAK,KAAK,CAAC,EAAE;YACtB,OAAO,cAAc,CAAC;SACvB;aAAM;YACL,IAAI,KAAK,EAAE;gBACT,OAAO,MAAM,GAAG,KAAK,GAAG,GAAG,GAAC,GAAG,CAAC;aACjC;iBAAM;gBACL,OAAO,EAAE,CAAC;aACX;SACF;IACH,CAAC;;;;;;;;;;AA7OU,qBAAqB;IALjC,yDAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;QAC7B,+EAA6C;;KAE9C,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;IAQa2E,UAAU,SAAVA,UAAU;EA8CrBtM,YAAoB4H,cAApB,EAA4D3H,eAA5D,EAAsGsM,YAAtG,EACUC,KADV,EACyCrM,MADzC,EACuD;IADnC;IAAwC;IAA0C;IAC5F;IAA+B;IA7CzC,kBAAa;MACXsM,IAAI,EAAE,SADK;MAEXC,MAAM,EAAE,SAFG;MAGXC,MAAM,EAAE;IAHG,CAAb;IAKA,gBAAW,EAAX;IACA,uBAAuB,EAAvB;IACA,0BAAqB;MAACzH,UAAU,EAAE;IAAb,CAArB;IACA,YAAiD,MAAjD,CAqCuD,CApCvD;;IACA,mBAAsB,CAAtB;IACA,iBAAY,EAAZ,CAkCuD,CAjCvD;;IACA,oBAAuB,EAAvB,CAgCuD,CA/BvD;;IACA,qBAAwB,EAAxB,CA8BuD,CA7BvD;;IACA,kBAAqB,EAArB;IACA,kBAAqB,EAArB;IACA,0BAA6B,EAA7B;IACA,wBAAwB,EAAxB;IACA,oBAAqB,KAArB,CAwBuD,CArBvD;;IACA,oCAAuC,EAAvC;IACA,eAAU,KAAKqH,YAAL,CAAkBK,MAA5B;IAEA,6BAAwB,KAAxB;IACA,qBAAgB,IAAhB;IACA,cAASX,4EAAT;IACA,cAAS,EAAT;IAEA,iBAAY,KAAKrE,cAAL,CAAoBC,SAAhC,CAYuD,CAXvD;;IACA,4BAA+B,EAA/B;IACA,gBAAW,EAAX;IACA,qBAA6B,EAA7B;IAIA,wBAAyB,IAAzB;IACA,oBAAwB,KAAxB;EAG2D;;EAE3DxH,QAAQ;IACN,MAAMyM,WAAW,GAAGxC,MAAM,CAACyC,QAAP,CAAgBJ,MAApC;IACA,MAAMK,SAAS,GAAG,IAAIC,eAAJ,CAAoBH,WAApB,CAAlB;IACA,MAAMI,SAAS,GAAGF,SAAS,CAACG,GAAV,CAAc,MAAd,CAAlB;;IACA,IAAGD,SAAS,KAAK,QAAd,IAA0BA,SAAS,KAAK,QAAxC,IAAoDA,SAAS,KAAK,SAArE,EAAgF;MAC9E,KAAK/F,UAAL,CAAgB+F,SAAhB;IACD,CAFD,MAEO;MACL,KAAKE,gBAAL;IACD;;IAED,IAAIC,UAAU,GAAGC,IAAI,CAACC,KAAL,CAAWC,YAAY,CAACC,OAAb,CAAqB,YAArB,CAAX,CAAjB;IACA,KAAKC,MAAL,GAAcL,UAAU,CAACK,MAAzB;IACA,KAAKC,aAAL,GAAqB,IAArB;IACA,KAAKvF,qBAAL;EACD;;EAEDA,qBAAqB;IAGnB,KAAKP,SAAL,CAAelH,SAAf,CAAyB;MACvBqK,IAAI,EAAGC,GAAD,IAAQ;QACZ,IAAIC,CAAJ;QACA,IAAIC,CAAJ;QACA,KAAKC,aAAL,GAAmBH,GAAnB;QACA,IAAII,GAAG,GAAE,KAAKD,aAAL,CAAmBE,MAA5B;;QAEA,KAAIJ,CAAC,GAAC,CAAN,EAAQA,CAAC,GAACG,GAAV,EAAcH,CAAC,EAAf,EAAkB;UAEd,KAAKE,aAAL,CAAmBF,CAAnB,EAAsBxB,QAAtB;;UACA,IAAG,KAAK0B,aAAL,CAAmBF,CAAnB,EAAsBxB,QAAtB,CAA+B4B,MAA/B,IAAuC,CAA1C,EACJ;YAEG,IAAIC,kBAAkB,GAAC,IAAIC,KAAJ,EAAvB;YACD,KAAMC,QAAN,GAAgB,GAAhB;YACAF,kBAAkB,CAACG,IAAnB,CAAwB,KAAKD,QAA7B;YACA,KAAKE,aAAL,GAAoBJ,kBAAkB,CAACK,IAAnB,CAAwB,GAAxB,CAApB;UAED,CARG,MAUJ;YACE,IAAIL,kBAAkB,GAAC,IAAIC,KAAJ,EAAvB;;YACF,KAAIL,CAAC,GAAC,CAAN,EAASA,CAAC,GAAE,KAAKC,aAAL,CAAmBF,CAAnB,EAAsBxB,QAAtB,CAA+B4B,MAA3C,EAAmDH,CAAC,EAApD,EAAuD;cAEtD,KAAMM,QAAN,GAAgB,KAAKL,aAAL,CAAmBF,CAAnB,EAAsBxB,QAAtB,CAA+ByB,CAA/B,EAAkCjC,QAAlD;cAEAqC,kBAAkB,CAACG,IAAnB,CAAwB,KAAKD,QAA7B;YAEA;;YACD,KAAKE,aAAL,GAAoBJ,kBAAkB,CAACK,IAAnB,CAAwB,IAAxB,CAApB;UAED;;UAED,KAAKR,aAAL,CAAmBF,CAAnB,EAAsBxB,QAAtB,CAA+BgC,IAA/B,CAAoC,KAAKC,aAAzC;UACAtK,OAAO,CAAC8G,GAAR,CAAY,KAAKwD,aAAjB;QAEG;;QAEDtK,OAAO,CAAC8G,GAAR,CAAYkD,GAAZ;MAED;IAxCsB,CAAzB;IA4CAhK,OAAO,CAAC8G,GAAR,CAAY,KAAKN,SAAjB;EAED;;EACD+F,iBAAiB,CAACC,KAAD,EAAW;IAC1B,KAAKC,YAAL,GAAoB,CAACD,KAAK,CAACE,MAAN,CAAaC,OAAlC;EACD;;EAEDC,qBAAqB;IACnB,KAAK/L,WAAL,GAAiB,CAAjB;IACA,KAAK0F,cAAL,CAAoBsG,wBAApB,CAA6C;MAAChM,WAAW,EAAE,KAAKA,WAAnB;MAAgCC,YAAY,EAAE,KAAKA,YAAnD;MAC7CgM,4BAA4B,EAAE,KAAKA;IADU,CAA7C;IAGG,KAAKvG,cAAL,CAAoBpF,mBAApB,CAAwC7B,SAAxC,CAAkD8B,WAAW,IAAG;MAC/D,KAAKC,kBAAL,GAA0BD,WAA1B;IACD,CAFA;EAGJ;;EAED2L,WAAW;IACT,IAAI,KAAKC,aAAT,EAAwB;MACtBC,aAAa,CAAC,KAAKD,aAAN,CAAb;IACD;;IAED,IAAI,KAAKE,UAAT,EAAqB;MACnB,KAAKA,UAAL,CAAgBC,IAAhB,GAAuBC,KAAvB,CAA8BrN,GAAD,IAASC,OAAO,CAAC8G,GAAR,CAAY/G,GAAZ,CAAtC;IACD;EACF;;EAEDsN,gBAAgB,CAACC,IAAD,EAAK;IACnB,KAAKxO,MAAL,CAAYyO,QAAZ,CAAqB,EAArB,EAAyB;MACxBC,UAAU,EAAE,KAAKrC,KADO;MAExBsC,WAAW,EAAE;QACXH;MADW;IAFW,CAAzB;EAMD;;EAEDvB,gBAAgB;IACd,KAAK2B,oBAAL;;IACA,IAAG,CAAC,KAAKV,aAAT,EAAwB;MACtB,KAAKA,aAAL,GAAqBW,WAAW,CAAC,MAAK;QACpC,IAAG,KAAKC,IAAL,KAAc,MAAjB,EAAyB;UACxB,KAAKF,oBAAL;QACA;MACF,CAJ+B,EAI7B,KAJ6B,CAAhC;IAKD;EACF;;EAEDA,oBAAoB;IAClB,KAAKxC,YAAL,CAAkB2C,YAAlB,CAA+B;MAAChN,WAAW,EAAE,KAAKA,WAAnB;MAAgCC,YAAY,EAAE,KAAKA,YAAnD;MAC7BqE,aAAa,EAAE,KAAK2I,oBADS;MACa1J,WAAW,EAAE,KAAK2J,gBAD/B;MACgDpH,UAAU,EAAE,KAAKA;IADjE,CAA/B;IAEE,KAAKuE,YAAL,CAAkB/J,mBAAlB,CAAsC7B,SAAtC,CAAgD8B,WAAW,IAAG;MAC9D,KAAKC,kBAAL,GAA0BD,WAA1B;IACD,CAFC;EAGH;;EAGD4M,qBAAqB;IACnB,KAAKzH,cAAL,CAAoBE,oBAApB,CAAyC;MAAC5F,WAAW,EAAE,KAAKA,WAAnB;MAAgCC,YAAY,EAAE,KAAKA,YAAnD;MACvCqE,aAAa,EAAE,KAAKA,aADmB;MAEtCuB,UAAU,EAAE,KAAKA,UAFqB;MAETC,UAAU,EAAG,KAAKA,UAFT;MAEqBC,kBAAkB,EAAE,KAAKA,kBAF9C;MAEkEC,YAAY,EAAE,KAAKA;IAFrF,CAAzC;IAGA,KAAKN,cAAL,CAAoBpF,mBAApB,CAAwC7B,SAAxC,CAAkD8B,WAAW,IAAG;MAC9D,KAAKC,kBAAL,GAA0BD,WAA1B;IACD,CAFD;EAGD;;EAED0E,UAAU,CAAC8H,IAAD,EAAK;IACb,IAAGA,IAAI,KAAK,QAAZ,EAAsB;MACpB,KAAKI,qBAAL;IACD,CAFD,MAEM,IAAIJ,IAAI,KAAK,SAAb,EAAuB;MAC3B,KAAKhB,qBAAL;IACD,CAFK,MAEA;MACJ,KAAKb,gBAAL;IACD;;IAED,KAAKsB,gBAAL,CAAsBO,IAAtB;IACA,KAAKA,IAAL,GAAYA,IAAZ;IACA,KAAK/M,WAAL,GAAmB,CAAnB;IACA,KAAKoN,eAAL,GAAuB,IAAvB;IACA,KAAK9I,aAAL,GAAqB,EAArB;EAED;;EAED+I,oBAAoB,CAACnI,UAAD,EAAW;IAC7B,KAAKlF,WAAL,GAAmBkF,UAAnB;;IACA,IAAG,KAAK6H,IAAL,KAAc,QAAjB,EAA2B;MAEzB,KAAKrH,cAAL,CAAoBE,oBAApB,CAAyC;QAAC5F,WAAW,EAAE,KAAKA,WAAnB;QAAgCC,YAAY,EAAE,KAAKA,YAAnD;QACvCqE,aAAa,EAAE,KAAKA,aADmB;QAEvCuB,UAAU,EAAE,KAAKA,UAFsB;QAEVC,UAAU,EAAG,KAAKA,UAFR;QAEoBC,kBAAkB,EAAE,KAAKA,kBAF7C;QAEiEC,YAAY,EAAE,KAAKA;MAFpF,CAAzC;IAID,CAND,MAOM,IAAI,KAAK+G,IAAL,KAAc,SAAlB,EAA4B;MAE9B,KAAKrH,cAAL,CAAoBsG,wBAApB,CAA6C;QAAChM,WAAW,EAAE,KAAKA,WAAnB;QAAgCC,YAAY,EAAE,KAAKA,YAAnD;QAC7CgM,4BAA4B,EAAE,KAAKA;MADU,CAA7C;IAID,CANG,MAQD;MACH,KAAK5B,YAAL,CAAkB2C,YAAlB,CAA+B;QAAChN,WAAW,EAAE,KAAKA,WAAnB;QAAgCC,YAAY,EAAE,KAAKA,YAAnD;QAC/BqE,aAAa,EAAE,KAAKA,aADW;QACIf,WAAW,EAAE,KAAK2J,gBADtB;QACuCpH,UAAU,EAAE,KAAKA;MADxD,CAA/B;IAID;EACF;;EAEDwH,aAAa,CAACC,KAAD,EAAM;IACjB,MAAMC,KAAK,GAAQ,IAAItL,IAAJ,CAASqL,KAAK,CAACC,KAAf,CAAnB;IACA,MAAMC,GAAG,GAAQ,IAAIvL,IAAJ,CAAS,IAAIA,IAAJ,GAAWwL,WAAX,GAAyBC,KAAzB,CAA+B,CAA/B,EAAiC,CAAC,CAAlC,CAAT,CAAjB;IACA,MAAMC,MAAM,GAAIH,GAAG,GAAGD,KAAtB,CAHiB,CAGa;;IAC9B,MAAMK,QAAQ,GAAGC,IAAI,CAACC,KAAL,CAAWH,MAAM,GAAG,QAApB,CAAjB,CAJiB,CAI+B;;IAChD,MAAMI,OAAO,GAAGF,IAAI,CAACC,KAAL,CAAYH,MAAM,GAAG,QAAV,GAAsB,OAAjC,CAAhB,CALiB,CAK0C;;IAC3D,MAAMK,QAAQ,GAAGH,IAAI,CAACI,KAAL,CAAaN,MAAM,GAAG,QAAV,GAAsB,OAAvB,GAAkC,KAA7C,CAAjB,CANiB,CAMqD;;IACtE,MAAMO,GAAG,GAAGN,QAAQ,IAAI,CAAZ,GAAiBA,QAAQ,GAAG,EAAZ,GAAkBG,OAAlC,GAA4CA,OAAxD;IACA,OAAO,GAAGG,GAAG,CAACC,QAAJ,GAAehF,MAAf,KAA0B,CAA1B,GAA8B,GAA9B,GAAoC,EAAE,GAAG+E,GAAG,IAAIF,QAAQ,CAACG,QAAT,GAAoBhF,MAApB,KAA+B,CAA/B,GAAmC,GAAnC,GAAyC,EAAE,GAAG6E,QAAQ,EAAhH;EACD;;EAIK9I,gBAAgB;IAAA;;IAAA;MACpB,KAAI,CAACnF,WAAL,GAAiB,CAAjB;;MAEA,KAAI,CAAC0F,cAAL,CAAoBE,oBAApB,CAAyC;QAAC5F,WAAW,EAAE,KAAI,CAACA,WAAnB;QAAgCC,YAAY,EAAE,KAAI,CAACA,YAAnD;QACvCqE,aAAa,EAAE,KAAI,CAACA,aADmB;QAEvCuB,UAAU,EAAE,KAAI,CAACA,UAFsB;QAEVC,UAAU,EAAG,KAAI,CAACA,UAFR;QAEoBC,kBAAkB,EAAE,KAAI,CAACA,kBAF7C;QAEiEC,YAAY,EAAE,KAAI,CAACA;MAFpF,CAAzC;IAHoB;EAOrB;;EAEKqI,uBAAuB;IAAA;;IAAA;MAC3B,MAAI,CAACrO,WAAL,GAAiB,CAAjB;;MAEA,MAAI,CAAC0F,cAAL,CAAoB4I,qBAApB,CAA0C;QAACtO,WAAW,EAAE,MAAI,CAACA,WAAnB;QAAgCC,YAAY,EAAE,MAAI,CAACA,YAAnD;QACxCqE,aAAa,EAAE,MAAI,CAACA,aADoB;QAExCuB,UAAU,EAAE,MAAI,CAACA,UAFuB;QAEXC,UAAU,EAAG,MAAI,CAACA;MAFP,CAA1C;IAH2B;EAO5B;;EAGKyI,sBAAsB;IAAA;;IAAA;MAC1B,MAAI,CAACvO,WAAL,GAAiB,CAAjB;;MACA,MAAI,CAACqK,YAAL,CAAkB2C,YAAlB,CAA+B;QAAChN,WAAW,EAAE,MAAI,CAACA,WAAnB;QAAgCC,YAAY,EAAE,MAAI,CAACA,YAAnD;QAC/BqE,aAAa,EAAE,MAAI,CAACA,aADW;QACIf,WAAW,EAAE,MAAI,CAAC2J,gBADtB;QACwCpH,UAAU,EAAE,MAAI,CAACA;MADzD,CAA/B;IAF0B;EAM3B;;EAEK0I,mBAAmB;IAAA;;IAAA;MAEvB,MAAI,CAACxO,WAAL,GAAiB,CAAjB;;MAEA,MAAI,CAAC0F,cAAL,CAAoBsG,wBAApB,CAA6C;QAAChM,WAAW,EAAE,MAAI,CAACA,WAAnB;QAAgCC,YAAY,EAAE,MAAI,CAACA,YAAnD;QAC7CgM,4BAA4B,EAAE,MAAI,CAACA;MADU,CAA7C;IAJuB;EAQpB;;EAECwC,iBAAiB;IAAA;;IAAA;MACrB,IAAG,MAAI,CAACrB,eAAR,EAAyB;QACvB,MAAM7N,KAAK,SAAS,MAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;UAC9CC,SAAS,EAAEmK,6HADmC;UAE9ClK,cAAc,EAAE;YAAC0G,OAAO,EAAE,MAAI,CAACgH;UAAf,CAF8B;UAG9CzN,QAAQ,EAAE,kBAHoC;UAI9CC,eAAe,EAAE,IAJ6B;UAK9CC,YAAY,EAAE;QALgC,CAA5B,CAApB;QAQA,MAAMN,KAAK,CAACO,OAAN,EAAN;MACD;IAXoB;EAYtB;;EAGK4O,kBAAkB,CAACC,SAAD,EAAmB;IAAA;;IAAA;MACvC,IAAIC,OAAO,GAAG,IAAd;;MACA,IAAID,SAAJ,EAAe;QACbC,OAAO,GAAG,MAAI,CAACxB,eAAL,CAAqB9O,EAA/B;MACD;;MAED,MAAMiB,KAAK,SAAS,MAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAEoK,gIADmC;QAE9CnK,cAAc,EAAE;UAACkP,OAAO,EAAEA;QAAV,CAF8B;QAG9CjP,QAAQ,EAAE,kBAHoC;QAI9CC,eAAe,EAAE,IAJ6B;QAK9CC,YAAY,EAAE;MALgC,CAA5B,CAApB;MAQA,MAAMN,KAAK,CAACO,OAAN,EAAN;IAduC;EAe1C;;EAGD+O,sBAAsB;IACpB,IAAI,KAAKxC,UAAL,CAAgByC,KAAhB,KAA0B9E,6EAA9B,EAAoE;MAClE,KAAKqC,UAAL,CAAgB4C,KAAhB,GAAwBC,IAAxB,CAA6B,MAAK;QAChC,KAAK7C,UAAL,CAAgB8C,IAAhB,CAAqB,0BAArB,EAAiD,KAAK3D,MAAtD,EAA8D,UAA9D;MACD,CAFD,EAEGe,KAFH,CAEUrN,GAAD,IAAQ;QACfC,OAAO,CAAC8G,GAAR,CAAY/G,GAAZ;MACD,CAJD;IAKD,CAND,MAMO,IAAI,KAAKmN,UAAL,CAAgByC,KAAhB,KAA0B9E,6EAA9B,EAAoE;MACzE,KAAKqC,UAAL,CAAgB8C,IAAhB,CAAqB,0BAArB,EAAiD,KAAK3D,MAAtD,EAA8D,UAA9D;IACD;EACF;;EAED5C,gBAAgB,CAACC,KAAD,EAAc;IAC5B,IAAIA,KAAK,KAAK,CAAd,EAAiB;MACf,OAAO,aAAP;IACD,CAFD,MAGK,IAAIA,KAAK,KAAK,CAAd,EAAiB;MACpB,OAAO,WAAP;IACD,CAFI,MAGA,IAAIA,KAAK,KAAK,CAAd,EAAiB;MACpB,OAAO,WAAP;IACD,CAFI,MAGCA,KAAK,KAAK,CAAX;;IACJ,OAAO,UAAP;EACA;;EAEKuG,sBAAsB;IAAA;;IAAA;MACxB,MAAM7P,KAAK,SAAS,MAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAEwK,2HADmC;QAE9CvK,cAAc,EAAE;UAAC0G,OAAO,EAAE,MAAI,CAACgH;QAAf,CAF8B;QAG9CzN,QAAQ,EAAE,iBAHoC;QAI9CC,eAAe,EAAE,IAJ6B;QAK9CC,YAAY,EAAE;MALgC,CAA5B,CAApB;MAOA,MAAMN,KAAK,CAACO,OAAN,EAAN;IARwB;EAS3B;;EAEKuP,kBAAkB;IAAA;;IAAA;MACpB,IAAIT,OAAO,GAAG,IAAd;MAEF,MAAMrP,KAAK,SAAS,MAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAEyK,8HADmC;QAE9C;QACAxK,cAAc,EAAE,EAH8B;QAI9CC,QAAQ,EAAE,iBAJoC;QAK9CC,eAAe,EAAE,IAL6B;QAM9CC,YAAY,EAAE;MANgC,CAA5B,CAApB;MAQA,MAAMN,KAAK,CAACO,OAAN,EAAN;MACA,MAAM;QAAE6H;MAAF,UAAiBpI,KAAK,CAAC+P,YAAN,EAAvB;IAZsB;EAavB;;EAEDC,OAAO,CAAChO,CAAD,EAASiO,KAAT,EAAmB;IACxB,IAAIC,EAAE,GAAG5I,QAAQ,CAAC6I,sBAAT,CAAgCF,KAAhC,CAAT;;IAEA,IAAIjO,CAAC,CAACsK,MAAF,CAASC,OAAT,KAAqB,IAAzB,EAA+B;MAE7B,KAAK,IAAI9C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyG,EAAE,CAACrG,MAAvB,EAA+BJ,CAAC,EAAhC,EAAoC;QAClCyG,EAAE,CAACzG,CAAD,CAAF,CAAM2G,SAAN,CAAgBrI,MAAhB,CAAuB,QAAvB;;QAEA,IAAGkI,KAAK,IAAE,KAAV,EAEA;UACE,KAAKI,gBAAL,GAAsB,IAAtB;QAED,CALD,MAMK;UACH,KAAK,IAAI5G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyG,EAAE,CAACrG,MAAvB,EAA+BJ,CAAC,EAAhC,EAAoC;YAClCyG,EAAE,CAACzG,CAAD,CAAF,CAAM2G,SAAN,CAAgBE,GAAhB,CAAoB,QAApB;;YACA,IAAGL,KAAK,IAAE,KAAV,EAEA;cACE,KAAKI,gBAAL,GAAsB,KAAtB;YAED;UAGN;QACF;MAAC;IAAC;EAAC;;EAENE,WAAW,CAACjH,KAAD,EAAgBkH,KAAhB,EAA6B;IACtC,IAAIlH,KAAK,KAAK,CAAd,EAAiB;MACf,IAAIkH,KAAJ,EAAW;QACT,OAAO,UAAUA,KAAV,GAAkB,GAAlB,GAAsB,GAA7B;MACD,CAFD,MAEO;QACL,OAAO,KAAP;MACD;IACF,CAND,MAMO,IAAIlH,KAAK,KAAK,CAAd,EAAiB;MACtB,OAAO,kBAAP;IACD,CAFM,MAEA,IAAIA,KAAK,KAAK,CAAd,EAAiB;MACtB,OAAO,cAAP;IACD,CAFM,MAEA;MACL,IAAIkH,KAAJ,EAAW;QACT,OAAO,UAAUA,KAAV,GAAkB,GAAlB,GAAsB,GAA7B;MACD,CAFD,MAEO;QACL,OAAO,EAAP;MACD;IACF;EACF;;EAEKC,aAAa,CAACC,IAAD,EAAa;IAAA;;IAAA;MAChC9Q,OAAO,CAAC8G,GAAR,CAAYgK,IAAZ;MACA,MAAM1Q,KAAK,SAAS,MAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAC9CC,SAAS,EAAE0K,wGADmC;QAE9CzK,cAAc,EAAE;UAAEuQ;QAAF,CAF8B;QAG9CtQ,QAAQ,EAAE,iBAHoC;QAI9CC,eAAe,EAAE;MAJ6B,CAA5B,CAApB;MAOA,MAAML,KAAK,CAACO,OAAN,EAAN;IATgC;EAUnC;;AA5ZsB;;;;;;;;;;;;;;AAAVsK,UAAU,uDANtB5M,yDAAS,CAAC;EACTiD,QAAQ,EAAE,iBADD;EAETC,UAAAA,yDAFS;;AAAA,CAAD,CAMa,GAAV0J,UAAU,CAAV;;;;;;;;;;;;;;;;;;;;;;;ACpBb,uDAAuD;AACL;AACP;AACN;AACsB;AACxB;IAOtB,eAAe,SAAf,eAAe;IAM1B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAJpC,WAAM,GAAG,4EAAkB,CAAC;QACpB,oBAAe,GAAG,IAAI,+CAAa,CAAM,CAAC,CAAC,CAAC;QACpD,eAAU,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;IAET,CAAC;IAEzC,WAAW,CAAC,IAAc;QACxB,MAAM,gBAAgB,GAAG,cAAc,IAAI,CAAC,gBAAgB,aAAa,CAAC;QAC1E,MAAM,cAAc,GAAG,cAAc,IAAI,CAAC,cAAc,aAAa,CAAC;QACtE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,EAAC,GAAG,IAAI,EAAE,gBAAgB,EAAE,cAAc,EAAC,CAAC,CAAC;IAC3F,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5D,IAAG,KAAK,EAAE;gBACR,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAClC;QACH,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,YAAY,CAAC,IAAI;QACf,MAAM,gBAAgB,GAAG,cAAc,IAAI,CAAC,gBAAgB,KAAK,CAAC;QAClE,MAAM,cAAc,GAAG,cAAc,IAAI,CAAC,cAAc,KAAK,CAAC;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,QAAQ,IAAI,CAAC,EAAE,EAAE,EAAG,EAAC,GAAG,IAAI,EAAE,gBAAgB,EAAE,cAAc,EAAC,CAAC,CAAC;IACtG,CAAC;IAED,cAAc,CAAC,EAAE;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,QAAQ,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;;;;;AA9BU,eAAe;IAJ3B,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACZe;AACmB;AACzB;AACsB;AAEtB;IAOxB,WAAW,SAAX,WAAW;IAQtB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAP5B,qBAAgB,GAAG,IAAI,+CAAa,CAAM,CAAC,CAAC,CAAC;QACrD,wBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAE3D,WAAM,GAAG,4EAAkB,CAAC;QACpB,eAAU,GAAG,IAAI,+CAAa,CAAM,CAAC,CAAC,CAAC;QAC/C,UAAK,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IAEA,CAAC;IAEvC,OAAO,CAAC,IAAU;QACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,EAAC,EAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,UAAU,CAAC,WAAW,GAAG,EAAC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,YAAY,EAAE,IAAI,EAAC,aAAa,EAAE,EAAE,EAAC,WAAW,EAAC,EAAE,EAAE;QACtJ,IAAI,MAAM,GAAG,IAAI,4DAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;QACrE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QACjE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,kBAAkB,EAAC,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,IAAQ,EAAE,EAAE;YACzG,IAAG,IAAI,EAAE;gBACP,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjC;QACH,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IACD,QAAQ,CAAC,IAAI;QAEX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,aAAa,IAAI,CAAC,EAAE,EAAE,EAAC,IAAI,CAAC,CAAC;IAEpE,CAAC;IACD,UAAU,CAAC,EAAE;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,aAAa,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;;;;;AArCY,WAAW;IAHvB,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,WAAW;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACZmB;AACN;AACsB;AAEG;AACzB;IAKxB,gBAAgB,SAAhB,gBAAgB;IAQ3B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAP5B,qBAAgB,GAAG,IAAI,+CAAa,CAAM,CAAC,CAAC,CAAC;QACrD,wBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAE3D,WAAM,GAAG,4EAAkB,CAAC;QACpB,oBAAe,GAAG,IAAI,+CAAa,CAAM,CAAC,CAAC,CAAC;QACpD,eAAU,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;IAEV,CAAC;IAEvC,YAAY,CAAC,SAAoB;QAChC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,EAAC,EAAC,GAAG,SAAS,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,eAAe,CAAC,WAAW,GAAG,EAAC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,aAAa,EAAE,EAAE,EAAE;QACvH,IAAI,MAAM,GAAG,IAAI,4DAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,sBAAsB,EAAC,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,SAAa,EAAE,EAAE;YAClH,IAAG,SAAS,EAAE;gBACZ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC5E,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aAC3C;QACH,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IACD,aAAa,CAAC,SAAS;QAErB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,iBAAiB,SAAS,CAAC,EAAE,EAAE,EAAC,SAAS,CAAC,CAAC;IAElF,CAAC;IACD,eAAe,CAAC,EAAE;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;;;;;AApCY,gBAAgB;IAH5B,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACV7B,iCAAiC;AACjC,uDAAuD;AACO;AACnB;AACN;AACsB;AACxB;IAOtB,WAAW,SAAX,WAAW;IAStB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAPpC,WAAM,GAAG,4EAAkB,CAAC;QACpB,gBAAW,GAAG,IAAI,+CAAa,CAAM,CAAC,CAAC,CAAC;QACxC,qBAAgB,GAAG,IAAI,+CAAa,CAAM,CAAC,CAAC,CAAC;QACrD,cAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;QAC5C,wBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAGnB,CAAC;IAEzC,OAAO,CAAC,IAAU;QAChB,IAAI,CAAC,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrC,IAAG,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YACnD,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;SACpB;QACD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,WAAW,CAAC,WAAW,GAAG,EAAC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE;QACnH,aAAa,EAAE,EAAE,EAAC;QACjB,IAAI,MAAM,GAAG,IAAI,4DAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;QACrE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;YAE9F,IAAG,GAAG,EAAE;gBACN,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACjC;QACH,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,QAAQ,CAAC,IAAI;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,QAAQ,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,UAAU,CAAC,EAAE;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,QAAQ,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,cAAc,CAAC,GAAG;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC;IAED,aAAa,CAAC,IAAU;QACtB,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClG,MAAM,eAAe,GAAG,QAAQ,CAAC;QACjC,MAAM,GAAG,GAAG,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,oBAAoB,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,wCAAwC;IACxC,qBAAqB,CAAC,MAAc;QAClC,wCAAwC;QACxC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;;;;;AAhEU,WAAW;IAJvB,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,WAAW;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACbsC;AACnB;AACN;AACA;AACsB;IAM9C,YAAY,SAAZ,YAAY;IAWvB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QARpC,WAAM,GAAG,4EAAkB,CAAC;QACpB,gBAAW,GAAG,IAAI,+CAAa,CAAM,CAAC,CAAC,CAAC;QACxC,qBAAgB,GAAG,IAAI,+CAAa,CAAM,CAAC,CAAC,CAAC;QACrD,8DAA8D;QAC9D,WAAM,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;QACzC,8DAA8D;QAC9D,wBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAEnB,CAAC;IAEzC,YAAY,CAAC,OAAe;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC;IAC5D,CAAC;IAED,gBAAgB,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,wBAAwB,GAAG,MAAM,CAAC;IACvE,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAAC;IACnE,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,6BAA6B,GAAG,IAAI,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;IAC3G,CAAC;IAED,YAAY,CAAC,WAAW,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACtH,IAAI,MAAM,GAAG,IAAI,4DAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QAG7D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,wBAAwB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;YAElH,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACjC;QACH,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAGD,4BAA4B,CAAC,WAAW,GAAG;QACzC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;QACtF,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,WAAW,EAAC,EAAE;KAC/H;QACC,IAAI,MAAM,GAAG,IAAI,4DAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;QACrE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QACjE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;QACrE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAC3E,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,iCAAiC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;YAE3H,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACjC;QACH,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,QAAQ,CAAC,KAAY,EAAE,KAAa,EAAE,KAAa,EAAE,QAAgB,EAAE,KAAa,EAAC,MAAc;QACjG,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,mBAAmB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAC,MAAM,EAAE,EACnK,EAAE,YAAY,EAAE,aAAa,EAAE,CAClC,CAAC;QAGF;;;;;;kFAM0E;IAC5E,CAAC;IAED,oBAAoB,CAAC,KAAY,EAAE,KAAa,EAAE,KAAa,EAAE,QAAgB,EAAE,MAAc;QAC/F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,mBAAmB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAC,MAAM,EAAC,EACtJ,EAAE,YAAY,EAAE,aAAa,EAAE,CAChC,CAAC;IACJ,CAAC;IAGD,WAAW,CAAC,KAAK;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,aAAa,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,SAAS,CAAC,WAAW,GAAG;QACtB,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;QAC5G,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,WAAW,EAAC,EAAE;KAC5G;QACC,IAAI,MAAM,GAAG,IAAI,4DAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;QACrE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QACjE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;QACrE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAC3E,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,qBAAqB,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAC7F,CAAC;IAGD,mBAAmB,CAAC,WAAW,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,4BAA4B,EAAE,EAAE,EAAE;QACtG,IAAI,MAAM,GAAG,IAAI,4DAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,8BAA8B,EAAE,WAAW,CAAC,4BAA4B,CAAC,CAAC;QACjG,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,+BAA+B,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;YAEzH,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACjC;QACH,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,kBAAkB,CAAC,KAAK;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,4BAA4B,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACpF,CAAC;;;;;AAvIU,YAAY;IAHxB,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACVzB,iCAAiC;AACjC,uDAAuD;AACoB;AAChC;AACN;AACsB;AACxB;IAMtB,cAAc,SAAd,cAAc;IASzB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAPpC,WAAM,GAAG,4EAAkB,CAAC;QACpB,mBAAc,GAAG,IAAI,+CAAa,CAAM,CAAC,CAAC,CAAC;QAC3C,qBAAgB,GAAG,IAAI,+CAAa,CAAM,CAAC,CAAC,CAAC;QACrD,cAAS,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QAC/C,wBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAGnB,CAAC;IAGzC,cAAc;QACZ,IAAI,MAAM,GAAG,IAAI,4DAAU,EAAE,CAAC;QAC9B,oEAAoE;QACpE,iEAAiE;QACjE,gEAAgE;QAChE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;YAEjG,IAAG,GAAG,EAAE;gBACN,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACpC;QACH,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,aAAa,CAAC,EAAE;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,oBAAoB,CAAC,WAAW,GAAG,EAAC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK;KACnK;QACC,IAAI,MAAM,GAAG,IAAI,4DAAU,EAAE,CAAC;QAC5B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;QAC7E,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,wBAAwB,EAAE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;YAElH,IAAG,GAAG,EAAE;gBACN,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACpC;QACH,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IACD,qBAAqB,CAAC,WAAW,GAAG,EAAC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE;KACzH;QACC,IAAI,MAAM,GAAG,IAAI,4DAAU,EAAE,CAAC;QAC7B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,0BAA0B,EAAE,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;YAElH,IAAG,GAAG,EAAE;gBACN,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACpC;QACH,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IACC,YAAY,CAAC,IAAI;QACf,IAAI,OAAO,GAAG,IAAI,6DAAW,EAAE,CAAC;QAChC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAEnD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,mBAAmB,GAAG,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;IACpG,CAAC;IACD,SAAS,CAAC,WAAW,GAAG,EAAC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAC,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE;KAClI;QACC,IAAI,MAAM,GAAG,IAAI,4DAAU,EAAE,CAAC;QAC7B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,mBAAmB,EAAE,EAAC,MAAM,EAAC,YAAY,EAAC,MAAM,EAAC,CAAC;IACvF,CAAC;IAED,WAAW,CAAC,OAAO;QACjB,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxE,qDAAqD;QACrD,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,+BAA+B,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3F,CAAC;IAED,wBAAwB,CAAC,WAAW,GAAG,EAAC,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,4BAA4B,EAAE,EAAE,EAAE;QAC1G,IAAI,MAAM,GAAG,IAAI,4DAAU,EAAE,CAAC;QAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,8BAA8B,EAAE,WAAW,CAAC,4BAA4B,CAAC,CAAC;QACjG,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;QAC9D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,+BAA+B,EAAG,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;YAExH,IAAG,GAAG,EAAE;gBACN,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACpC;QACH,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;;;;;AArGY,cAAc;IAJ1B,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZc;AACiC;AACkB;AACZ;AACS;AACH;AACvB;AACP;AACS;AACK;AACR;AACC;AAC8B;AACb;AACvB;AACqB;AACK;AACR;AAC6B;AAChC;AACY;AAC0B;AACnD;AACmB;AACH;AACS;AACF;AACuD;AACf;AACA;AAG1H,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,wBAAwB;QACpC,SAAS,EAAE,MAAM;KAClB;IACD;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,mEAAc;QACzB,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,qEAAS;gBACpB,WAAW,EAAE,CAAC,0EAAc,CAAC;aAC9B;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,SAAS,EAAE,uEAAU;gBACrB,WAAW,EAAE,CAAC,uEAAa,CAAC;aAC7B;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,oGAAmB;gBAC9B,WAAW,EAAE,CAAC,iEAAU,CAAC;aAC1B;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,SAAS,EAAE,iGAAkB;gBAC7B,WAAW,EAAE,CAAC,+EAAiB,CAAC;aACjC;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,SAAS,EAAE,wFAAe;gBAC1B,WAAW,EAAE,CAAC,+EAAiB,CAAC;aACjC;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,8FAAiB;gBAC5B,WAAW,EAAE,CAAC,wEAAa,CAAC;aAC7B;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,sGAAqB;gBAChC,WAAW,EAAE,CAAC,+EAAiB,CAAC;aACjC;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,SAAS,EAAE,yFAAe;gBAC1B,WAAW,EAAE,CAAC,iEAAU,CAAC;aAC1B;YACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,SAAS,EAAE,oIAAyB;gBACpC,WAAW,EAAE,CAAC,iEAAU,CAAC;aAC1B;SACF;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,wFAAqB;QAChC,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE,6FAAc;gBACzB,WAAW,EAAE,CAAC,qFAAsB,CAAC;aACtC;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,wFAAqB;gBAChC,WAAW,EAAE,CAAC,8FAA0B,CAAC;aAC1C;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,qFAAY;gBACvB,WAAW,EAAE,CAAC,4FAAyB,CAAC;aACzC;YACD;gBACA,IAAI,EAAE,qBAAqB;gBAC3B,SAAS,EAAE,mJAA2B;aACrC;YACD;gBACA,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,oIAAsB;aAChC;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,kHAAqB;gBAChC,WAAW,EAAE,CAAC,4FAAyB,CAAC;aACzC;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,kFAAW;gBACtB,WAAW,EAAE,CAAC,4FAAyB,CAAC;aACzC;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,8FAAgB;gBAC3B,WAAW,EAAE,CAAC,4FAAyB,CAAC;aACzC;YACD;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,SAAS,EAAE,wHAA0B;gBACrC,WAAW,EAAE,CAAC,4FAAyB,CAAC;aACzC;SACF;KACF;CACF,CAAC;IAQW,gBAAgB,SAAhB,gBAAgB;;AAAhB,gBAAgB;IAN5B,wDAAQ,CAAC;QACR,OAAO,EAAE;YACP,kEAAoB,CAAC,MAAM,EAAE,EAAE,kBAAkB,EAAE,+DAAiB,EAAE,CAAC;SACxE;QACD,OAAO,EAAE,CAAC,0DAAY,CAAC;KACxB,CAAC;GACW,gBAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClJ7B;AAEA;AACA;AACA;AAGA;IAQaiG,YAAY,SAAZA,YAAY;EAmCzB;EAGEvS,YAAoBwS,cAApB,EAA4DC,eAA5D,EACWC,OADX,EACoCnG,YADpC,EAC6D;IADzC;IAAwC;IACjD;IAAyB;IArCpC,mBAAc,KAAKiG,cAAL,CAAoBG,YAAlC;IAEA,YAAO,IAAIvO,IAAJ,EAAP;IACA,cAAS,IAAIA,IAAJ,EAAT;IAYF,0BAAqB;MAACc,UAAU,EAAE;IAAb,CAArB,CAsB+D,CArB/D;;IACA,mBAAsB,CAAtB,CAoB+D,CAnB/D;;IACA,oBAAuB,EAAvB,CAkB+D,CAjB/D;;IACA,qBAAwB,EAAxB,CAgB+D,CAf/D;;IACA,sBAAyB,EAAzB,CAc+D,CAb/D;;IACA,iBAAoB,EAApB,CAY+D,CAX/D;;IACA,mBAAsB,EAAtB;IACA;;;IAEA,gBAAmB,UAAnB;IAQI,KAAK0N,WAAL;EAED;;EAEKA,WAAW;IAAA;;IAAA;MACf,MAAM,KAAI,CAACF,OAAL,CAAahR,MAAb,EAAN;IADe;EAEhB;;EAEDrB,QAAQ;IAEN,KAAKwS,cAAL;IACA,KAAKJ,eAAL,CAAqBK,qBAArB;EACD;;EAEDD,cAAc;IACZ,MAAMvS,IAAI,GAASgN,IAAI,CAACC,KAAL,CAAWC,YAAY,CAACC,OAAb,CAAqB,YAArB,CAAX,CAAnB;IACA,KAAK+E,cAAL,CAAoBK,cAApB,CAAmCvS,IAAnC;EACD;;AAzDsB;;;;;;;;;;;;AAAZiS,YAAY,sDALxB7S,wDAAS,CAAC;EACTiD,QAAQ,EAAE,UADD;EAETC,UAAAA,2DAFS;;AAAA,CAAD,CAKe,GAAZ2P,YAAY,CAAZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfb,wDAAwD;AACf;AACiB;AACL;AACkC;AACrB;AAED;AAElB;AACS;AAEH;AAEe;AACjB;AAEoB;AACN;AACL;AACY;AAGjE,SAAS,qBAAqB,CAAC,IAAgB;IACpD,OAAO,IAAI,2EAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;IAiCY,SAAS,SAAT,SAAS;;AAAT,SAAS;IA9BrB,uDAAQ,CAAC;QACR,YAAY,EAAE;YACZ,wDAAY;SACb;QACD,eAAe,EAAE,EAAE;QACnB,OAAO,EAAE;YACP,oEAAa;YACb,+DAAmB,EAAE;YACrB,iEAAgB;YAChB,4DAAW;YAEX,iFAAkB;YAClB,mEAAgB;YAChB,wDAAW,EAAE,gEAAmB;YAChC,gEAAe;YACf,+EAA0B,EAAE;YAC5B,yEAAuB,CAAC;gBACtB,MAAM,EAAE;oBACN,OAAO,EAAE,iEAAe;oBACxB,UAAU,EAAE,CAAC,qBAAqB,CAAC;oBACnC,IAAI,EAAE,CAAC,6DAAU,CAAC;iBACrB;aACA,CAAC;SACH;QACD,SAAS,EAAE;YACT,EAAE,OAAO,EAAE,gEAAkB,EAAE,QAAQ,EAAE,8DAAkB,EAAE;YAC7D,EAAE,OAAO,EAAE,oEAAiB,EAAE,QAAQ,EAAE,6EAAgB,EAAE,KAAK,EAAE,IAAI,EAAE;SACxE;QACD,SAAS,EAAE,CAAC,wDAAY,CAAC;KAC1B,CAAC;GACW,SAAS;AAAA;;;;;;;;;;;;;;;;;;;;;;;;AC1DqB;AAEL;AACY;AAEW;AACd;IAGlC,gBAAgB,SAAhB,gBAAgB;IAEzB,YAAoB,cAA8B,EAAU,GAAkB;QAA1D,mBAAc,GAAd,cAAc,CAAgB;QAAU,QAAG,GAAH,GAAG,CAAe;IAAG,CAAC;IAElF,SAAS,CAAC,OAA6B,EAAE,IAAiB;QACxD,IAAI,WAAiB,CAAC;QAEtB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,oDAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;QACrF,IAAI,WAAW,EAAE;YACf,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;gBACtB,UAAU,EAAE;oBACV,aAAa,EAAE,UAAU,WAAW,CAAC,KAAK,EAAE;iBAC7C;aACF,CAAC;SACH;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9B,0DAAU,CAAC,CAAC,KAAK,EAAE,EAAE;YACjB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EACxB;gBACE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,OAAO,wCAAE,CAAC,KAAK,CAAC,CAAC;aAClB;YACD,MAAM,KAAK,CAAC;QACd,CAAC,CACF,CACF,CAAC;IACJ,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;;;;;;AA/BQ,gBAAgB;IAD5B,yDAAU,EAAE;GACA,gBAAgB;AAAA;;;;;;;;;;;;;;;;ACTtB,MAAM,IAAI;IAef;QACE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,aAAa,GAAC,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,GAAC,EAAE,CAAC;IAGlB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChC0D;AACF;AAEC;AACrB;IAO1B,sBAAsB,SAAtB,sBAAsB;IASjC,sBAAsB;IACtB,uBAAuB;IACvB,sBAAsB;IACtB,wBAAwB;IACxB,yBAAyB;IACzB,wBAAwB;IACxB,uBAAuB;IAGvB,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;QAfpD,cAAS,GAAG,UAAU,CAAC;QACvB,WAAM,GAAG;YACP,QAAQ,EAAE,EAAE;SACb,CAAC;QA0CF,iBAAY,GAAG,CAAC,KAAU,EAAE,EAAE;YAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAEjC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAE7C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACvB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,0BAAqB,GAAG,CAAC,IAAS,EAAE,GAAW,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aAClC;QACH,CAAC,CAAC;QAEF,kBAAa,GAAG,CAAC,KAAU,EAAE,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YAEpC;;;eAGG;YACH,IAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAEhD,IAAI,aAAa,KAAK,IAAI;gBACxB,IAAI,CAAC,qBAAqB,CACxB,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAC5C,aAAa,CACd,CAAC;YAEJ,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,eAAU,GAAG,CAAC,MAAc,EAAE,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YAEtC;;eAEG;YACH,IAAI,MAAM,KAAK,SAAS;gBAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChD,CAAC,CAAC;QAEF,gBAAW,GAAG,GAAG,EAAE;YACjB,IAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;YACrD,IAAI,WAAW,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAEpE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACvB,UAAU,EAAE,WAAW;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;IArFF,CAAC;IAED,QAAQ,KAAK,CAAC;IAEd,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,eAAe;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,wDAAQ,CAAC,wBAAwB,EAAC;YACrD,KAAK,EAAE,oDAAoD;YAC3D,SAAS,EAAE;gBACT,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,CAAC;aACN;YACH,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACzC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC/C,uBAAuB,EAAE,IAAI,CAAC,qCAAqC;SACpE,CAAC,CAAC;QAEH;;;WAGG;QACH,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IA4DD,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,8DAAY,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAID,aAAa,CAAC,WAAW;QACvB,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;;;;;;oBAhHA,oDAAS,SAAC,oDAAQ;;AARR,sBAAsB;IALlC,wDAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,iFAA+C;;KAEhD,CAAC;GACW,sBAAsB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACXe;AACT;AAC0B;AACE;IAOxD,oBAAoB,SAApB,oBAAoB;IAK/B,YAAoB,eAAgC,EAAU,cAA8B,EAAU,MAAc;QAAhG,oBAAe,GAAf,eAAe,CAAiB;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAHpH,cAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;IAG4E,CAAC;IAExH,QAAQ;QACN,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACpE,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,YAAY,CAAC,QAAQ;QACnB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1D,OAAO,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,qBAAqB,CAAC;IAClD,CAAC;;;;;;;AAxBU,oBAAoB;IALhC,wDAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,8EAA4C;;KAE7C,CAAC;GACW,oBAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;IAOae,0BAA0B,SAA1BA,0BAA0B;EA8BrCtT,YAAoBuT,UAApB,EACUpT,MADV,EAEUsS,eAFV,EAGU7K,cAHV,EAIU4L,eAJV,EAKUvT,eALV,EAMUuM,KANV,EAMgC;IANZ;IACV;IACA;IACA;IACA;IACA;IACA;IApBV,iBAAY,KAAKiG,eAAL,CAAqBgB,SAAjC;IAEA,iBAAY,IAAIrP,IAAJ,EAAZ;IACA,oBAAwB,KAAxB;IACA,eAAmB,IAAIqD,0DAAJ,EAAnB;IACA,iBAAY,KAAZ;IACA,gBAAgC,EAAhC;IACA,cAAS,KAAT;IACA,0BAAqB,KAArB;IAEA,cAAS,EAAT;IAwBA,oBAAwB,KAAxB;IAZI,KAAKiM,GAAL,GAAW,KAAKlH,KAAL,CACVmH,MADU,CAEVhT,SAFU,CAEAgT,MAAM,IAAG;MAClBtS,OAAO,CAAC8G,GAAR,CAAYwL,MAAZ;MACA,KAAKrL,OAAL,GAAegF,IAAI,CAACC,KAAL,CAAWoG,MAAM,CAAC,SAAD,CAAjB,CAAf;MACAtS,OAAO,CAAC8G,GAAR,CAAY,KAAKG,OAAjB;MACA,KAAKsL,QAAL,GAAgBtG,IAAI,CAACC,KAAL,CAAWoG,MAAM,CAAC,UAAD,CAAjB,CAAhB;IACD,CAPU,CAAX;EAQD;;EAKHtT,QAAQ;IACN,KAAKoT,SAAL,CAAe9S,SAAf,CAA0BkT,GAAD,IAAU,KAAKC,QAAL,GAAgBD,GAAG,CAACE,WAAJ,EAAnD;IACA,KAAKC,QAAL,GAAgB,KAAK7T,MAAL,CAAYkK,GAA5B;IACA,MAAM4J,MAAM,GAAQ,KAAKV,UAAL,CAAgBW,aAAhB,CAA8BC,aAA9B,CAA4C,QAA5C,CAApB;IACAF,MAAM,CAACG,KAAP,GAAe,GAAf;IACAH,MAAM,CAACI,MAAP,GAAgB,GAAhB;;IACA,IAAI,KAAKC,YAAT,EAAuB;MACrB,KAAKA,YAAL,CAAkBC,KAAlB,GADqB,CACM;IAC5B;EACF;;EAEDC,cAAc;IACZ,KAAKV,QAAL,GAAgB,KAAKA,QAAL,KAAkB,IAAlB,GAAyB,IAAzB,GAAgC,IAAhD;IACA,KAAKrB,eAAL,CAAqBgC,WAArB,CAAiC,KAAKX,QAAL,CAAcY,WAAd,EAAjC;EACD;;EAEDH,KAAK;IACH,KAAKD,YAAL,CAAkBC,KAAlB;IACA,KAAKI,YAAL,GAAoB,KAApB;EACD;;EAEDC,eAAe;IACb,KAAKD,YAAL,GAAoB,IAApB;EACD;;EAEDE,aAAa;IACX,IAAI,KAAKP,YAAT,EAAuB;MACrB,OAAO,KAAKA,YAAL,CAAkBQ,OAAlB,KAA8B,IAA9B,GAAqC,KAA5C;IACD;EACF;;EACDC,kBAAkB;IAChB,OAAO,CAAC,EACN,KAAKJ,YAAL,IACA,KAAKK,YAFC,CAAR;EAID;;EACDC,kBAAkB;IAChB,MAAM3U,IAAI,GAAG,KAAKgI,OAAlB;IACA,IAAItH,MAAJ;;IACA,IAAI,CAACV,IAAI,CAAC4I,QAAV,EAAoB;MAClBlI,MAAM,GAAG,qCAAT,CADkB,CAEpB;MACA;IACC,CAJD,MAIO,IAAI,CAACV,IAAI,CAAC4U,KAAV,EAAiB;MACtBlU,MAAM,GAAG,wBAAT;IACD,CAFM,MAEA,IAAI,CAACV,IAAI,CAAC8I,KAAV,EAAiB;MACtBpI,MAAM,GAAG,wBAAT;IACD,CAFM,MAEA,IAAI,CAACV,IAAI,CAAC6U,OAAV,EAAmB;MACxBnU,MAAM,GAAG,iBAAT;IACD,CAFM,MAEA;MACLA,MAAM,GAAG,EAAT;MACA,OAAO;QAAEC,OAAO,EAAE,IAAX;QAAiBD;MAAjB,CAAP;IACD;;IACD,OAAO;MAAEC,OAAO,EAAE,KAAX;MAAkBD;IAAlB,CAAP;EACD;;EAEDoU,eAAe;IACb,KAAKd,YAAL,GAAoB,IAAIjB,qDAAJ,CAClB,KAAKgC,mBAAL,CAAyBnB,aADP,CAApB;IAGA,KAAKI,YAAL,CAAkBC,KAAlB,GAJa,CAKb;IACA;IACA;;IACA,KAAKD,YAAL,CAAkBgB,QAAlB,GAA6B,iBAA7B;EACD;;EAIKC,gBAAgB;IAAA;;IAAA;MACpB,KAAI,CAACC,SAAL,GAAiB,IAAjB;;MACA,MAAMzU,cAAc,GAAG,KAAI,CAACkU,kBAAL,EAAvB;;MACA,KAAI,CAACjU,MAAL,GAAcD,cAAc,CAACC,MAA7B;;MACA,IAAID,cAAc,CAACE,OAAnB,EAA4B;QAC1B,MAAMwU,IAAI,GAAG,KAAb;QACA,IAAIC,GAAG,GAAG,KAAI,CAACC,WAAL,CAAiBzB,aAA3B;QACA,IAAI0B,KAAK,GAAG,KAAI,CAACA,KAAL,CAAW1B,aAAvB;QACA,IAAI2B,IAAI,GAAG,KAAI,CAACA,IAAL,CAAU3B,aAArB;QACA,IAAI4B,SAAS,GAAG,KAAI,CAACA,SAAL,CAAe5B,aAA/B;QACA,IAAI6B,SAAS,GAAG,KAAI,CAACA,SAAL,CAAe7B,aAA/B;QACA4B,SAAS,CAAC7L,KAAV,GAAkB,gBAAlB;QACA8L,SAAS,CAAC9L,KAAV,GAAkB,oBAAlB,CAR0B,CAS1B;;QACA,IAAI+L,GAAJ,CAV0B,CAW1B;;QACA,IAAIC,QAAJ;QAEA9C,0DAAA,CACUuC,GADV,EACe;UAAES,OAAO,EAAE;QAAX,CADf,EAEG/E,IAFH,CAEQ,UAASgF,OAAT,EAAgB;UACpBJ,GAAG,GAAG,IAAIK,KAAJ,EAAN;UACAL,GAAG,CAACM,GAAJ,GAAUF,OAAV;UACAH,QAAQ,GAAGD,GAAG,CAACM,GAAf;;UACAN,GAAG,CAACO,MAAJ,GAAa;YACX,MAAMC,QAAQ,GAAGR,GAAG,CAAC5B,KAArB;YACA,MAAMqC,SAAS,GAAGT,GAAG,CAAC3B,MAAtB,CAFW,CAIX;;YACA,IAAIqC,GAAJ;;YACA,IAAIF,QAAQ,GAAGC,SAAf,EAA0B;cACxBC,GAAG,GAAG,IAAItD,6CAAJ,CAAU,GAAV,EAAe,IAAf,EAAqB,CAACoD,QAAD,EAAWC,SAAX,CAArB,CAAN;YACD,CAFD,MAEO;cACLC,GAAG,GAAG,IAAItD,6CAAJ,CAAU,GAAV,EAAe,IAAf,EAAqB,CAACoD,QAAD,EAAWC,SAAX,CAArB,CAAN;YACD;;YAED,MAAMrC,KAAK,GAAGsC,GAAG,CAACC,QAAJ,CAAa/L,QAAb,CAAsBgM,QAAtB,EAAd;YACA,MAAMvC,MAAM,GAAGqC,GAAG,CAACC,QAAJ,CAAa/L,QAAb,CAAsBiM,SAAtB,EAAf;YAEAH,GAAG,CAACI,QAAJ,CAAab,QAAb,EAAuB,KAAvB,EAA8B,EAA9B,EAAkC,EAAlC,EAAsC7B,KAAtC,EAA6CC,MAA7C,EAfW,CAgBX;YACA;YACA;;YACA0B,SAAS,CAAC9L,KAAV,GAAkB,qBAAlB;YACA6L,SAAS,CAAC7L,KAAV,GAAkB,eAAlB,CApBW,CAqBX;;YAGAwL,IAAI,CAAC7N,cAAL,CACGmP,qBADH,CACyBtB,IAAI,CAACnN,OAD9B,EACsCmN,IAAI,CAAC7B,QAD3C,EACqD8C,GAAG,CAACM,MAAJ,CAAW,MAAX,CADrD,EAEGrW,SAFH,CAEa,MAAK;cACd8U,IAAI,CAACD,SAAL,GAAiB,KAAjB;cACAC,IAAI,CAACwB,sBAAL;YACD,CALH,EAME3V,KAAK,IAAG;cACND,OAAO,CAAC8G,GAAR,CAAY,QAAZ;cACA9G,OAAO,CAAC8G,GAAR,CAAY7G,KAAZ;cACDmU,IAAI,CAACyB,oBAAL,CAA0B5V,KAA1B;YACA,CAVH;UAYD,CApCD;QAqCD,CA3CH;MA4CD;IA9DmB;EA+DrB;;EAED4V,oBAAoB,CAAC5V,KAAD,EAAM;IACxB,KAAKkS,eAAL,CAAqB2D,IAArB,CAA0B;MACxBC,OAAO,EAAE,KAAK9J,IAAI,CAAC+J,SAAL,CAAe/V,KAAK,CAACA,KAAN,CAAYgW,KAA3B,CADU;MAExBxN,IAAI,EAAE;IAFkB,CAA1B;IAIA,KAAK0L,SAAL,GAAiB,KAAjB;EACD;;EAEDyB,sBAAsB;IACpB,KAAKzD,eAAL,CAAqB2D,IAArB,CAA0B;MACxBC,OAAO,EAAE,qCADe;MAExBtN,IAAI,EAAE;IAFkB,CAA1B;IAIA,KAAKxB,OAAL,GAAe,IAAIb,0DAAJ,EAAf;IACA,KAAKmM,QAAL,GAAgB,EAAhB;IACA,KAAKoB,YAAL,GAAoB,KAApB;IACA,KAAKV,YAAL,CAAkBC,KAAlB;IACA,KAAKpU,MAAL,CAAYoX,aAAZ,CAA0B,oBAA1B;EACD;;AA3MoC;;;;;;;;;;;;;;;;;;;;UAEpCvE,oDAASA;IAAAwE,OAACvE,qDAAD;;;UACTD,oDAASA;IAAAwE,OAAC,QAAD,EAAW;MAAEC,MAAM,EAAE;IAAV,CAAX;;;UACTzE,oDAASA;IAAAwE,OAAC,aAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,OAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,MAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,WAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,WAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,aAAD;;;AAdClE,0BAA0B,uDALtC5T,wDAAS,CAAC;EACTiD,QAAQ,EAAE,yBADD;EAETC,UAAAA,2EAFS;;AAAA,CAAD,CAK6B,GAA1B0Q,0BAA0B,CAA1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBb;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;IAQaoE,gBAAgB,SAAhBA,gBAAgB;EA+B3B1X,YAAoBuT,UAApB,EACUpT,MADV,EAEUsS,eAFV,EAGU7K,cAHV,EAIU4L,eAJV,EAKUvT,eALV,EAMUuM,KANV,EAMgC;IANZ;IACV;IACA;IACA;IACA;IACA;IACA;IAxBV,iBAAY,KAAKiG,eAAL,CAAqBgB,SAAjC;IAEA,iBAAY,IAAIrP,IAAJ,EAAZ;IACA,oBAAwB,KAAxB;IACA,eAAmB,IAAIqD,0DAAJ,EAAnB;IACA,iBAAY,KAAZ;IACA,gBAAgC,EAAhC;IACA,wBAAwC,EAAxC;IACA,mBAAmC,EAAnC;IACA,cAAS,KAAT;IACA,0BAAqB,KAArB;IAEA,cAAS,EAAT;IAGA,oBAAoC,EAApC;IAYI,KAAKiM,GAAL,GAAW,KAAKlH,KAAL,CACVmH,MADU,CAEVhT,SAFU,CAEAgT,MAAM,IAAG;MAClB,KAAKrL,OAAL,GAAegF,IAAI,CAACC,KAAL,CAAWoG,MAAM,CAAC,SAAD,CAAjB,CAAf;MACA,KAAKgE,gBAAL,GAAwBrK,IAAI,CAACC,KAAL,CAAWoG,MAAM,CAAC,kBAAD,CAAjB,CAAxB,CAFkB,CAGlB;;MACA,KAAKiE,WAAL,CAAiBlM,IAAjB,CAAsB,GAAG,KAAKiM,gBAA9B;MACA,KAAKC,WAAL,CAAiBlM,IAAjB,CAAsB,GAAG,KAAKkI,QAA9B;IACD,CARU,CAAX;EASD,CAjDwB,CAqD3B;;;EACAvT,QAAQ;IAEN,KAAKoT,SAAL,CAAe9S,SAAf,CAA0BkT,GAAD,IAAU,KAAKC,QAAL,GAAgBD,GAAG,CAACE,WAAJ,EAAnD;IACA,KAAKC,QAAL,GAAgB,KAAK7T,MAAL,CAAYkK,GAA5B;IACA,MAAM4J,MAAM,GAAQ,KAAKV,UAAL,CAAgBW,aAAhB,CAA8BC,aAA9B,CAA4C,QAA5C,CAApB;IACAF,MAAM,CAACG,KAAP,GAAe,GAAf;IACAH,MAAM,CAACI,MAAP,GAAgB,GAAhB;;IACA,IAAI,KAAKC,YAAT,EAAuB;MACrB,KAAKA,YAAL,CAAkBC,KAAlB,GADqB,CACM;IAC5B;EACF;;EAGDsD,gBAAgB;IACd,KAAKvP,OAAL,CAAaY,QAAb,GAAwB,EAAxB;IACA,KAAKZ,OAAL,CAAac,KAAb,GAAqB,EAArB;IACA,KAAKd,OAAL,CAAa4M,KAAb,GAAqB,EAArB;EACD;;EAED9G,WAAW;IACT,KAAKsF,GAAL,CAASoE,WAAT;EACD;;EAEDtD,cAAc;IACZ,KAAKV,QAAL,GAAgB,KAAKA,QAAL,KAAkB,IAAlB,GAAyB,IAAzB,GAAgC,IAAhD;IACA,KAAKrB,eAAL,CAAqBgC,WAArB,CAAiC,KAAKX,QAAL,CAAcY,WAAd,EAAjC;EACD;;EAEDH,KAAK;IACH,KAAKD,YAAL,CAAkBC,KAAlB,GADG,CAEH;EACD,CArF0B,CAuF3B;EACA;EACA;;;EAEAM,aAAa;IACX,IAAI,KAAKP,YAAT,EAAuB;MACrB,OAAO,KAAKA,YAAL,CAAkBQ,OAAlB,KAA8B,IAA9B,GAAqC,KAA5C;IACD;EACF;;EACDC,kBAAkB;IAChB,OAAO,CAAC,EACN;IACA,KAAKC,YAFP;EAID;;EACDC,kBAAkB;IAChB,MAAM3U,IAAI,GAAG,KAAKgI,OAAlB;IACA,IAAItH,MAAJ;;IACA,IAAI,CAACV,IAAI,CAAC4I,QAAV,EAAoB;MAClBlI,MAAM,GAAG,qCAAT;IACD,CAFD,MAEO,IAAI,CAACV,IAAI,CAAC8I,KAAV,EAAiB;MACtBpI,MAAM,GAAG,wBAAT;IACD,CAFM,MAEA;MACLA,MAAM,GAAG,EAAT;MACA,OAAO;QAAEC,OAAO,EAAE,IAAX;QAAiBD;MAAjB,CAAP;IACD;;IACD,OAAO;MAAEC,OAAO,EAAE,KAAX;MAAkBD;IAAlB,CAAP;EACD;;EAEDoU,eAAe;IACb,KAAKd,YAAL,GAAoB,IAAIjB,qDAAJ,CAClB,KAAKgC,mBAAL,CAAyBnB,aADP,CAApB;IAGA,KAAKI,YAAL,CAAkBC,KAAlB,GAJa,CAKb;IACA;IACA;;IACA,KAAKD,YAAL,CAAkBgB,QAAlB,GAA6B,iBAA7B;EACD;;EAGKyC,WAAW;IAAA;;IAAA;MACf,KAAI,CAACvC,SAAL,GAAiB,IAAjB;;MACA,MAAMzU,cAAc,GAAG,KAAI,CAACkU,kBAAL,EAAvB;;MACA,KAAI,CAACjU,MAAL,GAAcD,cAAc,CAACC,MAA7B;;MACA,IAAID,cAAc,CAACE,OAAnB,EAA4B;QAC1B,MAAMwU,IAAI,GAAG,KAAb;QACA,IAAIC,GAAG,GAAG,KAAI,CAACC,WAAL,CAAiBzB,aAA3B;QACA,IAAI0B,KAAK,GAAG,KAAI,CAACA,KAAL,CAAW1B,aAAvB;QACA,IAAI2B,IAAI,GAAG,KAAI,CAACA,IAAL,CAAU3B,aAArB;QACA,IAAI4B,SAAS,GAAG,KAAI,CAACA,SAAL,CAAe5B,aAA/B;QACA,IAAI6B,SAAS,GAAG,KAAI,CAACA,SAAL,CAAe7B,aAA/B;QACA4B,SAAS,CAAC7L,KAAV,GAAkB,gBAAlB;QACA8L,SAAS,CAAC9L,KAAV,GAAkB,oBAAlB,CAR0B,CAS1B;;QACA,IAAI+L,GAAJ,CAV0B,CAW1B;;QACA,IAAIC,QAAJ;QAEA9C,0DAAA,CACUuC,GADV,EACe;UAAES,OAAO,EAAE;QAAX,CADf,EAEG/E,IAFH,CAEQ,UAASgF,OAAT,EAAgB;UACpBJ,GAAG,GAAG,IAAIK,KAAJ,EAAN;UACAL,GAAG,CAACM,GAAJ,GAAUF,OAAV;UACAH,QAAQ,GAAGD,GAAG,CAACM,GAAf;;UACAN,GAAG,CAACO,MAAJ,GAAa;YACX,MAAMC,QAAQ,GAAGR,GAAG,CAAC5B,KAArB;YACA,MAAMqC,SAAS,GAAGT,GAAG,CAAC3B,MAAtB,CAFW,CAIX;;YACA,IAAIqC,GAAJ;;YACA,IAAIF,QAAQ,GAAGC,SAAf,EAA0B;cACxBC,GAAG,GAAG,IAAItD,6CAAJ,CAAU,GAAV,EAAe,IAAf,EAAqB,CAACoD,QAAD,EAAWC,SAAX,CAArB,CAAN;YACD,CAFD,MAEO;cACLC,GAAG,GAAG,IAAItD,6CAAJ,CAAU,GAAV,EAAe,IAAf,EAAqB,CAACoD,QAAD,EAAWC,SAAX,CAArB,CAAN;YACD;;YAED,MAAMrC,KAAK,GAAGsC,GAAG,CAACC,QAAJ,CAAa/L,QAAb,CAAsBgM,QAAtB,EAAd;YACA,MAAMvC,MAAM,GAAGqC,GAAG,CAACC,QAAJ,CAAa/L,QAAb,CAAsBiM,SAAtB,EAAf;YAEAH,GAAG,CAACI,QAAJ,CAAab,QAAb,EAAuB,KAAvB,EAA8B,EAA9B,EAAkC,EAAlC,EAAsC7B,KAAtC,EAA6CC,MAA7C,EAfW,CAgBX;YACA;YACA;;YACA0B,SAAS,CAAC9L,KAAV,GAAkB,qBAAlB;YACA6L,SAAS,CAAC7L,KAAV,GAAkB,eAAlB,CApBW,CAqBX;;YACAwL,IAAI,CAAC7N,cAAL,CACGmQ,WADH,CACetC,IAAI,CAACnN,OADpB,EAC6BmN,IAAI,CAACmC,WADlC,EAC+ClB,GAAG,CAACM,MAAJ,CAAW,MAAX,CAD/C,EAEGrW,SAFH,CAEa,MAAK;cAEd8U,IAAI,CAACoC,gBAAL;cACApC,IAAI,CAACD,SAAL,GAAiB,KAAjB;cACAC,IAAI,CAACwB,sBAAL;YACD,CAPH,EAQE3V,KAAK,IAAG;cACND,OAAO,CAAC8G,GAAR,CAAY,QAAZ;cACA9G,OAAO,CAAC8G,GAAR,CAAY7G,KAAZ;cACDmU,IAAI,CAACyB,oBAAL,CAA0B5V,KAA1B;YACA,CAZH;UAcD,CApCD;QAqCD,CA3CH;MA4CD;IA9Dc;EA+DhB;;EACD4V,oBAAoB,CAAC5V,KAAD,EAAM;IACxB,KAAKkS,eAAL,CAAqB2D,IAArB,CAA0B;MACxBC,OAAO,EAAE,KAAK9J,IAAI,CAAC+J,SAAL,CAAe/V,KAAK,CAACA,KAAN,CAAYgW,KAA3B,CADU;MAExBxN,IAAI,EAAE;IAFkB,CAA1B;IAIA,KAAK0L,SAAL,GAAiB,KAAjB;IACA,KAAKrV,MAAL,CAAYoX,aAAZ,CAA0B,oBAA1B;EACD;;EAEDN,sBAAsB;IACpB,IAAIG,OAAO,GAAG,EAAd;;IACF,IAAI,KAAKtD,QAAL,KAAkB,IAAtB,EAA4B;MAC1BsD,OAAO,GAAG,gCAAV;IACD,CAFD,MAEO;MACLA,OAAO,GAAG,8BAAV;IACD;;IACC,KAAK5D,eAAL,CAAqB2D,IAArB,CAA0B;MACxB;MACAC,OAAO,EAAEA,OAFe;MAGxBtN,IAAI,EAAE;IAHkB,CAA1B;IAKA,KAAKxB,OAAL,GAAe,IAAIb,0DAAJ,EAAf;IACA,KAAKmM,QAAL,GAAgB,EAAhB;IACA,KAAK+D,gBAAL,GAAwB,EAAxB;IAEA,KAAK3C,YAAL,GAAoB,KAApB;IACA,KAAKV,YAAL,CAAkBC,KAAlB;IACA,KAAKpU,MAAL,CAAYoX,aAAZ,CAA0B,oBAA1B;EACD;;AA5N0B;;;;;;;;;;;;;;;;;;;;UAC1BvE,oDAASA;IAAAwE,OAACvE,qDAAD;;;UACTD,oDAASA;IAAAwE,OAAC,QAAD,EAAW;MAAEC,MAAM,EAAE;IAAV,CAAX;;;UACTzE,oDAASA;IAAAwE,OAAC,aAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,OAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,MAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,WAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,WAAD;;;AAXCE,gBAAgB,uDAL5BhY,wDAAS,CAAC;EACTiD,QAAQ,EAAE,aADD;EAETC,UAAAA,+DAFS;;AAAA,CAAD,CAKmB,GAAhB8U,gBAAgB,CAAhB;;;;;;;;;;;;;;;;;;;;;;AClB8B;AACiE;AAEvE;AAC2B;IAMnD,sBAAsB,SAAtB,sBAAsB;IAEjC,YAAoB,cAA8B,EAAU,KAAa;QAArD,mBAAc,GAAd,cAAc,CAAgB;QAAU,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE7E,WAAW,CACT,KAA6B,EAC7B,KAA0B;QAE1B,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,mDAAG,CAAC,IAAI,CAAC,EAAE;YACtD,IAAG,IAAI,EAAE;gBACP,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC7C,OAAO,KAAK,CAAC;aACd;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;;;;;AAhBU,sBAAsB;IAJlC,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,sBAAsB;AAAA;;;;;;;;;;;;;;;;;;;;;;ACVQ;AACiE;AAEvE;AAC2B;IAMnD,yBAAyB,SAAzB,yBAAyB;IAEpC,YAAoB,cAA8B,EAAU,KAAa;QAArD,mBAAc,GAAd,cAAc,CAAgB;QAAU,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE7E,WAAW,CACT,KAA6B,EAC7B,KAA0B;QAE1B,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,mDAAG,CAAC,IAAI,CAAC,EAAE;YACtD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;gBACtF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC;gBACnD,OAAO,KAAK,CAAC;aACd;iBAAM,IAAG,IAAI,EAAE;gBACd,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAC7C,OAAO,KAAK,CAAC;aACd;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;;;;;AAnBU,yBAAyB;IAJrC,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,yBAAyB;AAAA;;;;;;;;;;;;;;;;;;;;;;ACVK;AACiE;AAEvE;AAC2B;IAMnD,0BAA0B,SAA1B,0BAA0B;IAErC,YAAoB,cAA8B,EAAU,KAAa;QAArD,mBAAc,GAAd,cAAc,CAAgB;QAAU,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE7E,WAAW,CACT,KAA6B,EAC7B,KAA0B;QAE1B,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,mDAAG,CAAC,IAAI,CAAC,EAAE;YACtD,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC5C,OAAO,KAAK,CAAC;aACd;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;;;;;AAhBU,0BAA0B;IAJtC,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,0BAA0B;AAAA;;;;;;;;;;;;;;;;ACRhC,MAAM,OAAO;IASlB;QACE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,GAAE,EAAE,CAAC;IAChB,CAAC;;;;;;;;;;;;;;;;;ACjBI,MAAM,YAAY;IAKvB;QACE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPH;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;IAOaQ,qBAAqB,SAArBA,qBAAqB;EA+BhClY,YACUuT,UADV,EAEUpT,MAFV,EAGUsS,eAHV,EAIU7K,cAJV,EAKU4L,eALV,EAMUvT,eANV,EAM0C;IALhC;IACA;IACA;IACA;IACA;IACA;IA3BV,iBAAY,KAAKwS,eAAL,CAAqBgB,SAAjC;IAEA,iBAAY,IAAIrP,IAAJ,EAAZ;IACA,cAAS,EAAT;IACA,oBAAwB,KAAxB;IACA,eAAmB,IAAIqD,0DAAJ,EAAnB;IACA,iBAAY,KAAZ;IACA,gBAAgC,EAAhC;IAKA,aAAgB,EAAhB;IACA,YAAe,EAAf;IAiCA,oBAAwB,KAAxB;IAjBE,KAAK0Q,SAAL,GAAiB,IAAIH,8DAAJ,EAAjB;IAEA,KAAKG,SAAL,GAAiB,IAAIH,8DAAJ,EAAjB;IACA,KAAKI,kBAAL,GAA0B,KAAKjY,MAAL,CAAYkY,MAAZ,CAAmB1X,SAAnB,CAA8B6L,KAAD,IAAe;MACpE;MACA,IAAGA,KAAK,CAACnC,GAAN,KAAc,oBAAjB,EAAuC;QACrC,KAAK/B,OAAL,GAAe,IAAIb,0DAAJ,EAAf;QACA,KAAKmM,QAAL,GAAgB,EAAhB;QACA,KAAK0E,IAAL,GAAY,EAAZ;QACA,KAAKC,KAAL,GAAa,EAAb;QACA,KAAKC,IAAL,GAAY,EAAZ;MACD;IACF,CATyB,CAA1B;EAUD;;EAMDnY,QAAQ;IACN,KAAKiI,OAAL,GAAe,IAAIb,0DAAJ,EAAf;IACA,KAAKgM,SAAL,CAAe9S,SAAf,CAA0BkT,GAAD,IAAU,KAAKC,QAAL,GAAgBD,GAAG,CAACE,WAAJ,EAAnD;IACA,KAAKC,QAAL,GAAgB,KAAK7T,MAAL,CAAYkK,GAA5B;EACD;;EAED+D,WAAW;IACT,KAAKgK,kBAAL,CAAwBN,WAAxB;EACD;;EAEDtD,cAAc;IACZ,KAAKV,QAAL,GAAgB,KAAKA,QAAL,KAAkB,IAAlB,GAAyB,IAAzB,GAAgC,IAAhD;IACA,KAAKrB,eAAL,CAAqBgC,WAArB,CAAiC,KAAKX,QAAL,CAAcY,WAAd,EAAjC;EACD;;EAEDH,KAAK;IACH,KAAKD,YAAL,CAAkBC,KAAlB;IACA,KAAKI,YAAL,GAAoB,KAApB;EACD;;EAEDC,eAAe;IACb,KAAKD,YAAL,GAAoB,IAApB;EACD;;EAEDE,aAAa;IACX,IAAI,KAAKP,YAAT,EAAuB;MACrB,OAAO,KAAKA,YAAL,CAAkBQ,OAAlB,KAA8B,IAA9B,GAAqC,KAA5C;IACD;EACF;;EAEDmC,sBAAsB;IACpB,KAAKzD,eAAL,CAAqB2D,IAArB,CAA0B;MACxBC,OAAO,EAAE,8BADe;MAExBtN,IAAI,EAAE;IAFkB,CAA1B;IAIA,KAAKxB,OAAL,GAAe,IAAIb,0DAAJ,EAAf;IACA,KAAKmM,QAAL,GAAgB,EAAhB;IACA,KAAKoB,YAAL,GAAoB,KAApB;IACA,KAAKV,YAAL,CAAkBC,KAAlB;IACA,KAAKpU,MAAL,CAAYoX,aAAZ,CAA0B,oBAA1B;EACD;;EAEDxC,kBAAkB;IAChB,MAAM0D,CAAC,GAAG,KAAKnQ,OAAf;IACA,OAAO,CAAC,EACN,KAAKqM,YAAL,IACA,KAAKK,YADL,IAEAyD,CAAC,CAACvP,QAFF,IAGAuP,CAAC,CAACtD,OAHF,IAIAsD,CAAC,CAACC,IAJF,IAKAD,CAAC,CAACvD,KALF,IAMAuD,CAAC,CAACrP,KANF,IAOA,KAAKkP,IAPL,IAQA,KAAKC,KARL,IASA,KAAKC,IAVC,CAAR;EAYD;;EAEDvD,kBAAkB;IAChB,MAAM3U,IAAI,GAAG,KAAKgI,OAAlB;IACA,IAAItH,MAAJ;;IACA,IAAI,CAACV,IAAI,CAAC4I,QAAV,EAAoB;MAClBlI,MAAM,GAAG,qCAAT;IACD,CAFD,CAGA;IACA;IAJA,KAKO,IAAI,CAACV,IAAI,CAAC4U,KAAV,EAAiB;MACtBlU,MAAM,GAAG,wBAAT;IACD,CAFM,MAEA,IAAI,CAACV,IAAI,CAAC8I,KAAV,EAAiB;MACtBpI,MAAM,GAAG,wBAAT;IACD,CAFM,MAEA,IAAI,CAACV,IAAI,CAAC6U,OAAV,EAAmB;MACxBnU,MAAM,GAAG,iBAAT;IACD,CAFM,MAEA,IAAI,CAACV,IAAI,CAACoY,IAAV,EAAgB;MACrB1X,MAAM,GAAG,eAAT;IACD,CAFM,MAGF;MACHA,MAAM,GAAG,EAAT;MACA,OAAO;QAAEC,OAAO,EAAE,IAAX;QAAiBD;MAAjB,CAAP;IACD;;IACD,OAAO;MAAEC,OAAO,EAAE,KAAX;MAAkBD;IAAlB,CAAP;EACD;;EAED2X,uBAAuB;IACrB,MAAMF,CAAC,GAAG,KAAKnQ,OAAf;IACA,OAAO,CAAC,EACNmQ,CAAC,CAACvP,QAAF,IACAuP,CAAC,CAACtD,OADF,IAEAsD,CAAC,CAACC,IAFF,IAGAD,CAAC,CAACvD,KAHF,IAIAuD,CAAC,CAACrP,KAJF,IAKA,KAAKkP,IALL,IAMA,KAAKC,KANL,IAOA,KAAKC,IARC,CAAR;EAUD;;EAEDI,SAAS,CAAC1N,CAAD,EAAE;IACT,KAAK0I,QAAL,CAAciF,MAAd,CAAqB3N,CAArB,EAAuB,CAAvB;EACD;;EAEK4N,aAAa;IAAA;;IAAA;MAEf;MACA,MAAMrX,KAAK,SAAS,KAAI,CAACxB,eAAL,CAAqByB,MAArB,CAA4B;QAChDC,SAAS,EAAEsW,gHADqC;QAEhDrW,cAAc,EAAE;UAACuW,SAAS,EAAG,KAAI,CAACA,SAAlB;UAA6BvE,QAAQ,EAAC,KAAI,CAACA;QAA3C,CAFgC;QAGhD/R,QAAQ,EAAE,iBAHsC;QAIhDC,eAAe,EAAE,IAJ+B;QAKhDC,YAAY,EAAE;MALkC,CAA5B,CAApB;MAQFN,KAAK,CAAC+P,YAAN,GACGJ,IADH,CACSvH,IAAD,IAAS;QACb,MAAMkP,KAAK,GAAgBlP,IAAI,CAAC,MAAD,CAA/B;QACA,IAAGkP,KAAK,IAAE,IAAV,EACE,KAAI,CAACnF,QAAL,CAAclI,IAAd,CAAmBqN,KAAnB;MACL,CALD;MAMA,KAAI,CAACZ,SAAL,CAAejP,QAAf,GAAwB,EAAxB;MACA,MAAMzH,KAAK,CAACO,OAAN,EAAN;IAlBiB;EAmBlB;;EAEDgX,aAAa;IACZ,MAAMjY,cAAc,GAAG,KAAKkU,kBAAL,EAAvB;IACA,KAAKjU,MAAL,GAAcD,cAAc,CAACC,MAA7B;IAEA,IAAIiY,WAAW,GAAG3L,IAAI,CAAC+J,SAAL,CAAe,KAAK/O,OAApB,CAAlB;IACA,IAAI4Q,YAAY,GAAG5L,IAAI,CAAC+J,SAAL,CAAe,KAAKzD,QAApB,CAAnB;;IACA,IAAI7S,cAAc,CAACE,OAAnB,EAA4B;MAC5B,KAAKd,MAAL,CAAYyO,QAAZ,CAAqB,CAAC,mCAAD,EAAsC;QAACtG,OAAO,EAAC2Q,WAAT;QAAsBrF,QAAQ,EAACsF;MAA/B,CAAtC,CAArB;IACD;EACD;;EAIGC,aAAa,CAACC,WAAD,EAAY;IACrBA,WAAW,CAACC,QAAZ;EACH;;AAlM6B;;;;;;;;;;;;;;;;;;UAC/BrG,oDAASA;IAAAwE,OAAC,QAAD,EAAW;MAAEC,MAAM,EAAE;IAAV,CAAX;;;UACTzE,oDAASA;IAAAwE,OAAC,aAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,OAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,aAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,WAAD;;;AARCU,qBAAqB,uDALjCxY,wDAAS,CAAC;EACTiD,QAAQ,EAAE,wBADD;EAETC,UAAAA,qEAFS;;AAAA,CAAD,CAKwB,GAArBsV,qBAAqB,CAArB;;;;;;;;;;;;;;;;;;;;;;;AClBqC;IASrC,WAAW,SAAX,WAAW;IAEtB,gBAAe,CAAC;IAEhB,QAAQ,KAAU,CAAC;;;AAJR,WAAW;IANvB,wDAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,oEAAkC;;KAEnC,CAAC;GAEW,WAAW;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACT0B;AACT;AACc;AACY;IAOtD,qBAAqB,SAArB,qBAAqB;IAOhC,YAAmB,cAA8B,EAAU,MAAc,EAAU,SAA2B;QAA3F,mBAAc,GAAd,cAAc,CAAgB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAkB;QAN9G,SAAI,GAAQ;YACV,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;SACb;IAGgH,CAAC;IAElH,QAAQ;IAER,CAAC;IAED,eAAe;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACnD,IAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,EAAE;gBAC3C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;aACxD;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;aACjD;QACH,CAAC,EAAC,KAAK,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC;;;;;;;AAtCU,qBAAqB;IANjC,wDAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,kEAAgC;;KAEjC,CAAC;GAEW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVlC;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;IAQaoB,sBAAsB,SAAtBA,sBAAsB;EA8BjCtZ,YAAoBuT,UAApB,EACUpT,MADV,EAEUsS,eAFV,EAGU7K,cAHV,EAIU4L,eAJV,EAKUhH,KALV,EAKgC;IALZ;IACV;IACA;IACA;IACA;IACA;IAvBV,iBAAY,KAAKiG,eAAL,CAAqBgB,SAAjC;IAEA,iBAAY,IAAIrP,IAAJ,EAAZ;IACA,oBAAwB,KAAxB;IACA,eAAmB,IAAIqD,8EAAJ,EAAnB;IACA,iBAAY,KAAZ;IACA,gBAAgC,EAAhC;IACA,wBAAwC,EAAxC;IACA,mBAAmC,EAAnC;IACA,cAAS,KAAT;IACA,0BAAqB,KAArB;IAEA,cAAS,EAAT;IAGA,oBAAoC,EAApC;IAWI,KAAKiM,GAAL,GAAW,KAAKlH,KAAL,CACVmH,MADU,CAEVhT,SAFU,CAEAgT,MAAM,IAAG;MAClB,KAAKrL,OAAL,GAAegF,IAAI,CAACC,KAAL,CAAWoG,MAAM,CAAC,SAAD,CAAjB,CAAf;MACA,KAAKgE,gBAAL,GAAwBrK,IAAI,CAACC,KAAL,CAAWoG,MAAM,CAAC,kBAAD,CAAjB,CAAxB;MACA,KAAKiE,WAAL,CAAiBlM,IAAjB,CAAsB,GAAG,KAAKiM,gBAA9B;MACA,KAAKC,WAAL,CAAiBlM,IAAjB,CAAsB,GAAG,KAAKkI,QAA9B;IACD,CAPU,CAAX;EAQD,CA9C8B,CAkDjC;;;EAEAvT,QAAQ;IACN,KAAKoT,SAAL,CAAe9S,SAAf,CAA0BkT,GAAD,IAAU,KAAKC,QAAL,GAAgBD,GAAG,CAACE,WAAJ,EAAnD;IACA,KAAKC,QAAL,GAAgB,KAAK7T,MAAL,CAAYkK,GAA5B;IACA,MAAM4J,MAAM,GAAQ,KAAKV,UAAL,CAAgBW,aAAhB,CAA8BC,aAA9B,CAA4C,QAA5C,CAApB;;IAEA,IAAI7J,MAAM,CAACiP,UAAP,IAAqB,IAAzB,EAA+B;MAC7BtF,MAAM,CAACG,KAAP,GAAe,GAAf;MACAH,MAAM,CAACI,MAAP,GAAgB,GAAhB;IACD,CAHD,MAGO;MACLJ,MAAM,CAACG,KAAP,GAAe,GAAf;MACAH,MAAM,CAACI,MAAP,GAAgB,GAAhB;IACD;;IAED,IAAI,KAAKC,YAAT,EAAuB;MACrB,KAAKA,YAAL,CAAkBC,KAAlB,GADqB,CACM;IAC5B;EACF;;EAGDsD,gBAAgB;IACd,KAAKvP,OAAL,CAAaY,QAAb,GAAwB,EAAxB;IACA,KAAKZ,OAAL,CAAac,KAAb,GAAqB,EAArB;IACA,KAAKd,OAAL,CAAa4M,KAAb,GAAqB,EAArB;EACD;;EAED9G,WAAW;IACT,KAAKsF,GAAL,CAASoE,WAAT;EACD;;EAEDtD,cAAc;IACZ,KAAKV,QAAL,GAAgB,KAAKA,QAAL,KAAkB,IAAlB,GAAyB,IAAzB,GAAgC,IAAhD;IACA,KAAKrB,eAAL,CAAqBgC,WAArB,CAAiC,KAAKX,QAAL,CAAcY,WAAd,EAAjC;EACD;;EAEDH,KAAK;IACH,KAAKD,YAAL,CAAkBC,KAAlB;EACD;;EAEDM,aAAa;IACX,IAAI,KAAKP,YAAT,EAAuB;MACrB,OAAO,KAAKA,YAAL,CAAkBQ,OAAlB,KAA8B,IAA9B,GAAqC,KAA5C;IACD;EACF;;EACDC,kBAAkB;IAChB,OAAO,CAAC,CACN,KAAKC,YADP;EAGD;;EACDC,kBAAkB;IAChB,MAAM3U,IAAI,GAAG,KAAKgI,OAAlB;IACA,IAAItH,MAAJ;;IACA,IAAI,CAACV,IAAI,CAAC4I,QAAV,EAAoB;MAClBlI,MAAM,GAAG,qCAAT;IACD,CAFD,MAEO,IAAI,CAACV,IAAI,CAAC8I,KAAV,EAAiB;MACtBpI,MAAM,GAAG,wBAAT;IACD,CAFM,MAEA;MACLA,MAAM,GAAG,EAAT;MACA,OAAO;QAAEC,OAAO,EAAE,IAAX;QAAiBD;MAAjB,CAAP;IACD;;IACD,OAAO;MAAEC,OAAO,EAAE,KAAX;MAAkBD;IAAlB,CAAP;EACD;;EAEDoU,eAAe;IACb,KAAKd,YAAL,GAAoB,IAAIjB,qDAAJ,CAClB,KAAKgC,mBAAL,CAAyBnB,aADP,CAApB;IAGA,KAAKI,YAAL,CAAkBC,KAAlB,GAJa,CAKb;IACA;IACA;;IACA,KAAKD,YAAL,CAAkBgB,QAAlB,GAA6B,iBAA7B;EACD;;EAEKyC,WAAW;IAAA;;IAAA;MACf,KAAI,CAACvC,SAAL,GAAiB,IAAjB;;MACA,MAAMzU,cAAc,GAAG,KAAI,CAACkU,kBAAL,EAAvB;;MACA,KAAI,CAACjU,MAAL,GAAcD,cAAc,CAACC,MAA7B;;MACA,IAAID,cAAc,CAACE,OAAnB,EAA4B;QAC1B,MAAMwU,IAAI,GAAG,KAAb;QACA,IAAIC,GAAG,GAAG,KAAI,CAACC,WAAL,CAAiBzB,aAA3B;QACA,IAAI0B,KAAK,GAAG,KAAI,CAACA,KAAL,CAAW1B,aAAvB;QACA,IAAI2B,IAAI,GAAG,KAAI,CAACA,IAAL,CAAU3B,aAArB;QACA,IAAI4B,SAAS,GAAG,KAAI,CAACA,SAAL,CAAe5B,aAA/B;QACA,IAAI6B,SAAS,GAAG,KAAI,CAACA,SAAL,CAAe7B,aAA/B;QACA4B,SAAS,CAAC7L,KAAV,GAAkB,gBAAlB;QACA8L,SAAS,CAAC9L,KAAV,GAAkB,oBAAlB,CAR0B,CAS1B;;QACA,IAAI+L,GAAJ,CAV0B,CAW1B;;QACA,IAAIC,QAAJ;QAEA9C,0DAAA,CACUuC,GADV,EACe;UAAES,OAAO,EAAE;QAAX,CADf,EAEG/E,IAFH,CAEQ,UAASgF,OAAT,EAAgB;UACpBJ,GAAG,GAAG,IAAIK,KAAJ,EAAN;UACAL,GAAG,CAACM,GAAJ,GAAUF,OAAV;UACAH,QAAQ,GAAGD,GAAG,CAACM,GAAf;;UACAN,GAAG,CAACO,MAAJ,GAAa;YACX,MAAMC,QAAQ,GAAGR,GAAG,CAAC5B,KAArB;YACA,MAAMqC,SAAS,GAAGT,GAAG,CAAC3B,MAAtB,CAFW,CAIX;;YACA,IAAIqC,GAAJ;;YACA,IAAIF,QAAQ,GAAGC,SAAf,EAA0B;cACxBC,GAAG,GAAG,IAAItD,6CAAJ,CAAU,GAAV,EAAe,IAAf,EAAqB,CAACoD,QAAD,EAAWC,SAAX,CAArB,CAAN;YACD,CAFD,MAEO;cACLC,GAAG,GAAG,IAAItD,6CAAJ,CAAU,GAAV,EAAe,IAAf,EAAqB,CAACoD,QAAD,EAAWC,SAAX,CAArB,CAAN;YACD;;YAED,MAAMrC,KAAK,GAAGsC,GAAG,CAACC,QAAJ,CAAa/L,QAAb,CAAsBgM,QAAtB,EAAd;YACA,MAAMvC,MAAM,GAAGqC,GAAG,CAACC,QAAJ,CAAa/L,QAAb,CAAsBiM,SAAtB,EAAf;YAEAH,GAAG,CAACI,QAAJ,CAAab,QAAb,EAAuB,KAAvB,EAA8B,EAA9B,EAAkC,EAAlC,EAAsC7B,KAAtC,EAA6CC,MAA7C,EAfW,CAgBX;YACA;YACA;;YACA0B,SAAS,CAAC9L,KAAV,GAAkB,qBAAlB;YACA6L,SAAS,CAAC7L,KAAV,GAAkB,eAAlB,CApBW,CAqBX;;YACAwL,IAAI,CAAC7N,cAAL,CACGmQ,WADH,CACetC,IAAI,CAACnN,OADpB,EAC6BmN,IAAI,CAACmC,WADlC,EAC+ClB,GAAG,CAACM,MAAJ,CAAW,MAAX,CAD/C,EAEGrW,SAFH,CAEa,MAAK;cAEd8U,IAAI,CAACoC,gBAAL;cACApC,IAAI,CAACD,SAAL,GAAiB,KAAjB;cACAC,IAAI,CAACwB,sBAAL;YACD,CAPH,EAQE3V,KAAK,IAAG;cACND,OAAO,CAAC8G,GAAR,CAAY,QAAZ;cACA9G,OAAO,CAAC8G,GAAR,CAAY7G,KAAZ;cACDmU,IAAI,CAACyB,oBAAL,CAA0B5V,KAA1B;YACA,CAZH;UAcD,CApCD;QAqCD,CA3CH;MA4CD;IA9Dc;EA+DhB;;EACD4V,oBAAoB,CAAC5V,KAAD,EAAM;IACxB,KAAKkS,eAAL,CAAqB2D,IAArB,CAA0B;MACxBC,OAAO,EAAE,KAAK9J,IAAI,CAAC+J,SAAL,CAAe/V,KAAK,CAACA,KAAN,CAAYgW,KAA3B,CADU;MAExBxN,IAAI,EAAE;IAFkB,CAA1B;IAIA,KAAK0L,SAAL,GAAiB,KAAjB;IACA,KAAKrV,MAAL,CAAYoX,aAAZ,CAA0B,mCAA1B;EACD;;EAEDN,sBAAsB;IACpB,IAAIG,OAAO,GAAG,EAAd;;IACF,IAAI,KAAKtD,QAAL,KAAkB,IAAtB,EAA4B;MAC1BsD,OAAO,GAAG,gCAAV;IACD,CAFD,MAEO;MACLA,OAAO,GAAG,8BAAV;IACD;;IACC,KAAK5D,eAAL,CAAqB2D,IAArB,CAA0B;MACxB;MACAC,OAAO,EAAEA,OAFe;MAGxBtN,IAAI,EAAE;IAHkB,CAA1B;IAKA,KAAKxB,OAAL,GAAe,IAAIb,8EAAJ,EAAf;IACA,KAAKmM,QAAL,GAAgB,EAAhB;IACA,KAAK+D,gBAAL,GAAwB,EAAxB;IAEA,KAAK3C,YAAL,GAAoB,KAApB;IACA,KAAKV,YAAL,CAAkBC,KAAlB;IACA,KAAKpU,MAAL,CAAYoX,aAAZ,CAA0B,oBAA1B;IACA,KAAKpX,MAAL,CAAYoX,aAAZ,CAA0B,mCAA1B;EACD;;AA1NgC;;;;;;;;;;;;;;;;;;UAChCvE,oDAASA;IAAAwE,OAAC,QAAD,EAAW;MAAEC,MAAM,EAAE;IAAV,CAAX;;;UACTzE,oDAASA;IAAAwE,OAAC,aAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,OAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,MAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,WAAD;;;UAETxE,oDAASA;IAAAwE,OAAC,WAAD;;;AAVC8B,sBAAsB,uDALlC5Z,wDAAS,CAAC;EACTiD,QAAQ,EAAE,oBADD;EAETC,UAAAA,sEAFS;;AAAA,CAAD,CAKyB,GAAtB0W,sBAAsB,CAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjB4D;AAChC;AACU;AAEF;AACN;AAG6B;AACJ;AACA;IASvD,2BAA2B,SAA3B,2BAA2B;IA0BtC,YACU,MAAc,EACd,eAAgC,EAChC,eAAgC,EAChC,eAAgC,EAChC,QAAkB;QAJlB,WAAM,GAAN,MAAM,CAAQ;QACd,oBAAe,GAAf,eAAe,CAAiB;QAChC,oBAAe,GAAf,eAAe,CAAiB;QAChC,oBAAe,GAAf,eAAe,CAAiB;QAChC,aAAQ,GAAR,QAAQ,CAAU;QA9B5B,cAAS,GAAG,UAAU,CAAC;QACvB,WAAM,GAAG;YACP,QAAQ,EAAE,EAAE;YACZ,CAAC,gBAAgB,CAAC,EAAC,EAAE;YACrB,KAAK,EAAC,EAAE;YACR,KAAK,EAAE,EAAE;SACV,CAAC;QAEF,cAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;QAE3C,cAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,WAAM,GAAG,EAAE,CAAC;QACZ,iBAAY,GAAY,KAAK,CAAC;QAC9B,YAAO,GAAY,IAAI,8EAAO,EAAE,CAAC;QACjC,cAAS,GAAG,KAAK,CAAC;QAClB,aAAQ,GAAwB,EAAE,CAAC;QACnC,yBAAoB,GAAwB,EAAE,CAAC;QAC/C,iBAAY,GAAwB,EAAE,CAAC;QACvC,WAAM,GAAG,KAAK,CAAC;QACf,uBAAkB,GAAG,KAAK,CAAC;QAG3B,aAAQ,GAA2B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QA+BtD,iBAAY,GAAY,KAAK,CAAC;QApB5B,IAAI,CAAC,SAAS,GAAG,IAAI,kFAAY,EAAE,CAAC;QACpC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;YACpE,sCAAsC;YACtC,IAAG,KAAK,CAAC,GAAG,KAAK,oBAAoB,EAAE;gBACrC,IAAI,CAAC,OAAO,GAAG,IAAI,8EAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAE,oBAAoB,GAAG,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAE,EAAE,CAAC;gBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC9C,MAAM,QAAQ,GAAG,eAAe,GAAG,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;iBAC5B;gBACD,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;aACxB;QACH,CAAC,CAAC;IACJ,CAAC;IAMD,QAAQ;QACN,IAAI,CAAC,OAAO,GAAG,IAAI,8EAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IACD,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;IACP,CAAC;IACC,WAAW;QACT,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAE5B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;SACnD;IACH,CAAC;IAED,oBAAoB,CAAC,KAAK;QACxB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACxB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;YAC/C,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACxB,OAAO,EAAE,8BAA8B;YACvC,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,8EAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAC;IACjE,CAAC;IAED,uBAAuB;QACrB,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAEtD,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QAE/G,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAG,YAAY,IAAI,CAAC,CAAC,SAAS,IAAI,aAAa,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,aAAa;QACX,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,QAAQ,GAAG,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,aAAa,EAAE;gBACjB,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,aAAa;iBACxB,CAAC,CAAC;aACJ;SACF;QAED,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAEvC,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAEjE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,8BAA8B,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IACrG,CAAC;IAED,mBAAmB,CAAC,IAAI,EAAE,SAAS;QACjC,IAAI,IAAI,EAAE;YACR,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;YAEvF,IAAI,CAAC,aAAa,EAAE;gBAClB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;aACpD;SACF;IACH,CAAC;IAEH,UAAU,CAAC,IAAI;QACb,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IAC9E,CAAC;IAEG,SAAS,CAAC,CAAC;QACT,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IACzC,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE;YAC9B,MAAM,gBAAgB,GAAG,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAE,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,CAAC,CAAC;SAC7B;IACH,CAAC;IAEH,gBAAgB,CAAC,KAAa;QAC5B,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC9C,MAAM,qBAAqB,GAAG,gBAAgB,KAAK,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAChC;IACH,CAAC;IAED,aAAa,CAAC,WAAW;QACrB,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,kFAAY,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAClD,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IACjH,CAAC;IAED,aAAa;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzD,IAAI,SAAS,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC3D,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,GAAG,IAAI,kFAAY,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,8EAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAE,oBAAoB,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAE,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,MAAM,QAAQ,GAAG,eAAe,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SAC5B;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;IAI3B,CAAC;;;;;;;;;AA9NQ,2BAA2B;IALvC,yDAAS,CAAC;QACT,QAAQ,EAAE,yBAAyB;QACnC,qFAAmD;;KAEpD,CAAC;GACW,2BAA2B;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBxC,2BAA2B;AACsC;AACxB;AAC4B;AAChB;AACF;AACM;AAER;AAEV;IAU1B,YAAY,SAAZ,YAAY;IA2BvB,YACU,MAAc,EACd,eAAgC,EAChC,eAAgC,EAChC,eAAgC;QAHhC,WAAM,GAAN,MAAM,CAAQ;QACd,oBAAe,GAAf,eAAe,CAAiB;QAChC,oBAAe,GAAf,eAAe,CAAiB;QAChC,oBAAe,GAAf,eAAe,CAAiB;QA7B1C,cAAS,GAAG,UAAU,CAAC;QACvB,WAAM,GAAG;YACP,QAAQ,EAAE,EAAE;YACZ,CAAC,gBAAgB,CAAC,EAAC,EAAE;YACrB,KAAK,EAAC,EAAE;YACR,KAAK,EAAE,EAAE;SACV,CAAC;QAEF,cAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;QAE3C,cAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,WAAM,GAAG,EAAE,CAAC;QACZ,iBAAY,GAAY,KAAK,CAAC;QAC9B,YAAO,GAAY,IAAI,0DAAO,EAAE,CAAC;QACjC,cAAS,GAAG,KAAK,CAAC;QAClB,aAAQ,GAAwB,EAAE,CAAC;QACnC,yBAAoB,GAAwB,EAAE,CAAC;QAC/C,iBAAY,GAAwB,EAAE,CAAC;QACvC,WAAM,GAAG,KAAK,CAAC;QACf,uBAAkB,GAAG,KAAK,CAAC;QAG3B,aAAQ,GAA2B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QA6BtD,iBAAY,GAAY,KAAK,CAAC;QAoC9B,iBAAY,GAAG,CAAC,KAAU,EAAE,EAAE;YAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAGjC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAE7C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACvB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,0BAAqB,GAAG,CAAC,IAAS,EAAE,GAAW,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aAClC;QACH,CAAC,CAAC;QAEF,kBAAa,GAAG,CAAC,KAAU,EAAE,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE9D,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAElD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YAEpC;;;eAGG;YACH,IAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAEhD,IAAI,aAAa,KAAK,IAAI;gBACxB,IAAI,CAAC,qBAAqB,CACxB,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAC5C,aAAa,CACd,CAAC;YAEJ,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAE9C,CAAC,CAAC;QAEF,eAAU,GAAG,CAAC,MAAc,EAAE,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YAEtC;;eAEG;YACH,IAAI,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/C,CAAC,CAAC;QAEF,gBAAW,GAAG,GAAG,EAAE;YACjB,IAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;YACrD,IAAI,WAAW,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAEpE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACvB,UAAU,EAAE,WAAW;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;QAnHA,IAAI,CAAC,SAAS,GAAG,IAAI,8DAAY,EAAE,CAAC;QACpC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;YACpE,sCAAsC;YACtC,IAAG,KAAK,CAAC,GAAG,KAAK,oBAAoB,EAAE;gBACrC,IAAI,CAAC,OAAO,GAAG,IAAI,0DAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAE,oBAAoB,GAAG,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAE,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;gBACvB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;aAC1B;QACH,CAAC,CAAC;IACJ,CAAC;IAMD,QAAQ;QACN,IAAI,CAAC,OAAO,GAAG,IAAI,0DAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IACD,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;IACP,CAAC;IACC,WAAW;QACT,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAED,eAAe;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,wDAAQ,CAAC;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YAGzB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACzC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC/C,uBAAuB,EAAE,IAAI,CAAC,qCAAqC;SAEpE,CAAC,CAAC;QACH;;;WAGG;QAEH,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE1C,CAAC;IAgED,cAAc;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAE5B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;SACnD;IACH,CAAC;IAED,oBAAoB,CAAC,KAAK;QACxB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACxB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;YAC/C,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACxB,OAAO,EAAE,8BAA8B;YACvC,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,0DAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAClD,CAAC;IAED,uBAAuB;QACrB,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAEtD,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QAE/G,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAG,YAAY,IAAI,CAAC,CAAC,SAAS,IAAI,aAAa,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,aAAa;QACX,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,QAAQ,GAAG,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,aAAa,EAAE;gBACjB,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,aAAa;iBACxB,CAAC,CAAC;aACJ;SACF;QAED,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAEvC,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAEjE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,mBAAmB,CAAC,IAAI,EAAE,SAAS;QACjC,IAAI,IAAI,EAAE;YACR,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;YAEvF,IAAI,CAAC,aAAa,EAAE;gBAClB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;aACpD;SACF;IACH,CAAC;IAEH,UAAU,CAAC,IAAI;QACb,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IAC9E,CAAC;IAEG,SAAS,CAAC,CAAC;QACT,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IACzC,CAAC;IAEL,aAAa;QACX,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE;YAC9B,MAAM,gBAAgB,GAAG,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAE,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,CAAC,CAAC;SAC7B;IACH,CAAC;IAEC,gBAAgB,CAAC,KAAa;QAC5B,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC9C,MAAM,qBAAqB,GAAG,gBAAgB,KAAK,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAChC;IACH,CAAC;IAED,aAAa,CAAC,WAAW;QACrB,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,8DAAY,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAClD,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IACjH,CAAC;IAED,aAAa;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzD,IAAI,SAAS,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC3D,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;;;;;;;;AA7RQ,YAAY;IALxB,yDAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;QAC7B,qEAAmC;;KAEpC,CAAC;GACW,YAAY;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACpBiB;AACwB;IAOrD,cAAc,SAAd,cAAc;IAIzB,YAAoB,WAA4B;QAA5B,gBAAW,GAAX,WAAW,CAAiB;QAFhD,eAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;IAEU,CAAC;IAEpD,QAAQ;QACN,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;IACrC,CAAC;IAED,YAAY,CAAC,CAAC;QACZ,cAAc,CAAC,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAC/C,CAAC;;;;;AAZU,cAAc;IAN1B,wDAAS,CAAC;QACT,QAAQ,EAAE,sBAAsB;QAChC,wEAAsC;;KAEvC,CAAC;GAEW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACRuB;IAOrC,qBAAqB,SAArB,qBAAqB;IAEhC,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;;;AALU,qBAAqB;IALjC,wDAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,8EAA4C;;KAE7C,CAAC;GACW,qBAAqB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPO;AACiB;AACS;AAEoB;AACrB;AAED;AAEZ;AACH;AAElD,QAAQ;AAC8D;AACX;AACG;AAC6B;AAG3F,aAAa;AAC2E;AACe;AAChC;AAC0B;AAE1B;AACN;AAEL;AACK;AACA;AAC2D;AACf;AAEtG,SAAS,qBAAqB,CAAC,IAAgB;IACpD,OAAO,IAAI,4EAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;IAyBY,kBAAkB,SAAlB,kBAAkB;;AAAlB,kBAAkB;IAvB9B,wDAAQ,CAAC;QACR,YAAY,EAAE;YACZ,0EAAqB,EAAE,+EAAc,EAAE,0EAAqB,EAAE,oEAAW,EAAE,uEAAY,EAAE,oGAAqB,EAAE,iGAAoB,EAAE,gHAAsB,EAAE,gFAAgB,EAAE,0GAA0B,EAAE,sIAA2B,EAAE,uHAAsB;SAChQ;QACD,eAAe,EAAE,EAAE;QACnB,OAAO,EAAE;YACP,qEAAa;YACb,gEAAmB,EAAE;YACrB,0DAAY;YACZ,mEAAgB;YAChB,wDAAW,EAAE,gEAAmB;YAChC,gEAAe;YACf,6DAAc;YACd,+EAA0B,EAAE;YAC5B,yEAAuB,CAAC;gBACtB,MAAM,EAAE;oBACN,OAAO,EAAE,iEAAe;oBACxB,UAAU,EAAE,CAAC,qBAAqB,CAAC;oBACnC,IAAI,EAAE,CAAC,6DAAU,CAAC;iBACrB;aACA,CAAC;SACH;KACF,CAAC;GACW,kBAAkB;AAAA;;;;;;;;;;;;;;;;;;;;;;;AC7D/B,uDAAuD;AACL;AACP;AACN;AACsB;AACxB;IAMtB,eAAe,SAAf,eAAe;IAM1B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAJpC,WAAM,GAAG,4EAAkB,CAAC;QACpB,oBAAe,GAAG,IAAI,+CAAa,CAAM,CAAC,CAAC,CAAC;QACpD,eAAU,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;IAET,CAAC;IAEzC,eAAe;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,mDAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5D,IAAG,KAAK,EAAE;gBACR,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAClC;QACH,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;;;;;AAdU,eAAe;IAJ3B,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;ACXsB;AACP;AACgB;IAQ9C,cAAc,SAAd,cAAc;IAIzB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAFpC,WAAM,GAAG,4EAAkB,CAAC;IAEY,CAAC;IAEzC,WAAW,CAAC,OAAgB,EAAE,WAAgC,EAAE,aAAa;QAC3E,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QACzD,IAAG,cAAc,CAAC,YAAY,EAAE;YAC9B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;SACxD;QACD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,MAAM,CAAC;QACzG,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,qBAAqB,CAAC,OAAgB,EAAE,QAA6B,EAAE,aAAa;QAClF,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,0EAA0E;QAC1E,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpD,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtD,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,IAAG,cAAc,CAAC,YAAY,EAAE;YAC9B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;SACxD;QACD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,MAAM,CAAC;QACzG,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;;;;;AA/BU,cAAc;IAJ1B,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACV3B,wDAAwD;AACxD,2BAA2B;AAC3B,oDAAoD;AACpD,uDAAuD;AACL;AACP;AACN;AACsB;AACxB;IAOtB,cAAc,SAAd,cAAc;IAYzB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAVpC,mBAAc,GAAG;YACf,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,qBAAqB;YAC9B,QAAQ,EAAE,sBAAsB;SACjC;QAED,WAAM,GAAG,4EAAkB,CAAC;QACpB,sBAAiB,GAAG,IAAI,+CAAa,CAAO,CAAC,CAAC,CAAC;QACvD,iBAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;IAEb,CAAC;IAEzC,KAAK,CAAC,KAAU;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,YAAY,EAAE,KAAK,CAAC,CAAC,IAAI,CAC3D,mDAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACf,IAAI,QAAQ,EAAE;gBACZ,MAAM,IAAI,GAAG,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAC,CAAC;gBAC7E,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,OAAO,IAAI,CAAC;aACb;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAK;QACZ,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7D,IAAI,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAS,CAAC;YAC7E,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAEb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAAA,CAAC;IAEF,cAAc,CAAC,IAAU;QACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,MAAM;QACJ,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACtC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,kBAAkB;QAChB,IAAI,kBAAkB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxC,IAAG,MAAM,IAAI,MAAM,GAAG,CAAC,EAAE;gBACvB,kBAAkB,GAAG,KAAK,CAAC;aAC5B;QACH,CAAC,CAAC;QACF,OAAO,kBAAkB,CAAC;IAC5B,CAAC;;;;;AAxDU,cAAc;IAJ1B,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,cAAc;AAAA;;;;;;;;;;;;;;;;;;;;;;ACfgB;AACY;AACN;AACZ;AAErC,MAAM,OAAO,GAAG,eAAe,CAAC;IAMnB,eAAe,SAAf,eAAe;IAK1B,YACU,SAA2B,EAC3B,OAAgB;QADhB,cAAS,GAAT,SAAS,CAAkB;QAC3B,YAAO,GAAP,OAAO,CAAS;QALlB,eAAU,GAAG,IAAI,+CAAa,CAAM,CAAC,CAAC,CAAC;QAC/C,cAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IAKxC,CAAC;IAEJ,qBAAqB;QACnB,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACnC,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC3B;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,GAAG;QACb,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;IAChC,CAAC;;;;;;AA5BU,eAAe;IAJ3B,yDAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,eAAe;AAAA;;;;;;;;;;;;;;;;;;;;;ACXrB,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,EAAE;IACtC,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;QACtE,MAAM;YACJ,+GAA+G,CAAC;KACnH;SAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QACrB,MAAM,GAAG,4BAA4B,CAAC;KACvC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACxD,MAAM,GAAG,4BAA4B,CAAC;KACvC;SAAM;QACL,MAAM,GAAG,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAClC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,EAAE;IACvC,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;QACtE,MAAM;YACJ,+GAA+G,CAAC;KACnH;SAAM,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;QAClE,MAAM,GAAG,+CAA+C,CAAC;KAC1D;SAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QACzB,MAAM,GAAG,2BAA2B,CAAC;KACtC;SAAM,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE;QACnC,MAAM,GAAG,0BAA0B,CAAC;KACrC;SAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QACrB,MAAM,GAAG,4BAA4B,CAAC;KACvC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;QACtD,MAAM,GAAG,2BAA2B,CAAC;KACtC;SAAM;QACL,MAAM,GAAG,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAClC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE;IACnC,IAAI,MAAc,CAAC;IACnB,IAAK,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;QAC9B,MAAM,GAAG,wBAAwB,CAAC;KACnC;SAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;QACzD,MAAM,GAAG,gCAAgC,CAAC;KAC3C;SAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;QACtB,MAAM,GAAG,uBAAuB,CAAC;KAClC;SAAM,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE;QACnC,MAAM,GAAG,0BAA0B,CAAC;KACrC;SAAM,IAAG,CAAC,IAAI,CAAC,SAAS,EAAE;QACzB,MAAM,GAAG,yCAAyC,CAAC;KACpD;SAAM;QACL,MAAM,GAAG,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAClC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,EAAE;IACrC,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;QAChB,MAAM,GAAG,qCAAqC,CAAC;KAChD;SAAK;QACJ,MAAM,GAAG,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAClC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE;IACnC,IAAI,MAAc,CAAC;IACnB,IAAK,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE;QAC/B,MAAM,GAAG,sBAAsB,CAAC;KAEjC;SACK,IAAI,CAAC,IAAI,CAAC,MAAM,EACtB;QACE,MAAM,GAAG,4BAA4B,CAAC;KAEvC;SACI,IAAG,CAAE,IAAI,CAAC,OAAO,IAAE,KAAK,IAAK,IAAI,CAAC,MAAM,IAAE,KAAK,CAAC,EACrD;QACE,MAAM,GAAG,wBAAwB,CAAC;KAEnC;SACI;QACH,MAAM,GAAG,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAClC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,EAAE;IAC7C,IAAI,MAAc,CAAC;IACnB,IAAK,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;QACnC,MAAM,GAAG,iBAAiB,CAAC;KAE5B;SACK,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAC1E;QACE,MAAM,GAAG,4BAA4B,CAAC;KAEvC;SACI,IAAG,CAAE,SAAS,CAAC,OAAO,IAAE,KAAK,CAAE,EACpC;QACE,MAAM,GAAG,oCAAoC,CAAC;KAE/C;SACI;QACH,MAAM,GAAG,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAClC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC,CAAC;;;;;;;;;;;;;;;;AC9GF,gFAAgF;AAChF,0EAA0E;AAC1E,gEAAgE;AAEzD,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,0CAA0C;CACnD,CAAC;AAEF;;;;;;GAMG;AACH,mEAAmE;;;;;;;;;;;;;;;;;AChBpB;AAC4B;AAE9B;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,yFAAsB,EAAE,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXlC;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,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA","sources":["./src/app/_directive/directive/autofocusDirective.ts","./src/app/_directive/directive/hasRoleDirective.ts","./src/app/admin/admin.component.ts","./src/app/admin/admin.module.ts","./src/app/admin/components/header/header.component.ts","./src/app/admin/components/modals/add-playroom-modal/add-playroom-modal.component.ts","./src/app/admin/components/modals/add-ramp-modal/add-ramp-modal.component.ts","./src/app/admin/components/modals/add-staffcard-modal/add-staffcard-modal/add-staffcard-modal.component.ts","./src/app/admin/components/modals/add-user-modal/add-user-modal.component.ts","./src/app/admin/components/modals/add-visit-modal/add-visit-modal.component.ts","./src/app/admin/components/modals/blocked-status/blocked-status.component.ts","./src/app/admin/components/modals/delete-playroom-modal/delete-playroom-modal.component.ts","./src/app/admin/components/modals/delete-ramp-modal/delete-ramp-modal.component.ts","./src/app/admin/components/modals/delete-staffcard-modal/delete-staffcard-modal/delete-staffcard-modal.component.ts","./src/app/admin/components/modals/delete-user-modal/delete-user-modal.component.ts","./src/app/admin/components/modals/delete-visitor-modal/delete-visitor-modal.component.ts","./src/app/admin/components/modals/edit-playroom-modal/edit-playroom-modal.component.ts","./src/app/admin/components/modals/edit-ramp-modal/edit-ramp-modal.component.ts","./src/app/admin/components/modals/edit-staffcard-modal/edit-staffcard-modal/edit-staffcard-modal.component.ts","./src/app/admin/components/modals/edit-user-modal/edit-user-modal.component.ts","./src/app/admin/components/modals/edit-visit-modal/edit-visit-modal.component.ts","./src/app/admin/components/modals/edit-visitor-modal/edit-visitor-modal.component.ts","./src/app/admin/components/modals/surcharge-modal/surcharge-modal.component.ts","./src/app/admin/components/modals/view-qr-code/view-qr-code.component.ts","./src/app/admin/components/start-layout/start-layout.component.ts","./src/app/admin/guards/admin.guard.ts","./src/app/admin/guards/adminmanager.guard.ts","./src/app/admin/guards/employee.guard.ts","./src/app/admin/guards/logged-in.guard.ts","./src/app/admin/guards/logged-out.guard.ts","./src/app/admin/models/playroom.model.ts","./src/app/admin/models/ramp.model.ts","./src/app/admin/models/staffCard.ts","./src/app/admin/models/visit.model.ts","./src/app/admin/models/visiti.model.ts","./src/app/admin/models/visitor.ts","./src/app/admin/pages/admin-settings/admin-settings.page.ts","./src/app/admin/pages/login/login.page.ts","./src/app/admin/pages/manage-playrooms/manage-playrooms.page.ts","./src/app/admin/pages/manage-ramps/manage-ramps.page.ts","./src/app/admin/pages/manage-staffcards/manage-staffcards/manage-staffcards.component.ts","./src/app/admin/pages/manage-users/manage-users.page.ts","./src/app/admin/pages/manage-visitors/manage-visitors.page.ts","./src/app/admin/pages/manage-visits/manage-visits.component.ts","./src/app/admin/pages/visits/visits.page.ts","./src/app/admin/services/playroom.service.ts","./src/app/admin/services/ramp.service.ts","./src/app/admin/services/staffcard.service.ts","./src/app/admin/services/user.service.ts","./src/app/admin/services/visit.service.ts","./src/app/admin/services/visitor.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/interceptors/token.interceptor.ts","./src/app/models/user.model.ts","./src/app/registration/components/modals/add-child-modal/add-child-modal.component.ts","./src/app/registration/components/start-layout/start-layout.component.ts","./src/app/registration/consent-group-visit/consent-group-visit.component.ts","./src/app/registration/consent/consent/consent.component.ts","./src/app/registration/guards/admin.guard.ts","./src/app/registration/guards/logged-in.guard.ts","./src/app/registration/guards/logged-out.guard.ts","./src/app/registration/models/visitor.model.ts","./src/app/registration/models/visitorChild.ts","./src/app/registration/pages/group-registration/group-registration.page.ts","./src/app/registration/pages/landing/landing.page.ts","./src/app/registration/pages/login/login.page.ts","./src/app/registration/pages/online-registration/online-consent/online-consent.component.ts","./src/app/registration/pages/online-registration/online-registration/online-registration.component.ts","./src/app/registration/pages/register/register.page.ts","./src/app/registration/pages/select-room/select-room.page.ts","./src/app/registration/registration.component.ts","./src/app/registration/registration.module.ts","./src/app/registration/services/playroom.service.ts","./src/app/registration/services/visitor.service.ts","./src/app/services/account.service.ts","./src/app/services/language.service.ts","./src/app/utils/formValidators.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/@ionic/core/dist/esm/ lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object"],"sourcesContent":["import { Directive, AfterViewInit, ElementRef } from '@angular/core';\r\n \r\n@Directive({\r\n selector: '[appAutofocus]'\r\n})\r\nexport class AutofocusDirective implements AfterViewInit {\r\n \r\n constructor(private el: ElementRef) {\r\n console.log(el);\r\n }\r\n \r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.el.nativeElement.focus();\r\n }, 500);\r\n }\r\n \r\n}\r\n","import { Directive, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { take } from 'rxjs/operators';\r\nimport { User } from 'src/app/models/user.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\n\r\n@Directive({\r\n selector: '[appHasRole]'\r\n})\r\nexport class HasRoleDirective implements OnInit {\r\n @Input() set appHasRole(role: string) {\r\n const user = JSON.parse(localStorage.getItem('user'));\r\n if (this.user && this.user.role === role) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }}\r\n// eslint-disable-next-line @typescript-eslint/member-ordering\r\nuser: User|any;\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n constructor(private viewContainer: ViewContainerRef, private templateRef: TemplateRef,\r\n private accountService: AccountService )\r\n {\r\n this.accountService.currentUser$.pipe\r\n (take(1)).subscribe\r\n (\r\n user=>\r\n {\r\n this.user=user;\r\n }\r\n );\r\n }\r\n ngOnInit(): void {\r\n // clear view if has no roles\r\n\r\n}\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { User } from '../models/user.model';\r\nimport { Storage } from '@ionic/storage-angular';\r\nimport { AccountService } from '../services/account.service';\r\nimport { LanguageService } from '../services/language.service';\r\nimport { interval, Subscription, timer } from 'rxjs';\r\nimport { VisitorService } from './services/visitor.service';\r\nimport { VisitService } from './services/visit.service';\r\nimport { map, share } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-admin',\r\n templateUrl: './admin.component.html',\r\n styleUrls: ['./admin.component.css']\r\n})\r\nexport class AdminComponent implements OnInit {\r\n\r\n loggedUser$ = this.accountService.currentUser$;\r\n dateTime:string;\r\n time = new Date();\r\n rxTime = new Date();\r\n intervalId;\r\n subscription: Subscription;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /* */\r\ni:number;\r\npaginationSettings = {totalItems: 0};\r\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\ncurrentPage: number = 1;\r\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\nitemsPerPage: number = 20;\r\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\nfullNameQuery: string = '';\r\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\nbirthDateQuery: string = '';\r\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\nroomQuery: string = '';\r\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\nstatusQuery: string = '';\r\n/* visits$ = this.visitService.visit$;\r\nvisitors$ = this.visitorService.visitors$; */\r\npageSize: number = 2147483647;\r\n\r\n\r\n/* */\r\n\r\n\r\n constructor(private accountService: AccountService, private languageService: LanguageService,\r\n private storage: Storage,private visitService:VisitService ) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n isActivePage(pageName): boolean {\r\n const currentPath = window.location.href.split('/').pop();\r\n return currentPath.startsWith(pageName);\r\n }\r\n}\r\n","/* eslint-disable prefer-arrow/prefer-arrow-functions */\r\nimport { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { RouteReuseStrategy } from '@angular/router';\r\nimport {NgxPaginationModule} from 'ngx-pagination';\r\nimport { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\r\n\r\nimport { CodeInputModule } from 'angular-code-input';\r\n\r\nimport { TokenInterceptor } from '../interceptors/token.interceptor';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { IonicStorageModule } from '@ionic/storage-angular';\r\n\r\n// pages\r\nimport { LoginPage } from './pages/login/login.page';\r\nimport { ManagePlayroomsPage } from './pages/manage-playrooms/manage-playrooms.page';\r\nimport { ManageUsersPage } from './pages/manage-users/manage-users.page';\r\nimport { ManageVisitorsPage } from './pages/manage-visitors/manage-visitors.page';\r\nimport { AdminSettingsPage } from './pages/admin-settings/admin-settings.page';\r\nimport { VisitsPage } from './pages/visits/visits.page';\r\nimport { ManageRampsPage } from './pages/manage-ramps/manage-ramps.page';\r\n\r\n// components\r\nimport { StartLayoutComponent } from './components/start-layout/start-layout.component';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { AddUserModalComponent } from './components/modals/add-user-modal/add-user-modal.component';\r\nimport { DeleteUserModalComponent } from './components/modals/delete-user-modal/delete-user-modal.component';\r\nimport { EditUserModalComponent } from './components/modals/edit-user-modal/edit-user-modal.component';\r\nimport { AddPlayroomModalComponent } from './components/modals/add-playroom-modal/add-playroom-modal.component';\r\nimport { EditPlayroomModalComponent } from './components/modals/edit-playroom-modal/edit-playroom-modal.component';\r\nimport { DeletePlayroomModalComponent } from './components/modals/delete-playroom-modal/delete-playroom-modal.component';\r\nimport { AddVisitModalComponent } from './components/modals/add-visit-modal/add-visit-modal.component';\r\nimport { EditVisitModalComponent } from './components/modals/edit-visit-modal/edit-visit-modal.component';\r\nimport { DeleteVisitorModalComponent } from './components/modals/delete-visitor-modal/delete-visitor-modal.component';\r\nimport { ManageVisitsComponent } from './pages/manage-visits/manage-visits.component';\r\nimport { AutofocusDirective } from '../_directive/directive/autofocusDirective';\r\nimport { HasRoleDirective } from '../_directive/directive/hasRoleDirective';\r\nimport { BlockedStatusComponent } from './components/modals/blocked-status/blocked-status.component';\r\nimport { SurchargeModalComponent } from './components/modals/surcharge-modal/surcharge-modal.component';\r\nimport { QRCodeModule } from 'angularx-qrcode';\r\nimport { AddRampModalComponent } from './components/modals/add-ramp-modal/add-ramp-modal.component';\r\nimport { EditRampModalComponent } from './components/modals/edit-ramp-modal/edit-ramp-modal.component';\r\nimport { DeleteRampModalComponent } from './components/modals/delete-ramp-modal/delete-ramp-modal.component';\r\nimport { AdminComponent } from './admin.component';\r\nimport { AddStaffcardModalComponent } from './components/modals/add-staffcard-modal/add-staffcard-modal/add-staffcard-modal.component';\r\nimport { EditStaffcardModalComponent } from './components/modals/edit-staffcard-modal/edit-staffcard-modal/edit-staffcard-modal.component';\r\nimport { DeleteStaffcardModalComponent } from './components/modals/delete-staffcard-modal/delete-staffcard-modal/delete-staffcard-modal.component';\r\nimport { ManageStaffcardsComponent } from './pages/manage-staffcards/manage-staffcards/manage-staffcards.component';\r\nimport { EditVisitorModalComponent } from './components/modals/edit-visitor-modal/edit-visitor-modal.component';\r\nimport { ViewQrCodeComponent } from './components/modals/view-qr-code/view-qr-code.component';\r\n\r\n\r\nexport function createTranslateLoader(http: HttpClient) {\r\n return new TranslateHttpLoader(http, 'assets/i18n/', '.json');\r\n}\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AdminComponent, LoginPage, ManagePlayroomsPage, VisitsPage, ManageUsersPage, ManageVisitorsPage, AdminSettingsPage,\r\n StartLayoutComponent, HeaderComponent,ManageRampsPage,ManageStaffcardsComponent,\r\n AddUserModalComponent, DeleteUserModalComponent, EditUserModalComponent, DeleteVisitorModalComponent,\r\n AddPlayroomModalComponent, EditPlayroomModalComponent, DeletePlayroomModalComponent, AddVisitModalComponent, EditVisitModalComponent,\r\n ManageVisitsComponent, HasRoleDirective, AutofocusDirective, BlockedStatusComponent,SurchargeModalComponent,AddRampModalComponent,EditRampModalComponent,DeleteRampModalComponent, AdminComponent,AddStaffcardModalComponent,EditStaffcardModalComponent,DeleteStaffcardModalComponent,EditVisitorModalComponent,\r\n ViewQrCodeComponent\r\n ],\r\n entryComponents: [],\r\n imports: [\r\n BrowserModule,\r\n RouterModule,\r\n IonicModule.forRoot(),\r\n HttpClientModule,\r\n QRCodeModule,\r\n FormsModule, ReactiveFormsModule,\r\n CodeInputModule,\r\n NgxPaginationModule,\r\n IonicStorageModule.forRoot(),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: (createTranslateLoader),\r\n deps: [HttpClient]\r\n }\r\n }),\r\n ]\r\n})\r\nexport class AdminModule {}\r\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { LanguageService } from '../../../services/language.service';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss'],\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n\r\n @Input() title: string;\r\n @Input() isStaff: boolean;\r\n @Input() profileIcon: boolean;\r\n @Output() goBack = new EventEmitter();\r\n language$ = this.languageService.language$;\r\n language: string;\r\n\r\n constructor(private languageService: LanguageService) {}\r\n\r\n ngOnInit(): void {\r\n this.language$.subscribe(lng => this.language = lng.toUpperCase());\r\n }\r\n\r\n toggleLanguage() {\r\n this.language = this.language === 'EN' ? 'SR' : 'EN';\r\n this.languageService.setLanguage(this.language.toLowerCase());\r\n }\r\n\r\n goBackEmit() {\r\n this.goBack.emit(null);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { Playroom } from 'src/app/admin/models/playroom.model';\r\nimport { PlayroomService } from 'src/app/admin/services/playroom.service';\r\nimport { validateRoom } from 'src/app/utils/formValidators';\r\n\r\n@Component({\r\n selector: 'app-add-playroom-modal',\r\n templateUrl: './add-playroom-modal.component.html',\r\n styleUrls: ['./add-playroom-modal.component.scss'],\r\n})\r\nexport class AddPlayroomModalComponent implements OnInit {\r\n\r\n room: Playroom = new Playroom();\r\n errMsg = '';\r\n name: string;\r\n address: string;\r\n telephone: string;\r\n\r\n constructor(private modalController: ModalController, private roomService: PlayroomService) { }\r\n\r\n ngOnInit() {}\r\n\r\n addRoom() {\r\n const formValidation = validateRoom(this.room);\r\n this.errMsg = formValidation.errMsg;\r\n if(formValidation.isValid) {\r\n this.roomService.addPlayroom(this.room).subscribe(res => {\r\n this.roomService.getAllPlayrooms();\r\n this.dismissModal();\r\n },(err) => {\r\n JSON.stringify(err.error.title);\r\n });\r\n }\r\n }\r\n\r\n\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { take } from 'rxjs/operators';\r\nimport { Playroom } from 'src/app/admin/models/playroom.model';\r\nimport { Ramp } from 'src/app/admin/models/ramp.model';\r\nimport { PlayroomService } from 'src/app/admin/services/playroom.service';\r\nimport { RampService } from 'src/app/admin/services/ramp.service';\r\nimport { validateRamp} from 'src/app/utils/formValidators';\r\n\r\n\r\n@Component({\r\n selector: 'app-add-ramp-modal',\r\n templateUrl: './add-ramp-modal.component.html',\r\n styleUrls: ['./add-ramp-modal.component.scss'],\r\n})\r\nexport class AddRampModalComponent implements OnInit {\r\n\r\n ramp: Ramp = new Ramp();\r\n errMsg = '';\r\n playrooms$ = this.roomService.playrooms$;\r\n constructor(private modalController: ModalController,private roomService: PlayroomService,private rampService:RampService) { }\r\n\r\n ngOnInit()\r\n {\r\n this.roomService.getAllPlayrooms();\r\n console.log(\"playrooms$\")\r\n console.log(this.playrooms$)\r\n }\r\n addRamp(){\r\n \r\n const formValidation = validateRamp(this.ramp);\r\n\r\n this.errMsg = formValidation.errMsg;\r\n if(formValidation.isValid) {\r\n this.rampService.addRamp(this.ramp).subscribe(res => {\r\n this.rampService.getAllRamp({currentPage: 1, itemsPerPage: 100,\r\n ulaznaQuery: '', izlaznaQuery: '', brojRampeQuery: '',roomNameQuery:'',StatusQuery:''});\r\n this.dismissModal();\r\n console.log(\"addRamp\")\r\n console.log(\"this.rampp\")\r\n \r\n },(err) => {\r\n JSON.stringify(err.error.title);\r\n });\r\n }\r\n\r\n \r\n}\r\n\r\n \r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n}\r\n\r\n\r\n ","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { StaffCard } from 'src/app/admin/models/staffCard';\r\nimport { PlayroomService } from 'src/app/admin/services/playroom.service';\r\nimport { StaffcardService } from 'src/app/admin/services/staffcard.service';\r\nimport { validateStaffCard } from 'src/app/utils/formValidators';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as signalR from \"@microsoft/signalr\";\r\n\r\n@Component({\r\n selector: 'app-add-staffcard-modal',\r\n templateUrl: './add-staffcard-modal.component.html',\r\n styleUrls: ['./add-staffcard-modal.component.scss'],\r\n})\r\nexport class AddStaffcardModalComponent implements OnInit, OnDestroy {\r\n staffCard: StaffCard = new StaffCard();\r\n errMsg = '';\r\n msg = '';\r\n checkboxes: any[];\r\n playrooms$ = this.roomService.playrooms$;\r\n connection;\r\n disconnectedOnPurpose = false;\r\n apiUrl = environment.apiUrl;\r\n disableButton = false;\r\n roomId;\r\n\r\n\r\n constructor(private modalController: ModalController, private roomService: PlayroomService, private staffCardService: StaffcardService, fb: FormBuilder) {\r\n\r\n }\r\n ngOnInit() {\r\n this.roomService.getAllPlayrooms();\r\n this.playrooms$.subscribe((rooms) => {\r\n console.log(\"playrooms$\");\r\n console.log(rooms);\r\n this.checkboxes = rooms;\r\n this.checkboxes.map((x) => x.checked = false);\r\n });\r\n\r\n this.connection = new signalR.HubConnectionBuilder()\r\n .withUrl(this.apiUrl + 'hubs/smartCardHub')\r\n .build();\r\n\r\n this.ensureSignalRConnected();\r\n\r\n this.connection.on('ReceiveSmartCardId', (smartCardId: number, errorMessage: string) => {\r\n if (smartCardId === 0) {\r\n this.errMsg = errorMessage;\r\n return;\r\n }\r\n else {\r\n var hex = this.toHex(smartCardId);\r\n let reverseID = this.reverseNumber(hex);\r\n this.staffCard.codeId = reverseID.toUpperCase();\r\n this.msg = '';\r\n }\r\n });\r\n\r\n this.connection.onclose(error => {\r\n if (!this.disconnectedOnPurpose) {\r\n this.errMsg = 'Izgubljena veza sa serverom. Učitajte stranicu ponovo.';\r\n }\r\n });\r\n\r\n this.roomId = '1'; //roomId is hardcoded for this purpuse\r\n }\r\n\r\n toHex(num: number): string {\r\n const map = \"0123456789abcdef\";\r\n let hex = num === 0 ? \"0\" : \"\";\r\n while (num !== 0) {\r\n hex = map[num & 15] + hex;\r\n num = num >>> 4;\r\n }\r\n\r\n if (hex.length == 7) hex = \"0\" + hex;\r\n\r\n return hex;\r\n }\r\n\r\n reverseNumber(hex) {\r\n let hexStr = hex.toString();\r\n let reversedNum = \"\";\r\n while (hexStr.length !== 0) {\r\n reversedNum = reversedNum + hexStr.slice(-2);\r\n hexStr = hexStr.substring(0, hexStr.length - 2);\r\n }\r\n\r\n return reversedNum;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.disconnectedOnPurpose = true;\r\n this.connection.stop().catch((err) => console.log(err));\r\n }\r\n\r\n readCard() {\r\n this.ensureSignalRConnected();\r\n this.connection.invoke('RegisterSmartCardRequest', this.roomId, 'checkin').then(result => {\r\n if (result) {\r\n this.errMsg = result;\r\n } else {\r\n this.errMsg = '';\r\n this.msg = 'Čeka se na očitavanje kartice...';\r\n this.disableButton = true;\r\n }\r\n });\r\n }\r\n\r\n addStaffCard() {\r\n\r\n this.staffCard.roomIds = this.checkboxes.filter((checkbox) => checkbox.checked).map((checkbox) => checkbox.id);\r\n\r\n const formValidation = validateStaffCard(this.staffCard);\r\n\r\n this.errMsg = formValidation.errMsg;\r\n if (formValidation.isValid) {\r\n this.staffCardService.addStaffCard(this.staffCard).subscribe(res => {\r\n this.staffCardService.getAllStaffCard({\r\n currentPage: 1, itemsPerPage: 100,\r\n enterQuery: '', fullNameQuery: '', roomNameQuery: ''\r\n });\r\n this.dismissModal();\r\n console.log(\"addStaffCard\")\r\n console.log(\"this.staffCard\")\r\n\r\n }, (err) => {\r\n JSON.stringify(err.error.title);\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n ensureSignalRConnected() {\r\n if (this.connection.state != signalR.HubConnectionState.Connected) {\r\n this.connection.start().catch((err) => {\r\n console.log(err);\r\n this.errMsg = 'Izgubljena veza sa serverom. Učitajte stranicu ponovo.';\r\n });\r\n }\r\n }\r\n\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n}\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { Playroom } from 'src/app/admin/models/playroom.model';\r\nimport { User } from 'src/app/models/user.model';\r\nimport { UserService } from 'src/app/admin/services/user.service';\r\nimport { validateAddUser } from 'src/app/utils/formValidators';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { take } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-add-user-modal',\r\n templateUrl: './add-user-modal.component.html',\r\n styleUrls: ['./add-user-modal.component.scss'],\r\n})\r\nexport class AddUserModalComponent implements OnInit {\r\n\r\n managers: any[];\r\n user: User = new User();\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n errMsg: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n itemsPerPage: number = 20;\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n usernameQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n firstNameQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n lastNameQuery: string = '';\r\n idCardNoQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n currentPage: number = 1;\r\n currentRole: string;\r\n loggedUser$ = this.accountService.currentUser$;\r\n address: string;\r\n surname: string;\r\n name: string;\r\n lk:string;\r\n username: string;\r\n\r\n constructor(private modalController: ModalController,\r\n private userService: UserService,\r\n private accountService: AccountService) { }\r\n\r\n ngOnInit() {\r\n let currentUser;\r\n this.accountService.currentUser$.pipe(take(1)).subscribe(user => currentUser = user);\r\n this.currentRole = currentUser.role.toLowerCase();\r\n\r\n if (this.currentRole == 'manager') {\r\n this.user.managerId = currentUser.nameid;\r\n this.user.role = 'Employee';\r\n }\r\n }\r\n\r\n addUser() {\r\n const formValidation = validateAddUser(this.user)\r\n this.errMsg = formValidation.errMsg;\r\n if(formValidation.isValid) {\r\n this.userService.addUser(this.user).subscribe(res => {\r\n this.userService.getAllUsers({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n usernameQuery: this.usernameQuery, firstNameQuery: this.firstNameQuery, lastNameQuery: this.lastNameQuery,\r\n idCardNoQuery: this.idCardNoQuery});\r\n this.dismissModal();\r\n },(err) => {\r\n if(err.error.errors.includes('username-is-already-registered')) {\r\n this.errMsg = 'Greška: Korisničko ime već postoji u sistemu.';\r\n }\r\n })\r\n }\r\n }\r\n\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { Visit } from 'src/app/admin/models/visit.model';\r\nimport { Visitor } from 'src/app/admin/models/visitor';\r\nimport { VisitService } from 'src/app/admin/services/visit.service';\r\nimport { validateVisit } from 'src/app/utils/formValidators';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as signalR from \"@microsoft/signalr\";\r\nimport { IonSelect } from '@ionic/angular';\r\nimport { IonInput } from '@ionic/angular';\r\nimport domtoimage from 'dom-to-image';\r\nimport jsPDF from 'jspdf';\r\nimport { QRCodeComponent } from 'angularx-qrcode';\r\nimport { VisitorChild } from 'src/app/admin/models/visitorChild';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n@Component({\r\n selector: 'app-add-visit-modal',\r\n templateUrl: './add-visit-modal.component.html',\r\n styleUrls: ['./add-visit-modal.component.scss'],\r\n})\r\nexport class AddVisitModalComponent implements OnInit {\r\n visit: Visit;\r\n visitor;\r\n errMsg = '';\r\n msg = '';\r\n apiUrl = environment.apiUrl;\r\n disableButton = true;\r\n roomId;\r\n qrCode = '';\r\n cardType = 0;\r\n hours = 0;\r\n\r\n @ViewChild('mySelect') select: IonSelect;\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n @ViewChild('myInput') input: IonInput;\r\n isInputDisabled = false;\r\n\r\n constructor(private modalController: ModalController, private visitService: VisitService,\r\n private cdRef: ChangeDetectorRef, private notifierService: NotifierService) {\r\n /* this.visitor.id = 1 */\r\n }\r\n\r\n ngOnInit() {\r\n // TODO: user from AccountService, MM\r\n let loggedUser = JSON.parse(localStorage.getItem('loggedUser'));\r\n this.roomId = loggedUser.roomId;\r\n }\r\n\r\n // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\r\n ngAfterViewInit() {\r\n this.select.value = \"0\";\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n onSelectChange() {\r\n if (this.select.value === '0') {\r\n this.isInputDisabled = false;\r\n } else {\r\n this.isInputDisabled = true;\r\n }\r\n }\r\n\r\n addVisit() {\r\n // let codeToSend = this.qrCode;\r\n let phoneToSend = String(this.visitor.phone);\r\n let mailToSend = String(this.visitor.email);\r\n let GratisCheck= this.visitor.gratis\r\n let GratisToSend:string\r\n\r\n \r\n console.log(\"phoneToSend\");\r\n console.log(phoneToSend);\r\n\r\n console.log(\"mailtoSend\");\r\n console.log(mailToSend);\r\n if (GratisCheck == true) {\r\n GratisToSend = \"Gratis\"\r\n }\r\n else {\r\n\r\n GratisToSend = \"\"\r\n\r\n }\r\n console.log(\"GratisToSend\",GratisToSend);\r\n\r\n this.errMsg = '';\r\n \r\n // Disable button\r\n // this.qrCode = '';\r\n this.cardType = this.select.value;\r\n \r\n if (this.cardType == 0) {\r\n this.hours = +this.input.value;\r\n this.visitService.addVisit(this.visitor, phoneToSend, mailToSend, this.cardType, this.hours, GratisCheck).subscribe((data: ArrayBuffer) => {\r\n const blob = new Blob([data], { type: 'application/pdf' });\r\n const url = window.URL.createObjectURL(blob);\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n iframe.contentWindow?.print();\r\n window.URL.revokeObjectURL(url);\r\n this.dismissModal();\r\n },\r\n err => {\r\n let errorString = err.error.title.replace(/\"/g, '');\r\n this.notifierService.show({\r\n message: '' + JSON.stringify(errorString),\r\n type: 'warning',\r\n });\r\n this.errMsg = errorString;\r\n }\r\n );\r\n } else {\r\n this.visitService.addVisitWithoutHours(this.visitor, phoneToSend, mailToSend, this.cardType, GratisCheck).subscribe((data: ArrayBuffer) => {\r\n const blob = new Blob([data], { type: 'application/pdf' });\r\n const url = window.URL.createObjectURL(blob);\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n iframe.contentWindow?.print();\r\n window.URL.revokeObjectURL(url);\r\n this.dismissModal();\r\n },\r\n err => {\r\n let errorString = err.error.title.replace(/\"/g, '');\r\n this.notifierService.show({\r\n message: '' + JSON.stringify(errorString),\r\n type: 'warning',\r\n });\r\n this.errMsg = errorString;\r\n }\r\n );\r\n }\r\n }\r\n \r\n dismissModal() {\r\n this.modalController.dismiss();\r\n\r\n }\r\n\r\n\r\n getFullNameOrSlash(visitor) {\r\n return visitor ? `${visitor.fullname} ${visitor.birthDate}` : '/';\r\n }\r\n}\r\n"," import { Component, OnInit } from '@angular/core';\r\n import { ActivatedRoute } from '@angular/router';\r\n import { ModalController } from '@ionic/angular';\r\n import { User } from 'src/app/models/user.model';\r\n import { Visitor } from 'src/app/admin/models/visitor';\r\n import { AccountService } from 'src/app/services/account.service';\r\n import { VisitService } from 'src/app/admin/services/visit.service';\r\n import { VisitorService } from 'src/app/admin/services/visitor.service';\r\n import { validateVisit } from 'src/app/utils/formValidators';\r\n import { environment } from 'src/environments/environment';\r\n\r\n\r\n @Component({\r\n selector: 'app-blocked-status',\r\n templateUrl: './blocked-status.component.html',\r\n styleUrls: ['./blocked-status.component.scss'],\r\n })\r\n export class BlockedStatusComponent implements OnInit {\r\n visitor: Visitor;\r\n errMsg = '';\r\n msg = '';\r\n connection;\r\n disconnectedOnPurpose = false;\r\n apiUrl = environment.apiUrl;\r\n visitors$ = this.visitorService.visitors$;\r\n roomId;\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n fullNameBlockedVisitorsQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n currentPage: number = 1;\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n itemsPerPage: number = 20;\r\n\r\n constructor(private modalController: ModalController, private visitService: VisitService,\r\n private visitorService: VisitorService, private accountService: AccountService) {\r\n }\r\n\r\n ngOnInit() {\r\n if(this.visitor){\r\n // eslint-disable-next-line @typescript-eslint/quotes\r\n this.visitor.comment = \"Korisnik je vratio karticu\";\r\n }}\r\n\r\n editStatus() {\r\n this.visitorService.editVisitor(this.visitor).subscribe(res => {\r\n /* this.visitorService.getAllBlockedVisitor({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameBlockedVisitorsQuery: this.fullNameBlockedVisitorsQuery}); */\r\n this.visitorService.getAllBlockedVisitorEdit({\r\n currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameBlockedVisitorsQuery: this.fullNameBlockedVisitorsQuery,\r\n \r\n \r\n \r\n });\r\n \r\n this.dismissModal();\r\n });\r\n }\r\n\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { Playroom } from 'src/app/admin/models/playroom.model';\r\nimport { PlayroomService } from 'src/app/admin/services/playroom.service';\r\n\r\n@Component({\r\n selector: 'app-delete-playroom-modal',\r\n templateUrl: './delete-playroom-modal.component.html',\r\n styleUrls: ['./delete-playroom-modal.component.scss'],\r\n})\r\nexport class DeletePlayroomModalComponent implements OnInit {\r\n\r\n room: Playroom;\r\n\r\n constructor(private modalController: ModalController, private roomService: PlayroomService) { }\r\n\r\n ngOnInit() {}\r\n\r\n\r\n removeRoom() {\r\n this.roomService.deletePlayroom(this.room.id).subscribe(res => {\r\n this.roomService.getAllPlayrooms();\r\n this.dismissModal();\r\n },(err) => {\r\n console.error(err);\r\n })\r\n }\r\n\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { Ramp } from 'src/app/admin/models/ramp.model';\r\nimport { RampService } from 'src/app/admin/services/ramp.service';\r\n\r\n@Component({\r\n selector: 'app-delete-ramp-modal',\r\n templateUrl: './delete-ramp-modal.component.html',\r\n styleUrls: ['./delete-ramp-modal.component.scss'],\r\n})\r\nexport class DeleteRampModalComponent implements OnInit {\r\nramp:Ramp;\r\n\r\n constructor(private modalController: ModalController, private rampService: RampService) { }\r\n\r\n ngOnInit() {}\r\n\r\n\r\n removeRamp() {\r\n this.rampService.deleteRamp(this.ramp.id).subscribe(res => {\r\n this.rampService.getAllRamp({currentPage: 1, itemsPerPage: 100,\r\n ulaznaQuery: '', izlaznaQuery: '', brojRampeQuery: '',roomNameQuery:'',StatusQuery:''});\r\n this.dismissModal();\r\n },(err) => {\r\n console.error(err);\r\n })\r\n }\r\n\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { StaffCard } from 'src/app/admin/models/staffCard';\r\nimport { StaffcardService } from 'src/app/admin/services/staffcard.service';\r\n\r\n@Component({\r\n selector: 'app-delete-staffcard-modal',\r\n templateUrl: './delete-staffcard-modal.component.html',\r\n styleUrls: ['./delete-staffcard-modal.component.scss'],\r\n})\r\nexport class DeleteStaffcardModalComponent implements OnInit {\r\n staffCard:StaffCard;\r\n\r\n constructor(private modalController: ModalController, private staffCardService: StaffcardService) { }\r\n\r\n ngOnInit() {}\r\n\r\n\r\n removeStaffCard() {\r\n this.staffCardService.deleteStaffCard(this.staffCard.id).subscribe(res => {\r\n this.staffCardService.getAllStaffCard({currentPage: 1, itemsPerPage: 100,\r\n enterQuery: '', fullNameQuery: '',roomNameQuery:''});\r\n this.dismissModal();\r\n },(err) => {\r\n console.error(err);\r\n })\r\n }\r\n\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { User } from 'src/app/models/user.model';\r\nimport { UserService } from 'src/app/admin/services/user.service';\r\n\r\n@Component({\r\n selector: 'app-delete-user-modal',\r\n templateUrl: './delete-user-modal.component.html',\r\n styleUrls: ['./delete-user-modal.component.scss'],\r\n})\r\nexport class DeleteUserModalComponent implements OnInit {\r\n\r\n user: User;\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n itemsPerPage: number = 20;\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n usernameQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n firstNameQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n lastNameQuery: string = '';\r\n idCardNoQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n currentPage: number = 1;\r\n\r\n constructor(private modalController: ModalController, private userService: UserService) { }\r\n\r\n\r\n ngOnInit() {}\r\n\r\n removeUser() {\r\n this.userService.deleteUser(this.user.id).subscribe(res => {\r\n this.userService.getAllUsers({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n usernameQuery: this.usernameQuery, firstNameQuery: this.firstNameQuery, lastNameQuery: this.lastNameQuery,\r\n idCardNoQuery: this.idCardNoQuery});\r\n this.dismissModal();\r\n },(err) => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { Visitor } from 'src/app/admin/models/visitor';\r\nimport { VisitorService } from 'src/app/admin/services/visitor.service';\r\n\r\n@Component({\r\n selector: 'app-delete-visitor-modal',\r\n templateUrl: './delete-visitor-modal.component.html',\r\n styleUrls: ['./delete-visitor-modal.component.scss'],\r\n})\r\n\r\nexport class DeleteVisitorModalComponent implements OnInit {\r\n visitor: Visitor;\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n itemsPerPage: number = 20;\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n usernameQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n fullNameQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n emailQuery: string = '';\r\n phoneQuery: string = '';\r\n visitorStatusQuery = '';\r\n currentPage: number = 1;\r\n onlyChildren:boolean=false;\r\n\r\n constructor(private modalController: ModalController, private visitorService: VisitorService) { }\r\n\r\n ngOnInit() {}\r\n\r\n removeUser() {\r\n this.visitorService.deleteVisitor(this.visitor.id).subscribe(res => {\r\n this.visitorService.getAllVisitorsSearch({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameQuery: this.fullNameQuery, emailQuery: this.emailQuery, phoneQuery: this.phoneQuery, visitorStatusQuery: this.visitorStatusQuery, onlyChildren: this.onlyChildren });\r\n this.dismissModal();\r\n },(err) => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { Playroom } from 'src/app/admin/models/playroom.model';\r\nimport { PlayroomService } from 'src/app/admin/services/playroom.service';\r\nimport { validateRoom } from 'src/app/utils/formValidators';\r\n\r\n@Component({\r\n selector: 'app-edit-playroom-modal',\r\n templateUrl: './edit-playroom-modal.component.html',\r\n styleUrls: ['./edit-playroom-modal.component.scss'],\r\n})\r\nexport class EditPlayroomModalComponent implements OnInit {\r\n errMsg = '';\r\n room: Playroom;\r\n\r\n name: string;\r\n address: string;\r\n telephone: string;\r\n\r\n constructor(private modalController: ModalController, private roomService: PlayroomService) { }\r\n\r\n ngOnInit() {\r\n this.room.managerId = this.room.manager?.id;\r\n this.room.workingHoursFrom = this.parseTime(this.room.workingHoursFrom);\r\n this.room.workingHoursTo = this.parseTime(this.room.workingHoursTo);\r\n }\r\n\r\n parseTime(datetime) {\r\n let hours = new Date(datetime).getHours().toString();\r\n hours = hours.length === 1 ? `0${hours}` : hours;\r\n let minutes = new Date(datetime).getMinutes().toString();\r\n minutes = minutes.length === 1 ? `0${minutes}` : minutes;\r\n return `${hours}:${minutes}`;\r\n }\r\n\r\n editRoom() {\r\n const formValidation = validateRoom(this.room);\r\n this.errMsg = formValidation.errMsg;\r\n if(formValidation.isValid) {\r\n this.roomService.editPlayroom(this.room).subscribe(res => {\r\n this.roomService.getAllPlayrooms();\r\n this.dismissModal();\r\n },(err) => {\r\n console.error(err);\r\n });\r\n }\r\n }\r\n\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { Ramp } from 'src/app/admin/models/ramp.model';\r\nimport { PlayroomService } from 'src/app/admin/services/playroom.service';\r\nimport { RampService } from 'src/app/admin/services/ramp.service';\r\nimport { validateRamp, validateRoom } from 'src/app/utils/formValidators';\r\n\r\n@Component({\r\n selector: 'app-edit-ramp-modal',\r\n templateUrl: './edit-ramp-modal.component.html',\r\n styleUrls: ['./edit-ramp-modal.component.scss'],\r\n})\r\nexport class EditRampModalComponent implements OnInit {\r\n ramp:Ramp;\r\n errMsg = '';\r\n brojRampe:string;\r\n ulazna:boolean;\r\n izlazna:boolean;\r\n\r\n playrooms$ = this.roomService.playrooms$; \r\n ramp$=this.rampService.ramp$;\r\n constructor(private modalController: ModalController,private roomService: PlayroomService, private rampService: RampService, private router:Router ) { }\r\n\r\n ngOnInit() {\r\n this.roomService.getAllPlayrooms(); \r\n console.log(\"ramp\");\r\n \r\n this.ramp.roomId = this.ramp['room']?.id;\r\n /* this.ramp.roomName= this.ramp[0].roomName; */\r\n console.log(this.ramp);\r\n }\r\n \r\n editRamp() {\r\n const formValidation = validateRamp(this.ramp);\r\n this.errMsg = formValidation.errMsg;\r\n if(formValidation.isValid) {\r\n this.rampService.editRamp(this.ramp).subscribe(res => {\r\n this.rampService.getAllRamp({currentPage: 1, itemsPerPage: 100,\r\n ulaznaQuery: '', izlaznaQuery: '', brojRampeQuery: '',roomNameQuery:'',StatusQuery:''});\r\n this.dismissModal();\r\n },(err) => {\r\n console.error(err);\r\n });\r\n }\r\n }\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { StaffCard } from 'src/app/admin/models/staffCard';\r\nimport { PlayroomService } from 'src/app/admin/services/playroom.service';\r\nimport { StaffcardService } from 'src/app/admin/services/staffcard.service';\r\nimport { validateStaffCard } from 'src/app/utils/formValidators';\r\n\r\n@Component({\r\n selector: 'app-edit-staffcard-modal',\r\n templateUrl: './edit-staffcard-modal.component.html',\r\n styleUrls: ['./edit-staffcard-modal.component.scss'],\r\n})\r\nexport class EditStaffcardModalComponent implements OnInit {\r\n staffCard: StaffCard = new StaffCard();\r\n errMsg = '';\r\n checkboxes : any[];\r\n playrooms$ = this.roomService.playrooms$; \r\n staffCard$=this.staffCardService.staffCard$;\r\n constructor(private modalController: ModalController,private roomService: PlayroomService, private staffCardService: StaffcardService ) { \r\n \r\n}\r\n \r\n ngOnInit() {\r\n this.playrooms$.subscribe((rooms) => {\r\n console.log(\"playrooms$\");\r\n console.log(rooms);\r\n this.checkboxes = rooms;\r\n this.checkboxes.map((x) => x.checked = this.staffCard.roomIds.includes(x.id));\r\n });\r\n this.roomService.getAllPlayrooms();\r\n }\r\n editStaffCard() {\r\n this.staffCard.roomIds = this.checkboxes.filter((checkbox) => checkbox.checked).map((checkbox) => checkbox.id);\r\n\r\n\r\n const formValidation = validateStaffCard(this.staffCard);\r\n this.errMsg = formValidation.errMsg;\r\n if(formValidation.isValid) {\r\n this.staffCardService.editStaffCard(this.staffCard).subscribe(res => {\r\n this.staffCardService.getAllStaffCard({currentPage: 1, itemsPerPage: 100,\r\n enterQuery: '', fullNameQuery: '',roomNameQuery:''});\r\n this.dismissModal();\r\n },(err) => {\r\n console.error(err);\r\n });\r\n }\r\n }\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n }\r\n ","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { User } from 'src/app/models/user.model';\r\nimport { UserService } from 'src/app/admin/services/user.service';\r\nimport { validateEditUser } from 'src/app/utils/formValidators';\r\n\r\n@Component({\r\n selector: 'app-edit-user-modal',\r\n templateUrl: './edit-user-modal.component.html',\r\n styleUrls: ['./edit-user-modal.component.scss'],\r\n})\r\nexport class EditUserModalComponent implements OnInit {\r\n\r\n user: User;\r\n errMsg: string = '';\r\n passwordResetSuccess: boolean = false;\r\n resetPassword:any;\r\n reset: any;\r\n\r\npaginationSettings = {curentPage: 0};\r\nmanagers = [];\r\ncurrentPage: number = 1;\r\nitemsPerPage: number = 20;\r\nusernameQuery: string = '';\r\nfirstNameQuery: string = '';\r\nlastNameQuery: string = '';\r\nidCardNoQuery: string = '';\r\n \r\n\r\n constructor(private modalController: ModalController, private userService: UserService, private router:Router ) { }\r\n\r\n ngOnInit() {\r\n this.user.managerId = this.user['manager']?.id;\r\n \r\n }\r\n\r\n resetUserPassword() {\r\n \r\n \r\n \r\n this.userService.resetPassword(this.user).subscribe(res => {\r\n this.passwordResetSuccess = true;\r\n })\r\n }\r\n\r\n editUser() {\r\n const formValidation = validateEditUser(this.user)\r\n this.errMsg = formValidation.errMsg;\r\n if(formValidation.isValid) {\r\n this.userService.editUser(this.user).subscribe((res) => { \r\n this.loadusers();\r\n this.dismissModal();\r\n \r\n },(err) => {\r\n console.error(err);\r\n })\r\n } \r\n\r\n}\r\n\r\n async openResetPasswordUserModal(resetPassword) {\r\n this.resetPassword=resetPassword\r\n this.modalController.dismiss();\r\n const modal = await this.modalController.create({\r\n component: EditUserModalComponent,\r\n componentProps: {user: {...this.user}, resetPassword: true},\r\n cssClass: 'small-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n await modal.present();\r\n }\r\n\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n async loadusers() {\r\n this.userService.getAllUsers({\r\n currentPage: this.currentPage, itemsPerPage: this.itemsPerPage, usernameQuery: this.usernameQuery,\r\n firstNameQuery: this.firstNameQuery, lastNameQuery: this.lastNameQuery, idCardNoQuery: this.idCardNoQuery\r\n });\r\n this.userService.paginationSettings$.subscribe(pagSettings => {\r\n this.paginationSettings = pagSettings;\r\n });\r\n\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { Visit } from 'src/app/admin/models/visit.model';\r\nimport { VisitService } from 'src/app/admin/services/visit.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as signalR from \"@microsoft/signalr\";\r\nimport { Visiti } from 'src/app/admin/models/visiti.model';\r\n\r\n@Component({\r\n selector: 'app-edit-visit-modal',\r\n templateUrl: './edit-visit-modal.component.html',\r\n styleUrls: ['./edit-visit-modal.component.scss'],\r\n})\r\nexport class EditVisitModalComponent implements OnInit {\r\n visitId: number;\r\n visit: Visit;\r\n errMsg = '';\r\n msg = '';\r\n apiUrl = environment.apiUrl;\r\n visits$ = this.visitService.visit$;\r\n roomId;\r\n qrCode = '';\r\n\r\n constructor(private modalController: ModalController, private visitService: VisitService) {}\r\n\r\n ngOnInit() \r\n {\r\n // TODO: user from AccountService, MM\r\n let loggedUser = JSON.parse(localStorage.getItem('loggedUser'));\r\n this.roomId = loggedUser.roomId;\r\n this.visitService.getVisitById(this.visitId).subscribe(result => {\r\n this.visit = result as Visit;\r\n this.qrCode = this.visit.cardId.toString();\r\n }, (err) => {\r\n this.errMsg = 'Nije moguće pronaći posetu.';\r\n console.error(err);\r\n }); \r\n \r\n }\r\n\r\n\r\n\r\n checkOut() {\r\n let visiti = new Visiti();\r\n visiti.id = this.visit.id;\r\n visiti.leave = new Date().toISOString();\r\n this.visitService.editCheckin(visiti).subscribe(res => {\r\n this.dismissModal();\r\n location.href = 'admin/manage-visits';\r\n },(err) => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n getTimeInside() {\r\n console.log(this.visit);\r\n const enter: any = new Date(this.visit.enter);\r\n const now: any = new Date(new Date().toISOString().slice(0,-1));\r\n\r\n const diffMs = (now - enter); // milliseconds between now & Christmas\r\n const diffDays = Math.floor(diffMs / 86400000); // days\r\n const diffHrs = Math.floor((diffMs % 86400000) / 3600000); // hours\r\n const diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); // minutes\r\n const hrs = diffDays >= 1 ? (diffDays * 24) + diffHrs : diffHrs;\r\n return `${hrs.toString().length === 1 ? '0' : ''}${hrs}:${diffMins.toString().length === 1 ? '0' : ''}${diffMins}`\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { Visitor } from 'src/app/admin/models/visitor';\r\nimport { VisitorChild } from 'src/app/admin/models/visitorChild';\r\nimport { VisitorService } from 'src/app/admin/services/visitor.service';\r\n\r\n@Component({\r\n selector: 'app-edit-visitor-modal',\r\n templateUrl: './edit-visitor-modal.component.html',\r\n styleUrls: ['./edit-visitor-modal.component.scss'],\r\n})\r\nexport class EditVisitorModalComponent implements OnInit {\r\n visitor: Visitor;\r\n\r\n itemsPerPage: number = 20;\r\n usernameQuery: string = '';\r\n fullNameQuery: string = '';\r\n emailQuery: string = '';\r\n phoneQuery: string = '';\r\n visitorStatusQuery: string = '';\r\n currentPage: number = 1;\r\n onlyChildren: boolean = false;\r\n\r\n constructor(private modalController: ModalController, private visitorService: VisitorService) { }\r\n\r\n ngOnInit() {}\r\n\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n editVisitor(){\r\n this.visitorService.editVisitor(this.visitor).subscribe((res) => {\r\n this.visitorService.getAllVisitorsSearch({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage, fullNameQuery: this.fullNameQuery, emailQuery: this.emailQuery, phoneQuery: this.phoneQuery, visitorStatusQuery: this.visitorStatusQuery, onlyChildren: this.onlyChildren});\r\n this.dismissModal();\r\n },(err) => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { Visit } from 'src/app/admin/models/visit.model';\r\nimport { VisitService } from 'src/app/admin/services/visit.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'app-surcharge-modal',\r\n templateUrl: './surcharge-modal.component.html',\r\n styleUrls: ['./surcharge-modal.component.scss'],\r\n})\r\nexport class SurchargeModalComponent implements OnInit {\r\n visit: Visit;\r\n visitId: number;\r\n errMsg = '';\r\n msg = '';\r\n connection;\r\n disconnectedOnPurpose = false;\r\n apiUrl = environment.apiUrl;\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n visits$ = this.visitService.visit$;\r\n Visits$: Observable;\r\n currentPage = 1; \r\n itemsPerPage = 10; \r\n fullNameVisitorQuery: string = '';\r\n visitStatusQuery:string='';\r\n paginationSettings = {totalItems: 0};\r\n visitForm: string | any;\r\n visitorSelected = false;\r\n roomId;\r\n qrCode = '';\r\n currentTime = new Date();\r\n\r\n \r\n\r\n constructor(private modalController: ModalController, private visitService: VisitService) {}\r\n\r\n ngOnInit() {\r\n\r\n }\r\n loadVisit() {\r\n let codeToSend =this.qrCode.toString();\r\n\r\n this.errMsg = '';\r\n\r\n this.visitService.getVisitByCardId(codeToSend).subscribe(result => {\r\n this.visit = result as Visit;\r\n }, (err) => {\r\n this.errMsg = 'Nije moguće pronaći posetu.';\r\n console.error(err);\r\n }); \r\n } \r\n\r\n\r\n editVisit() {\r\n this.visitService.editVisitSurcharge(this.visit).subscribe(res => {\r\n this.loadVisit(); \r\n this.dismissModal();\r\n location.href = 'admin/manage-visits';\r\n },(err) => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n getCardType(cardType: number, hours: number) {\r\n let cardTypeName;\r\n let cardHours;\r\n if (cardType === 0) {\r\n cardTypeName = 'Sat';\r\n cardHours = hours;\r\n }\r\n else if (cardType === 1) {\r\n cardTypeName = 'Poludnevna karta';\r\n }\r\n else if (cardType === 2) {\r\n cardTypeName = 'Dnevna karta';\r\n }\r\n return { cardTypeName, cardHours };\r\n }\r\n\r\n getTimeInside() {\r\n console.log(this.visit);\r\n const enter: any = new Date(this.visit.enter);\r\n const now: any = new Date(new Date().toISOString().slice(0,-1));\r\n\r\n const diffMs = (now - enter); // milliseconds between now & Christmas\r\n const diffDays = Math.floor(diffMs / 86400000); // days\r\n const diffHrs = Math.floor((diffMs % 86400000) / 3600000); // hours\r\n const diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); // minutes\r\n const hrs = diffDays >= 1 ? (diffDays * 24) + diffHrs : diffHrs;\r\n return `${hrs.toString().length === 1 ? '0' : ''}${hrs}:${diffMins.toString().length === 1 ? '0' : ''}${diffMins}`\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Visit } from 'src/app/admin/models/visit.model';\r\nimport { VisitService } from 'src/app/admin/services/visit.service';\r\n\r\n@Component({\r\n selector: 'app-view-qr-code',\r\n templateUrl: './view-qr-code.component.html',\r\n styleUrls: ['./view-qr-code.component.scss'],\r\n})\r\nexport class ViewQrCodeComponent implements OnInit {\r\n @Input() code: string | any;\r\n visits = Visit;\r\n errMsg = '';\r\n\r\n constructor(private modalController: ModalController, private visitService: VisitService, private notifierService: NotifierService) { }\r\n\r\n ngOnInit() {\r\n this.getQrCode();\r\n }\r\n\r\n getQrCode() {\r\n this.visitService.getVisitQrCode(this.code).subscribe(\r\n (res: any) => {\r\n this.visits = res;\r\n }, (err) => {\r\n this.errMsg = 'Nije moguće pronaći posetu.';\r\n console.error(err);\r\n });\r\n }\r\n\r\n printQrCode() {\r\n this.visitService.printQrCode(this.code) .subscribe((data: ArrayBuffer) => {\r\n const blob = new Blob([data], { type: 'application/pdf' });\r\n const url = window.URL.createObjectURL(blob);\r\n const iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n iframe.src = url;\r\n document.body.appendChild(iframe);\r\n iframe.contentWindow?.print();\r\n window.URL.revokeObjectURL(url);\r\n }, \r\n err => {\r\n console.log(err); \r\n this.notifierService.show({\r\n message: '' + JSON.stringify(err.error?.title || \"Greška bez naslova\"),\r\n type: 'warning',\r\n });\r\n console.error(err);\r\n }\r\n );\r\n this.dismissModal();\r\n }\r\n \r\n dismissModal() {\r\n this.modalController.dismiss();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LanguageService } from '../../../services/language.service';\r\n\r\n@Component({\r\n selector: 'app-start-layout',\r\n templateUrl: './start-layout.component.html',\r\n styleUrls: ['./start-layout.component.scss'],\r\n})\r\nexport class StartLayoutComponent implements OnInit {\r\n\r\n language$ = this.languageService.language$;\r\n language: string;\r\n\r\n constructor(private languageService: LanguageService) {}\r\n\r\n ngOnInit(): void {\r\n this.language$.subscribe(lng => this.language = lng.toUpperCase());\r\n }\r\n\r\n toggleLanguage() {\r\n this.language = this.language === 'EN' ? 'SR' : 'EN';\r\n this.languageService.setLanguage(this.language.toLowerCase());\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AccountService } from '../../services/account.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AdminGuard implements CanActivate {\r\n\r\n constructor(private accountService: AccountService, private route: Router) {}\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): boolean | UrlTree | Observable | Promise {\r\n return this.accountService.currentUser$.pipe(map(user => {\r\n if (user && user.role === 'Admin') {\r\n return true;\r\n } else {\r\n this.route.navigate(['/admin/login']);\r\n return false;\r\n }\r\n }))\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AccountService } from '../../services/account.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AdminManagerGuard implements CanActivate {\r\n\r\n constructor(private accountService: AccountService, private route: Router) {}\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): boolean | UrlTree | Observable | Promise {\r\n return this.accountService.currentUser$.pipe(map(user => {\r\n if (user && (user.role === 'Admin' || user.role === 'Manager')) {\r\n return true;\r\n } else {\r\n this.route.navigate(['/admin/login']);\r\n return false;\r\n }\r\n }))\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AccountService } from '../../services/account.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class EmployeeGuard implements CanActivate {\r\n\r\n constructor(private accountService: AccountService, private route: Router) {}\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): boolean | UrlTree | Observable | Promise {\r\n return this.accountService.currentUser$.pipe(map(user => {\r\n if (user && user.role === 'Employee') {\r\n return true;\r\n } else {\r\n this.route.navigate(['/admin/login']);\r\n return false;\r\n }\r\n }))\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AccountService } from '../../services/account.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class LoggedInGuard implements CanActivate {\r\n\r\n constructor(private accountService: AccountService, private route: Router) {}\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): boolean | UrlTree | Observable | Promise {\r\n return this.accountService.currentUser$.pipe(map(user => {\r\n if (user) {\r\n return true;\r\n } else {\r\n this.route.navigate(['/admin/login']);\r\n return false;\r\n }\r\n }))\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AccountService } from '../../services/account.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class LoggedOutGuard implements CanActivate {\r\n\r\n constructor(private accountService: AccountService, private route: Router) {}\r\n\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): boolean | UrlTree | Observable | Promise {\r\n return this.accountService.currentUser$.pipe(map(user => {\r\n if (user) {\r\n this.route.navigate([this.accountService.homepageRoutes[user.role]]);\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }))\r\n }\r\n}\r\n","export class Playroom {\r\n [x: string]: any;\r\n id: number;\r\n roomName: string;\r\n phone: string;\r\n workingHoursTo: string;\r\n workingHoursFrom: string;\r\n managerId: null;\r\n address: string;\r\n users: [];\r\n\r\n constructor() {\r\n this.id = null;\r\n this.roomName = '';\r\n this.phone = '';\r\n this.workingHoursTo = '';\r\n this.workingHoursFrom = '';\r\n this.users = null;\r\n this.address = '';\r\n }\r\n}\r\n","/* export class Ramp {\r\n \r\n id: number;\r\n brojRampe: string;\r\n ulazna: boolean;\r\n izlazna: boolean;\r\n roomId: null;\r\n roomName: string;\r\n \r\n \r\n \r\n constructor(ramp?:Ramp) {\r\n if(ramp){\r\n this.id = ramp.id;\r\n this.ulazna =ramp.ulazna;\r\n this.izlazna=ramp.izlazna;\r\n this.roomId=ramp.roomId;\r\n this.brojRampe=ramp.brojRampe;\r\n this.roomName=ramp.roomName;\r\n }\r\n if(this.brojRampe==null){\r\n this.brojRampe='';\r\n }\r\n if(this.roomName==null){\r\n this.roomName='';\r\n }\r\n }\r\n } */\r\n export class Ramp {\r\n [x: string]: any;\r\n /* id: number; */\r\n brojRampe:string\r\n ulazna: boolean;\r\n izlazna: boolean;\r\n roomName: string;\r\n roomId:number;\r\n constructor() {\r\n /* this.id = null; */\r\n this.brojRampe = '';\r\n this.ulazna = false;\r\n this.izlazna = false;\r\n this.roomName = '';\r\n this.roomId=null;\r\n \r\n }\r\n }\r\n ","export class StaffCard {\r\n id: number;\r\n fullName: string\r\n roomIds: number[];\r\n codeId: string;\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.fullName = '';\r\n this.roomIds = [];\r\n this.codeId = null;\r\n }\r\n}","export class Visit {\r\n id: number;\r\n enter: string;\r\n leave: string;\r\n visitorId: number;\r\n visitorName: string;\r\n visitorBirthDay: string;\r\n phone: string;\r\n email: string;\r\n roomId: number;\r\n roomName: string;\r\n status: number;\r\n cardType: number;\r\n hours: number;\r\n phoneVisit: string;\r\n emailVisit: string;\r\n cardId:number;\r\n imageQr: string;\r\n surcharge: boolean;\r\n surchargeHours: number;\r\n gratis:boolean;\r\n constructor() {\r\n this.id = null;\r\n this.enter = '';\r\n this.leave = '';\r\n this.visitorName = '';\r\n this.visitorBirthDay ='';\r\n this.visitorId = null;\r\n this.phone= '';\r\n this.email= '';\r\n this.roomId = null;\r\n this.roomName = '';\r\n this.status = null;\r\n this.hours = null;\r\n this.phoneVisit='';\r\n this.emailVisit='';\r\n this.cardId=null;\r\n this.imageQr;\r\n this.surcharge = false;\r\n this.surchargeHours = 0;\r\n this.gratis=false;\r\n }\r\n}\r\n","export class Visiti {\r\n id: number;\r\n \r\n leave: string;\r\n \r\n constructor() {\r\n this.id = null;\r\n \r\n this.leave = '';\r\n \r\n }\r\n}\r\n","import { VisitorChild } from \"./visitorChild\";\r\n\r\n export class Visitor {\r\n id: number;\r\n fullName: string;\r\n email: string;\r\n phone: string;\r\n address: string;\r\n city: string;\r\n roomId: number;\r\n birthDate: string;\r\n numberOfVisit: number;\r\n visitorStatus: number;\r\n comment: string;\r\n children: VisitorChild[];\r\n gratis:boolean\r\n constructor() {\r\n this.fullName = '';\r\n this.email = '';\r\n this.phone = '';\r\n this.address = '';\r\n this.city ='';\r\n this.birthDate = '';\r\n this.visitorStatus = null;\r\n this.comment = '';\r\n this.gratis=false;\r\n }\r\n }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { UserService } from 'src/app/admin/services/user.service';\r\n\r\n@Component({\r\n selector: 'app-admin-settings-page',\r\n templateUrl: './admin-settings.page.html',\r\n styleUrls: ['./admin-settings.page.scss'],\r\n})\r\n\r\nexport class AdminSettingsPage implements OnInit {\r\n\r\n loggedUser$ = this.accountService.currentUser$;\r\n\r\n resetPassword = {\r\n oldPassword: '',\r\n password: '',\r\n confirmPassword: ''\r\n }\r\n\r\n msg = '';\r\n\r\n constructor(private accountService: AccountService, private userService: UserService, private route: Router) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n changePassword() {\r\n this.userService.changePassword(this.resetPassword).subscribe(res => {\r\n this.msg = 'Lozinka uspešno promenjena.'\r\n this.resetPassword = {\r\n oldPassword: '',\r\n password: '',\r\n confirmPassword: ''\r\n }\r\n })\r\n }\r\n\r\n logout() {\r\n this.accountService.logout();\r\n this.route.navigateByUrl('admin/login')\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AccountService } from 'src/app/services/account.service';\r\n@Component({\r\n selector: 'app-login-page',\r\n templateUrl: './login.page.html',\r\n styleUrls: ['./login.page.scss'],\r\n})\r\n\r\nexport class LoginPage implements OnInit {\r\n user: any = {\r\n username: '',\r\n password: ''\r\n };\r\n err: string;\r\n\r\n constructor(public accountService: AccountService, private router: Router, private translate: TranslateService) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n login(){\r\n this.accountService.login(this.user).subscribe(user => {\r\n this.router.navigateByUrl(this.accountService.homepageRoutes[user.role]);\r\n },error =>{\r\n this.err = this.translate.instant('LOGIN.bad_login');\r\n console.log(error);\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { AddPlayroomModalComponent } from 'src/app/admin/components/modals/add-playroom-modal/add-playroom-modal.component';\r\nimport { DeletePlayroomModalComponent } from 'src/app/admin/components/modals/delete-playroom-modal/delete-playroom-modal.component';\r\nimport { EditPlayroomModalComponent } from 'src/app/admin/components/modals/edit-playroom-modal/edit-playroom-modal.component';\r\nimport { PlayroomService } from 'src/app/admin/services/playroom.service';\r\nimport { UserService } from 'src/app/admin/services/user.service';\r\n\r\n@Component({\r\n selector: 'app-manage-playrooms-page',\r\n templateUrl: './manage-playrooms.page.html',\r\n styleUrls: ['./manage-playrooms.page.scss'],\r\n})\r\n\r\nexport class ManagePlayroomsPage implements OnInit {\r\n\r\n playrooms$ = this.roomService.playrooms$;\r\n managers = [];\r\n\r\n constructor(private roomService: PlayroomService, private modalController: ModalController, private userService: UserService) {}\r\n\r\n ngOnInit(): void {\r\n this.roomService.getAllPlayrooms();\r\n\r\n this.userService.getAllUsers({currentPage: 1, itemsPerPage: 100, usernameQuery: '',\r\n firstNameQuery: '', lastNameQuery: '', idCardNoQuery: ''}); // TODO: replace this method with request that directly fetches managers.\r\n // TODO: replace this method with request that directly fetches managers.\r\n this.userService.allUsers$.subscribe(allUsers => {\r\n this.managers = allUsers.filter(e => e.role === 'Manager');\r\n });\r\n \r\n \r\n }\r\n\r\n async openAddRoomModal() {\r\n const modal = await this.modalController.create({\r\n component: AddPlayroomModalComponent,\r\n componentProps: {managers: this.managers},\r\n cssClass: 'medium-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n\r\n await modal.present();\r\n }\r\n\r\n async openDeleteRoomModal(room) {\r\n const modal = await this.modalController.create({\r\n component: DeletePlayroomModalComponent,\r\n componentProps: {room},\r\n cssClass: 'small-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n await modal.present();\r\n }\r\n\r\n async openEditRoomModal(room) {\r\n const modal = await this.modalController.create({\r\n component: EditPlayroomModalComponent,\r\n componentProps: {room: {...room}, managers: this.managers},\r\n cssClass: 'medium-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n await modal.present();\r\n }\r\n\r\n getFullNameOrSlash(user) {\r\n return user ? `${user.firstName} ${user.lastName}` : '/';\r\n }\r\n\r\n getWorkingHours(room) {\r\n const from = new Date(room.workingHoursFrom).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', hour12: false });\r\n const to = new Date(room.workingHoursTo).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', hour12: false });\r\n return `${from} - ${to}`;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { AddRampModalComponent } from 'src/app/admin/components/modals/add-ramp-modal/add-ramp-modal.component';\r\nimport { DeleteRampModalComponent } from 'src/app/admin/components/modals/delete-ramp-modal/delete-ramp-modal.component';\r\nimport { EditRampModalComponent } from 'src/app/admin/components/modals/edit-ramp-modal/edit-ramp-modal.component';\r\nimport { Ramp } from 'src/app/admin/models/ramp.model';\r\nimport { PlayroomService } from 'src/app/admin/services/playroom.service';\r\nimport { RampService } from 'src/app/admin/services/ramp.service';\r\n\r\n@Component({\r\n selector: 'app-manage-ramps',\r\n templateUrl: './manage-ramps.page.html',\r\n styleUrls: ['./manage-ramps.page.scss'],\r\n})\r\nexport class ManageRampsPage implements OnInit {\r\nramp: Ramp;\r\nrooms=[];\r\npaginationSettings = {totalItems: 0};\r\ncurrentPage: number = 1;\r\nramps$ = this.rampService.ramp$;\r\n\r\n\r\n constructor(private modalController: ModalController, private rampService: RampService) { }\r\n\r\n ngOnInit():void {\r\n //this.rampService.getAllRamp();\r\n\r\n this.rampService.getAllRamp ({currentPage: 1, itemsPerPage: 100,\r\n ulaznaQuery: '', izlaznaQuery: '', brojRampeQuery: '',roomNameQuery:'',StatusQuery:''});\r\n }\r\n async openAddRampModal() {\r\n const modal = await this.modalController.create({\r\n component: AddRampModalComponent,\r\n /* componentProps: {ramp: this.ramp}, */\r\n cssClass: 'medium-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n }); \r\n\r\n await modal.present();\r\n }\r\n async openDeleteRampModal(ramp) {\r\n const modal = await this.modalController.create({\r\n component: DeleteRampModalComponent,\r\n componentProps: {ramp}, \r\n cssClass: 'small-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n await modal.present();\r\n }\r\n\r\n async openEditRampModal(ramp) {\r\n const modal = await this.modalController.create({\r\n component: EditRampModalComponent,\r\n componentProps: {ramp:{...ramp},rooms:this.rooms},\r\n cssClass: 'medium-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n await modal.present();\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { AddStaffcardModalComponent } from 'src/app/admin/components/modals/add-staffcard-modal/add-staffcard-modal/add-staffcard-modal.component';\r\nimport { DeleteStaffcardModalComponent } from 'src/app/admin/components/modals/delete-staffcard-modal/delete-staffcard-modal/delete-staffcard-modal.component';\r\nimport { EditStaffcardModalComponent } from 'src/app/admin/components/modals/edit-staffcard-modal/edit-staffcard-modal/edit-staffcard-modal.component';\r\nimport { StaffCardParams } from 'src/app/admin/models/staffCardParams';\r\nimport { StaffcardService } from 'src/app/admin/services/staffcard.service';\r\n\r\n@Component({\r\n selector: 'app-manage-staffcards',\r\n templateUrl: './manage-staffcards.component.html',\r\n styleUrls: ['./manage-staffcards.component.scss'],\r\n})\r\nexport class ManageStaffcardsComponent implements OnInit {\r\n staffCard: StaffCardParams;\r\n rooms=[];\r\n paginationSettings = {totalItems: 0};\r\n currentPage: number = 1;\r\n staffCards$ = this.staffCardService.staffCard$;\r\n \r\n \r\n constructor(private modalController: ModalController, private staffCardService: StaffcardService) { }\r\n \r\n ngOnInit():void {\r\n \r\n \r\n this.staffCardService.getAllStaffCard ({currentPage: 1, itemsPerPage: 100,\r\n enterQuery: '', fullNameQuery: '',roomNameQuery:''});\r\n }\r\n async openAddStaffCardModal() {\r\n const modal = await this.modalController.create({\r\n component: AddStaffcardModalComponent,\r\n \r\n cssClass: 'medium-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n }); \r\n \r\n await modal.present();\r\n }\r\n async openDeleteStaffCardModal(staffCard) {\r\n const modal = await this.modalController.create({\r\n component: DeleteStaffcardModalComponent,\r\n componentProps: {staffCard}, \r\n cssClass: 'small-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n await modal.present();\r\n }\r\n \r\n async openEditStaffCardModal(staffCard) {\r\n const modal = await this.modalController.create({\r\n component: EditStaffcardModalComponent,\r\n componentProps: {staffCard:{...staffCard},rooms:this.rooms},\r\n cssClass: 'medium-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n await modal.present();\r\n }\r\n \r\n }\r\n ","/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\n/* eslint-disable prefer-const */\r\n/* eslint-disable @typescript-eslint/prefer-for-of */\r\n/* eslint-disable no-var */\r\n/* eslint-disable @typescript-eslint/no-inferrable-types */\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\n\r\nimport { AddUserModalComponent } from 'src/app/admin/components/modals/add-user-modal/add-user-modal.component';\r\nimport { DeleteUserModalComponent } from 'src/app/admin/components/modals/delete-user-modal/delete-user-modal.component';\r\nimport { EditUserModalComponent } from 'src/app/admin/components/modals/edit-user-modal/edit-user-modal.component';\r\nimport { PlayroomService } from 'src/app/admin/services/playroom.service';\r\nimport { UserService } from 'src/app/admin/services/user.service';\r\n\r\nimport { User } from 'src/app/models/user.model';\r\n\r\n@Component({\r\n selector: 'app-manage-users-page',\r\n templateUrl: './manage-users.page.html',\r\n styleUrls: ['./manage-users.page.scss'],\r\n})\r\n\r\nexport class ManageUsersPage implements OnInit {\r\n users: User[];\r\n users$ = this.userService.allUsers$;\r\n paginationSettings = {totalItems: 0};\r\n managers = [];\r\n currentPage: number = 1;\r\n itemsPerPage: number = 20;\r\n usernameQuery: string = '';\r\n firstNameQuery: string = '';\r\n lastNameQuery: string = '';\r\n idCardNoQuery: string = '';\r\n\r\n constructor(private userService: UserService, private modalController: ModalController, private roomService: PlayroomService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.userService.getAllUsers({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage, usernameQuery: this.usernameQuery,\r\n firstNameQuery: this.firstNameQuery, lastNameQuery: this.lastNameQuery, idCardNoQuery: this.idCardNoQuery});\r\n this.userService.paginationSettings$.subscribe(pagSettings => {\r\n this.paginationSettings = pagSettings;\r\n });\r\n this.userService.allUsers$.subscribe(allUsers => { //TODO: dobaviti menadzere preko apija\r\n this.managers = allUsers.filter(e => e.role === 'Manager');\r\n });\r\n }\r\n\r\n async openAddUserModal() {\r\n const modal = await this.modalController.create({\r\n component: AddUserModalComponent,\r\n componentProps: {managers: this.managers},\r\n cssClass: 'basic-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n\r\n await modal.present();\r\n }\r\n\r\n async openDeleteUserModal(user) {\r\n const modal = await this.modalController.create({\r\n component: DeleteUserModalComponent,\r\n componentProps: {user},\r\n cssClass: 'small-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n await modal.present();\r\n }\r\n\r\n async openEditUserModal(user) {\r\n const modal = await this.modalController.create({\r\n component: EditUserModalComponent,\r\n componentProps: {user: {...user}, managers: this.managers},\r\n cssClass: 'tall-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n await modal.present();\r\n }\r\n\r\n changePage(pageNumber) {\r\n this.currentPage = pageNumber;\r\n this.userService.getAllUsers({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n usernameQuery: this.usernameQuery, firstNameQuery: this.firstNameQuery, lastNameQuery: this.lastNameQuery,\r\n idCardNoQuery: this.idCardNoQuery});\r\n }\r\n\r\n async loadSearchResult(){\r\n this.userService.getAllUsers({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n usernameQuery: this.usernameQuery, firstNameQuery: this.firstNameQuery, lastNameQuery: this.lastNameQuery,\r\n idCardNoQuery: this.idCardNoQuery});\r\n }\r\n\r\n\r\n resetFilters()\r\n {\r\n this.userService.getAllUsers();\r\n this.usernameQuery = '';\r\n this.firstNameQuery = '';\r\n this.lastNameQuery = '';\r\n this.idCardNoQuery = '';\r\n }\r\n}\r\n","import { Component, Directive, Input, OnInit } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { DeleteVisitorModalComponent } from 'src/app/admin/components/modals/delete-visitor-modal/delete-visitor-modal.component';\r\nimport { EditVisitorModalComponent } from '../../components/modals/edit-visitor-modal/edit-visitor-modal.component';\r\nimport { Visitor } from 'src/app/admin/models/visitor';\r\nimport { VisitorService } from 'src/app/admin/services/visitor.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-manage-visitors-page',\r\n templateUrl: './manage-visitors.page.html',\r\n styleUrls: ['./manage-visitors.page.scss'],\r\n})\r\n\r\nexport class ManageVisitorsPage implements OnInit {\r\n visitors$ = this.visitorService.visitors$;\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n fullNameQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n emailQuery: string = '';\r\n phoneQuery: string = '';\r\n visitorStatusQuery: string = '';\r\n paginationSettings = {totalItems: 0};\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n currentPage: number = 1;\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n itemsPerPage: number = 20;\r\n visitor: Visitor = new Visitor();\r\n pageSize: number = 2147483647;\r\n onlyChildren:boolean=false;\r\n\r\n visitorsArray:any\r\n ChildrenNames:string\r\n FullName:string\r\n\r\n constructor(private visitorService: VisitorService, private modalController: ModalController) {}\r\n\r\n ngOnInit(): void {\r\n this.visitorService.getAllVisitorsSearch({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameQuery: this.fullNameQuery, emailQuery: this.emailQuery, phoneQuery: this.phoneQuery, visitorStatusQuery: this.visitorStatusQuery, onlyChildren: this.onlyChildren});\r\n this.visitorService.paginationSettings$.subscribe(pagSettings => {\r\n this.paginationSettings = pagSettings;\r\n });\r\n\r\n console.log(\"$visitors\")\r\n console.log(this.visitors$)\r\n this.getArrayChildrenNames()\r\n }\r\n\r\n downloadSignature(visitor) {\r\n const guid = visitor.signatureUrl.split('Signature/')[1];\r\n this.visitorService.getSignature(guid).subscribe(res => {\r\n const source = URL.createObjectURL(res);\r\n const el = document.createElement(\"a\");\r\n el.setAttribute(\"href\", source);\r\n el.setAttribute(\"download\", `${visitor.fullName.replace(/\\s/g,'_')}${visitor.phone}`);\r\n document.body.appendChild(el);\r\n el.click();\r\n el.remove();\r\n })\r\n }\r\n\r\n async openDeleteVisitorModal(visitor) {\r\n const modal = await this.modalController.create({\r\n component: DeleteVisitorModalComponent,\r\n componentProps: { visitor: { ...visitor, children: this.visitor.children}},\r\n cssClass: 'small-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n await modal.present();\r\n }\r\n\r\n async openEditVisitorModal(visitor) {\r\n const modal = await this.modalController.create({\r\n component: EditVisitorModalComponent,\r\n componentProps: { visitor: { ...visitor, children: this.visitor.children}},\r\n cssClass: 'medium-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n await modal.present();\r\n }\r\n\r\n async loadSearchResult(){\r\n this.currentPage=1\r\n this.visitorService.getAllVisitorsSearch({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameQuery: this.fullNameQuery, emailQuery: this.emailQuery, phoneQuery: this.phoneQuery, visitorStatusQuery: this.visitorStatusQuery, onlyChildren: this.onlyChildren});\r\n }\r\n\r\n resetFilters()\r\n {\r\n this.visitorService.getAllVisitorsSearch();\r\n this.fullNameQuery = '';\r\n this.emailQuery = '';\r\n this.phoneQuery = '';\r\n this.visitorStatusQuery = '';\r\n }\r\n\r\n changePage(pageNumber) {\r\n this.currentPage = pageNumber;\r\n this.visitorService.getAllVisitorsSearch({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameQuery: this.fullNameQuery, emailQuery: this.emailQuery, phoneQuery: this.phoneQuery, visitorStatusQuery: this.visitorStatusQuery, onlyChildren: this.onlyChildren\r\n });\r\n }\r\n\r\n blobToFile(data: any, type: string, fileName: string)\r\n {\r\n const a = document.createElement('a');\r\n document.body.appendChild(a);\r\n a.style.display = 'none';\r\n const blob = new Blob([data], { type: type });\r\n const url = window.URL.createObjectURL(blob);\r\n a.href = url; a.download = fileName; a.click();\r\n window.URL.revokeObjectURL(url);\r\n }\r\n\r\n CSV(){\r\n\r\n this.visitorService.exportCSV({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage, pageSize:this.pageSize,\r\n fullNameQuery: this.fullNameQuery, emailQuery: this.emailQuery, phoneQuery: this.phoneQuery}).subscribe\r\n (\r\n response=>\r\n {\r\n this.blobToFile(response, \"text/csv\", \"Export.csv\");\r\n }\r\n )\r\n\r\n }\r\n getVisitorStatus(value: number){\r\n if (value === 0) {\r\n return 'Registrovan';\r\n }\r\n else if (value === 1) {\r\n return 'Nepouzdan';\r\n }\r\n else if (value === 2) {\r\n return 'Odjavljen';\r\n }\r\n return 'Blokiran';\r\n }\r\n getArrayChildrenNames()\r\n { \r\n \r\n this.visitors$.subscribe({\r\n next: (arr) => {\r\n var i: number;\r\n var j: number;\r\n this.visitorsArray=arr\r\n var len =this.visitorsArray.length;\r\n \r\n for(i=0;i()\r\n this. FullName =\"-\";\r\n ChildrenNamesArray.push(this.FullName)\r\n this.ChildrenNames =ChildrenNamesArray.join(' '); \r\n \r\n }\r\n else\r\n {\r\n let ChildrenNamesArray=new Array()\r\n for(j=0; j< this.visitorsArray[i].children.length; j++){\r\n \r\n this. FullName =this.visitorsArray[i].children[j].fullName; \r\n \r\n ChildrenNamesArray.push(this.FullName)\r\n \r\n } \r\n this.ChildrenNames =ChildrenNamesArray.join(', ');\r\n \r\n }\r\n \r\n this.visitorsArray[i].children.push(this.ChildrenNames)\r\n console.log(this.ChildrenNames) \r\n \r\n } \r\n \r\n console.log(len)\r\n \r\n },\r\n \r\n });\r\n \r\n console.log(this.visitors$)\r\n \r\n }\r\n\r\n\r\n\r\n\r\n }\r\n","import { DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { interval } from 'rxjs';\r\n/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { HttpClient } from '@microsoft/signalr';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { User } from 'src/app/models/user.model';\r\nimport { Visit } from 'src/app/admin/models/visit.model';\r\nimport { AccountService } from 'src/app/services/account.service';\r\nimport { PlayroomService } from 'src/app/admin/services/playroom.service';\r\nimport { UserService } from 'src/app/admin/services/user.service';\r\nimport { VisitService } from 'src/app/admin/services/visit.service';\r\nimport { VisitorService } from 'src/app/admin/services/visitor.service';\r\n\r\n@Component({\r\n selector: 'app-manage-visits',\r\n templateUrl: './manage-visits.component.html',\r\n styleUrls: ['./manage-visits.component.scss'],\r\n})\r\nexport class ManageVisitsComponent implements OnInit {\r\n paginationSettings = {totalItems: 0};\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n currentPage: number = 1;\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n itemsPerPage: number = 10;\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n fullNameQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n birthDateQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n roomQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n statusQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n dateQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n dateQueryEnd: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n roomName: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n enterTimeQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n enterTimeQueryEnd: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n timeZoneQuery: string = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n \r\n gratis:boolean\r\n gratisQuery:string=\"\"\r\n\r\n visits$ = this.visitService.visit$;\r\n visitors$ = this.visitorService.visitors$;\r\n playrooms$ = this.roomService.playrooms$;\r\n visit: Visit = new Visit();\r\n private currentUserSource = new ReplaySubject(1);\r\n currentUser$ = this.currentUserSource.asObservable();\r\n pageSize: number = 2147483647;\r\n //datee=dateTame;\r\n dateTime: Date;\r\n\r\n constructor(private visitService: VisitService,\r\n private route: ActivatedRoute, private router: Router, private userService: UserService,\r\n private visitorService: VisitorService, private roomService: PlayroomService) { }\r\n\r\n ngOnInit(): void {\r\n this.loadVisit();\r\n if(this.isAdminRole()){\r\n this.roomService.getAllPlayrooms();\r\n }\r\n }\r\n\r\n getStatus(value: number){\r\n if (value === 0) {\r\n return 'U toku';\r\n // eslint-disable-next-line no-trailing-spaces\r\n }\r\n else if (value === 1) {\r\n return 'Završeno';\r\n // eslint-disable-next-line no-trailing-spaces\r\n\r\n }\r\n else if (value === 2) {\r\n return 'Kartica nije vraćena';\r\n // eslint-disable-next-line no-trailing-spaces\r\n\r\n}\r\n\r\nelse if (value ===3){\r\n return 'Automatski zatvoreno';\r\n\r\n}\r\n}\r\n\r\ngetSurcharge(value: boolean){\r\n if (value){\r\n return \"DA\";\r\n }\r\n else{\r\n return \"NE\";\r\n }\r\n}\r\n\r\ngetGratis(value: boolean){\r\n\r\nif(value==true){\r\n\r\n return \"DA\"\r\n}\r\nelse{\r\nreturn \"\";\r\n}\r\n}\r\n\r\n\r\nonGratisChange(value: string) {\r\n if (value === '1') {\r\n this.gratisQuery = \"true\"; \r\n } else if (value === '2') {\r\n this.gratisQuery = \"false\"; \r\n } else {\r\n this.gratisQuery = null; \r\n }\r\nconsole.log(\"this.gratisQuery\", this.gratisQuery)\r\nconsole.log(\"value\", value)\r\n}\r\n\r\n loadVisit() {\r\n this.currentPage=1\r\n this.visitService.getAllVisitsAdminManagerRole({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameQuery: this.fullNameQuery, birthDateQuery: this.birthDateQuery, roomQuery: this.roomQuery, statusQuery: this.statusQuery,\r\n dateQuery: this.dateQuery, dateQueryEnd: this.dateQueryEnd, enterTimeQuery: this.enterTimeQuery, enterTimeQueryEnd: this.enterTimeQueryEnd, timeZoneQuery: this.timeZoneQuery, gratisQuery:this.gratisQuery});\r\n this.visitService.paginationSettings$.subscribe(pagSettings => {\r\n this.paginationSettings = pagSettings;\r\n });\r\n }\r\n\r\n resetFilters()\r\n {\r\n if(this.isAdminRole()){\r\n this.roomService.getAllPlayrooms();\r\n this.roomName = '';\r\n }\r\n this.visitService.getAllVisitsAdminManagerRole();\r\n this.fullNameQuery = '';\r\n this.birthDateQuery = '';\r\n this.roomQuery = '';\r\n this.statusQuery = '';\r\n this.dateQuery = '';\r\n this.dateQueryEnd = '';\r\n this.enterTimeQuery = '';\r\n this.enterTimeQueryEnd = '';\r\n this.timeZoneQuery = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n this.gratisQuery='';\r\n this.gratis = null;\r\n }\r\n changePage(pageNumber) {\r\n this.currentPage = pageNumber;\r\n this.visitService.getAllVisitsAdminManagerRole({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameQuery: this.fullNameQuery, birthDateQuery: this.birthDateQuery, roomQuery: this.roomQuery, statusQuery: this.statusQuery,\r\n dateQuery: this.dateQuery, dateQueryEnd: this.dateQueryEnd, enterTimeQuery: this.enterTimeQuery, enterTimeQueryEnd: this.enterTimeQueryEnd, timeZoneQuery: this.timeZoneQuery, gratisQuery:this.gratisQuery});\r\n }\r\n\r\n getTimeInside(visit: any) {\r\n const enter: any = new Date(visit.enter);\r\n const now: any = new Date(new Date().toISOString().slice(0,-1));\r\n\r\n \r\n if (visit.status === 0) {\r\n const diffMs = (now - enter); \r\n const diffDays = Math.floor(diffMs / 86400000); \r\n const diffHrs = Math.floor((diffMs % 86400000) / 3600000); \r\n const diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000);\r\n const hrs = diffDays >= 1 ? (diffDays * 24) + diffHrs : diffHrs;\r\n \r\n return `${hrs.toString().length === 1 ? '0' : ''}${hrs}:${diffMins.toString().length === 1 ? '0' : ''}${diffMins}`;\r\n \r\n } else if (visit.status === 1 || visit.status === 2 || visit.status === 3) {\r\n const leave: any = new Date(visit.leave);\r\n const diffMs = leave - enter;\r\n const diffDays = Math.floor(diffMs / 86400000); \r\n const diffHrs = Math.floor((diffMs % 86400000) / 3600000); \r\n const diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); \r\n const hrs = diffDays >= 1 ? (diffDays * 24) + diffHrs : diffHrs; \r\n \r\n return `${hrs.toString().length === 1 ? '0' : ''}${hrs}:${diffMins.toString().length === 1 ? '0' : ''}${diffMins}`;\r\n }\r\n }\r\n \r\n blobToFile(data: any, type: string, fileName: string)\r\n {\r\n const a = document.createElement('a');\r\n document.body.appendChild(a);\r\n a.style.display = 'none';\r\n const blob = new Blob([data], { type: type });\r\n const url = window.URL.createObjectURL(blob);\r\n a.href = url; a.download = fileName; a.click();\r\n window.URL.revokeObjectURL(url);\r\n }\r\n\r\n CSV(){\r\n\r\n this.visitService.exportCSV({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,pageSize:this.pageSize,\r\n fullNameQuery: this.fullNameQuery, birthDateQuery: this.birthDateQuery, roomQuery: this.roomQuery, statusQuery:\r\n this.statusQuery, dateQuery: this.dateQuery, dateQueryEnd: this.dateQueryEnd, enterTimeQuery: this.enterTimeQuery,\r\n enterTimeQueryEnd: this.enterTimeQueryEnd,gratisQuery:this.gratisQuery}).subscribe\r\n (\r\n response=>\r\n {\r\n this.blobToFile(response, \"text/csv\", \"Export.csv\");\r\n\r\n }\r\n )\r\n\r\n }\r\n\r\n isAdminRole() {\r\n let isAdminWithoutRoom = false;\r\n this.currentUser$.subscribe(jwt => {\r\n // eslint-disable-next-line @typescript-eslint/dot-notation\r\n const user = this.parseJwt(jwt['token'])\r\n const roomId = parseInt(user['roomId']);\r\n if(roomId && roomId > 0) {\r\n isAdminWithoutRoom = false;\r\n }\r\n })\r\n return isAdminWithoutRoom;\r\n }\r\n\r\n parseJwt(token) {\r\n var base64Url = token.split('.')[1];\r\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n // eslint-disable-next-line no-var\r\n var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n\r\n return JSON.parse(jsonPayload);\r\n };\r\n\r\n getCardType(value: number, hours: number): string {\r\n if (value === 0) {\r\n if (hours) {\r\n return 'Sat(' + hours + 'h'+')';\r\n } else {\r\n return 'Sat';\r\n }\r\n } else if (value === 1) {\r\n return 'Poludnevna karta';\r\n } else if (value === 2) {\r\n return 'Dnevna karta';\r\n } else {\r\n if (hours) {\r\n return 'Sat(' + hours + 'h'+')';\r\n } else {\r\n return '';\r\n }\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { AddVisitModalComponent } from 'src/app/admin/components/modals/add-visit-modal/add-visit-modal.component';\r\nimport { EditVisitModalComponent } from 'src/app/admin/components/modals/edit-visit-modal/edit-visit-modal.component';\r\nimport { VisitService } from 'src/app/admin/services/visit.service';\r\nimport { VisitorService } from 'src/app/admin/services/visitor.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as signalR from \"@microsoft/signalr\";\r\nimport { BlockedStatusComponent } from 'src/app/admin/components/modals/blocked-status/blocked-status.component';\r\nimport { SurchargeModalComponent } from 'src/app/admin/components/modals/surcharge-modal/surcharge-modal.component';\r\nimport { Visit } from 'src/app/admin/models/visit.model';\r\nimport { ViewQrCodeComponent } from '../../components/modals/view-qr-code/view-qr-code.component';\r\n\r\n@Component({\r\n selector: 'app-visits-page',\r\n templateUrl: './visits.page.html',\r\n styleUrls: ['./visits.page.scss'],\r\n})\r\n\r\nexport class VisitsPage {\r\n \r\n titleNames = {\r\n home: 'Početna',\r\n signin: 'Prijava',\r\n search: 'Pretraga'\r\n };\r\n visitors = [];\r\n selectedVisitor: any = {};\r\n paginationSettings = {totalItems: 0};\r\n page: 'home' | 'signin' | 'search' | 'blocked' = 'home';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n currentPage: number = 1;\r\n playrooms = [];\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n itemsPerPage: number = 10;\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n fullNameQuery: string = '';\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n emailQuery: string = '';\r\n phoneQuery: string = '';\r\n visitorStatusQuery: string = '';\r\n visitStatusQuery:string='';\r\n onlyChildren:boolean=false;\r\n \r\n\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n fullNameBlockedVisitorsQuery: string = '';\r\n visits$ = this.visitService.visit$;\r\n connection;\r\n disconnectedOnPurpose = false;\r\n visitInterval = null;\r\n apiUrl = environment.apiUrl;\r\n errMsg = '';\r\n roomId;\r\n visitors$ = this.visitorService.visitors$;\r\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\n fullNameVisitorQuery: string = '';\r\n managers = [];\r\n selectedVisit: Visit | any = {} ;\r\n visitorsArray:any\r\n ChildrenNames:string\r\n FullName:string\r\n showFormRoditelj:boolean=true;\r\n sakrijKolonu: boolean = false;\r\n\r\n constructor(private visitorService: VisitorService, private modalController: ModalController, private visitService: VisitService,\r\n private route: ActivatedRoute, private router: Router) {}\r\n\r\n ngOnInit(): void {\r\n const queryString = window.location.search;\r\n const urlParams = new URLSearchParams(queryString);\r\n const stepParam = urlParams.get('step');\r\n if(stepParam === 'signin' || stepParam === 'search' || stepParam === 'blocked') {\r\n this.changePage(stepParam);\r\n } else {\r\n this.loadActiveVisits();\r\n }\r\n\r\n let loggedUser = JSON.parse(localStorage.getItem('loggedUser'));\r\n this.roomId = loggedUser.roomId;\r\n this.selectedVisit = null;\r\n this.getArrayChildrenNames()\r\n }\r\n \r\n getArrayChildrenNames()\r\n { \r\n \r\n this.visitors$.subscribe({\r\n next: (arr) => {\r\n var i: number;\r\n var j: number;\r\n this.visitorsArray=arr\r\n var len =this.visitorsArray.length;\r\n \r\n for(i=0;i()\r\n this. FullName =\"-\";\r\n ChildrenNamesArray.push(this.FullName)\r\n this.ChildrenNames =ChildrenNamesArray.join(' '); \r\n \r\n }\r\n else\r\n {\r\n let ChildrenNamesArray=new Array()\r\n for(j=0; j< this.visitorsArray[i].children.length; j++){\r\n \r\n this. FullName =this.visitorsArray[i].children[j].fullName; \r\n \r\n ChildrenNamesArray.push(this.FullName)\r\n \r\n } \r\n this.ChildrenNames =ChildrenNamesArray.join(', ');\r\n \r\n }\r\n \r\n this.visitorsArray[i].children.push(this.ChildrenNames)\r\n console.log(this.ChildrenNames) \r\n \r\n } \r\n \r\n console.log(len)\r\n \r\n },\r\n \r\n });\r\n \r\n console.log(this.visitors$)\r\n \r\n }\r\n naPromeniCheckbox(event: any) {\r\n this.sakrijKolonu = !event.target.checked;\r\n }\r\n\r\n getAllBlockedVisitors() {\r\n this.currentPage=1\r\n this.visitorService.getAllBlockedVisitorEdit({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameBlockedVisitorsQuery: this.fullNameBlockedVisitorsQuery\r\n });\r\n this.visitorService.paginationSettings$.subscribe(pagSettings => {\r\n this.paginationSettings = pagSettings;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.visitInterval) {\r\n clearInterval(this.visitInterval);\r\n }\r\n\r\n if (this.connection) {\r\n this.connection.stop().catch((err) => console.log(err));\r\n }\r\n }\r\n\r\n changeQueryParam(step){\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: {\r\n step\r\n },\r\n });\r\n }\r\n\r\n loadActiveVisits() {\r\n this.loadActiveVisitLogic()\r\n if(!this.visitInterval) {\r\n this.visitInterval = setInterval(() => {\r\n if(this.page === 'home') {\r\n this.loadActiveVisitLogic()\r\n }\r\n }, 30000);\r\n }\r\n }\r\n\r\n loadActiveVisitLogic() {\r\n this.visitService.getAllVisits({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameQuery: this.fullNameVisitorQuery, StatusQuery: this.visitStatusQuery,phoneQuery: this.phoneQuery});\r\n this.visitService.paginationSettings$.subscribe(pagSettings => {\r\n this.paginationSettings = pagSettings;\r\n });\r\n }\r\n\r\n\r\n loadNonActiveVisitors() {\r\n this.visitorService.getAllVisitorsSearch({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameQuery: this.fullNameQuery,\r\n emailQuery: this.emailQuery, phoneQuery : this.phoneQuery, visitorStatusQuery: this.visitorStatusQuery, onlyChildren: this.onlyChildren});\r\n this.visitorService.paginationSettings$.subscribe(pagSettings => {\r\n this.paginationSettings = pagSettings;\r\n });\r\n }\r\n\r\n changePage(page) {\r\n if(page === 'signin') {\r\n this.loadNonActiveVisitors();\r\n }else if (page === 'blocked'){\r\n this.getAllBlockedVisitors();\r\n }else {\r\n this.loadActiveVisits();\r\n }\r\n\r\n this.changeQueryParam(page);\r\n this.page = page;\r\n this.currentPage = 1;\r\n this.selectedVisitor = null;\r\n this.fullNameQuery = '';\r\n\r\n }\r\n\r\n changePagePagination(pageNumber) {\r\n this.currentPage = pageNumber;\r\n if(this.page === 'signin') {\r\n\r\n this.visitorService.getAllVisitorsSearch({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameQuery: this.fullNameQuery,\r\n emailQuery: this.emailQuery, phoneQuery : this.phoneQuery, visitorStatusQuery: this.visitorStatusQuery, onlyChildren: this.onlyChildren});\r\n\r\n }\r\n else if( this.page === 'blocked'){\r\n\r\n this.visitorService.getAllBlockedVisitorEdit({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameBlockedVisitorsQuery: this.fullNameBlockedVisitorsQuery\r\n });\r\n\r\n }\r\n\r\n else {\r\n this.visitService.getAllVisits({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameQuery: this.fullNameQuery, StatusQuery: this.visitStatusQuery,phoneQuery: this.phoneQuery});\r\n\r\n\r\n }\r\n }\r\n\r\n getTimeInside(visit) {\r\n const enter: any = new Date(visit.enter);\r\n const now: any = new Date(new Date().toISOString().slice(0,-1));\r\n const diffMs = (now - enter); // milliseconds between now & Christmas\r\n const diffDays = Math.floor(diffMs / 86400000); // days\r\n const diffHrs = Math.floor((diffMs % 86400000) / 3600000); // hours\r\n const diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); // minutes\r\n const hrs = diffDays >= 1 ? (diffDays * 24) + diffHrs : diffHrs;\r\n return `${hrs.toString().length === 1 ? '0' : ''}${hrs}:${diffMins.toString().length === 1 ? '0' : ''}${diffMins}`\r\n }\r\n\r\n\r\n\r\n async loadSearchResult(){\r\n this.currentPage=1\r\n\r\n this.visitorService.getAllVisitorsSearch({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameQuery: this.fullNameQuery,\r\n emailQuery: this.emailQuery, phoneQuery : this.phoneQuery, visitorStatusQuery: this.visitorStatusQuery, onlyChildren: this.onlyChildren});\r\n\r\n }\r\n \r\n async loadSearchVisitIdResult(){\r\n this.currentPage=1\r\n\r\n this.visitorService.getAllVisitorIdSearch({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameQuery: this.fullNameQuery,\r\n emailQuery: this.emailQuery, phoneQuery : this.phoneQuery});\r\n\r\n }\r\n\r\n\r\n async loadSearchResultVisits(){\r\n this.currentPage=1\r\n this.visitService.getAllVisits({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameQuery: this.fullNameQuery, StatusQuery: this.visitStatusQuery, phoneQuery: this.phoneQuery});\r\n\r\n\r\n }\r\n\r\n async loadBlockedVisitors(){\r\n\r\n this.currentPage=1\r\n\r\n this.visitorService.getAllBlockedVisitorEdit({currentPage: this.currentPage, itemsPerPage: this.itemsPerPage,\r\n fullNameBlockedVisitorsQuery: this.fullNameBlockedVisitorsQuery\r\n });\r\n\r\n }\r\n\r\n async openAddVisitModal() {\r\n if(this.selectedVisitor) {\r\n const modal = await this.modalController.create({\r\n component: AddVisitModalComponent,\r\n componentProps: {visitor: this.selectedVisitor},\r\n cssClass: 'medium-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n\r\n await modal.present();\r\n }\r\n }\r\n\r\n\r\n async openEditVisitModal(passVisit: boolean) {\r\n let visitId = null;\r\n if (passVisit) {\r\n visitId = this.selectedVisitor.id\r\n }\r\n\r\n const modal = await this.modalController.create({\r\n component: EditVisitModalComponent,\r\n componentProps: {visitId: visitId},\r\n cssClass: 'medium-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n\r\n await modal.present();\r\n }\r\n\r\n\r\n ensureSignalRConnected() {\r\n if (this.connection.state !== signalR.HubConnectionState.Connected) {\r\n this.connection.start().then(() =>{\r\n this.connection.send('RegisterSmartCardRequest', this.roomId, 'checkout');\r\n }).catch((err) => {\r\n console.log(err);\r\n });\r\n } else if (this.connection.state === signalR.HubConnectionState.Connected) {\r\n this.connection.send('RegisterSmartCardRequest', this.roomId, 'checkout');\r\n }\r\n }\r\n\r\n getVisitorStatus(value: number){\r\n if (value === 0) {\r\n return 'Registrovan';\r\n }\r\n else if (value === 1) {\r\n return 'Nepouzdan';\r\n }\r\n else if (value === 2) {\r\n return 'Odjavljen';\r\n }\r\n else (value === 3)\r\n return 'Blokiran';\r\n }\r\n\r\n async openBlockedStatusModal() {\r\n const modal = await this.modalController.create({\r\n component: BlockedStatusComponent,\r\n componentProps: {visitor: this.selectedVisitor},\r\n cssClass: 'small-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n await modal.present();\r\n }\r\n\r\n async openSurchargeModal() {\r\n let visitId = null;\r\n \r\n const modal = await this.modalController.create({\r\n component: SurchargeModalComponent,\r\n // eslint-disable-next-line object-shorthand\r\n componentProps: {},\r\n cssClass: 'basic-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n await modal.present();\r\n const { data } = await modal.onDidDismiss();\r\n }\r\n\r\n onchnge(e: any, index: any) {\r\n var cl = document.getElementsByClassName(index)\r\n \r\n if (e.target.checked === true) {\r\n \r\n for (let i = 0; i < cl.length; i++) {\r\n cl[i].classList.remove(\"tabCol\")\r\n \r\n if(index==\"cl0\")\r\n \r\n {\r\n this.showFormRoditelj=true\r\n \r\n }\r\n else {\r\n for (let i = 0; i < cl.length; i++) {\r\n cl[i].classList.add(\"tabCol\")\r\n if(index==\"cl0\")\r\n \r\n {\r\n this.showFormRoditelj=false\r\n \r\n }\r\n \r\n \r\n }\r\n }}}}\r\n\r\n getCardType(value: number, hours: number): string {\r\n if (value === 0) {\r\n if (hours) {\r\n return 'Sat (' + hours + 'h'+')';\r\n } else {\r\n return 'Sat';\r\n }\r\n } else if (value === 1) {\r\n return 'Poludnevna karta';\r\n } else if (value === 2) {\r\n return 'Dnevna karta';\r\n } else {\r\n if (hours) {\r\n return 'Sat (' + hours + 'h'+')';\r\n } else {\r\n return '';\r\n }\r\n }\r\n }\r\n \r\n async getCardByCode(code: string){\r\n console.log(code);\r\n const modal = await this.modalController.create({\r\n component: ViewQrCodeComponent,\r\n componentProps: { code },\r\n cssClass: 'small-modal-css',\r\n backdropDismiss: true,\r\n });\r\n\r\n await modal.present();\r\n}\r\n}\r\n","/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport {map} from 'rxjs/operators';\r\nimport { Playroom } from '../models/playroom.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class PlayroomService {\r\n\r\n apiUrl = environment.apiUrl;\r\n private playroomsSource = new ReplaySubject(1);\r\n playrooms$ = this.playroomsSource.asObservable();\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n addPlayroom(room: Playroom) {\r\n const workingHoursFrom = `2001-01-01T${room.workingHoursFrom}:00.0000000`;\r\n const workingHoursTo = `2001-01-01T${room.workingHoursTo}:00.0000000`;\r\n return this.http.post(this.apiUrl + 'room', {...room, workingHoursFrom, workingHoursTo});\r\n }\r\n\r\n getAllPlayrooms() {\r\n return this.http.get(this.apiUrl + 'room').pipe(map((rooms) => {\r\n if(rooms) {\r\n this.playroomsSource.next(rooms);\r\n }\r\n })).toPromise();\r\n }\r\n\r\n editPlayroom(room) {\r\n const workingHoursFrom = `2001-01-01T${room.workingHoursFrom}:00`;\r\n const workingHoursTo = `2001-01-01T${room.workingHoursTo}:00`;\r\n return this.http.put(`${this.apiUrl}room/${room.id}`, {...room, workingHoursFrom, workingHoursTo});\r\n }\r\n\r\n deletePlayroom(id) {\r\n return this.http.delete(`${this.apiUrl}room/${id}`);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Ramp } from '../models/ramp.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { Ramp1 } from '../models/ramp1.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RampService {\r\n private paginationSource = new ReplaySubject(1);\r\n paginationSettings$ = this.paginationSource.asObservable();\r\n\r\n apiUrl = environment.apiUrl;\r\n private rampSource = new ReplaySubject(1);\r\n ramp$ = this.rampSource.asObservable();\r\n \r\n constructor(private http: HttpClient) {}\r\n\r\n addRamp(ramp: Ramp) {\r\n console.log(\"servisramp\")\r\n console.log(ramp)\r\n return this.http.post(this.apiUrl + 'api/Rampa',{...ramp });\r\n }\r\n getAllRamp(queryParams = {currentPage: 1, itemsPerPage: null, brojRampeQuery: '',ulaznaQuery: null,izlaznaQuery: null,roomNameQuery: '',StatusQuery:'' }) {\r\n let params = new HttpParams();\r\n params = params.append('brojRampeQuery', queryParams.brojRampeQuery);\r\n params = params.append('ulaznaQuery', queryParams.ulaznaQuery);\r\n params = params.append('izlaznaQuery', queryParams.izlaznaQuery);\r\n params = params.append('roomNameQuery', queryParams.roomNameQuery);\r\n params = params.append('pageNumber', queryParams.currentPage);\r\n params = params.append('pageSize', queryParams.itemsPerPage);\r\n return this.http.get(this.apiUrl + 'api/Rampa/Search',{params, observe: 'response'}).pipe(map((ramp:any) => {\r\n if(ramp) {\r\n this.paginationSource.next(JSON.parse(ramp.headers.get('pagination')));\r\n this.rampSource.next(ramp.body);\r\n }\r\n })).toPromise();\r\n }\r\n editRamp(ramp) {\r\n \r\n return this.http.put(`${this.apiUrl}api/Rampa/${ramp.id}`,ramp);\r\n \r\n} \r\ndeleteRamp(id) {\r\n return this.http.delete(`${this.apiUrl}api/Rampa/${id}`);\r\n}\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { StaffCard } from '../models/staffCard';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StaffcardService {\r\n private paginationSource = new ReplaySubject(1);\r\n paginationSettings$ = this.paginationSource.asObservable();\r\n\r\n apiUrl = environment.apiUrl;\r\n private staffCardSource = new ReplaySubject(1);\r\n staffCard$ = this.staffCardSource.asObservable();\r\n \r\n constructor(private http: HttpClient) {}\r\n\r\n addStaffCard(staffCard: StaffCard ) {\r\n console.log(\"serviscard\")\r\n console.log(staffCard)\r\n return this.http.post(this.apiUrl + 'api/StaffCard',{...staffCard });\r\n }\r\n getAllStaffCard(queryParams = {currentPage: 1, itemsPerPage: null, fullNameQuery: '',enterQuery: null,roomNameQuery: '' }) {\r\n let params = new HttpParams();\r\n params = params.append('fullNameQuery', queryParams.fullNameQuery);\r\n params = params.append('enterQuery', queryParams.enterQuery);\r\n params = params.append('roomNameQuery', queryParams.roomNameQuery);\r\n params = params.append('pageNumber', queryParams.currentPage);\r\n params = params.append('pageSize', queryParams.itemsPerPage);\r\n return this.http.get(this.apiUrl + 'api/StaffCard/Search',{params, observe: 'response'}).pipe(map((staffCard:any) => {\r\n if(staffCard) {\r\n this.paginationSource.next(JSON.parse(staffCard.headers.get('pagination')));\r\n this.staffCardSource.next(staffCard.body);\r\n }\r\n })).toPromise();\r\n }\r\n editStaffCard(staffCard) {\r\n \r\n return this.http.put(`${this.apiUrl}api/StaffCard/${staffCard.id}`,staffCard);\r\n \r\n} \r\ndeleteStaffCard(id) {\r\n return this.http.delete(`${this.apiUrl}api/StaffCard/${id}`);\r\n}\r\n\r\n}","/* eslint-disable prefer-const */\r\n/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport {map} from 'rxjs/operators';\r\nimport { User } from '../../models/user.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class UserService {\r\n\r\n apiUrl = environment.apiUrl;\r\n private usersSource = new ReplaySubject(1);\r\n private paginationSource = new ReplaySubject(1);\r\n allUsers$ = this.usersSource.asObservable();\r\n paginationSettings$ = this.paginationSource.asObservable();\r\n\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n addUser(user: User) {\r\n user.password = `${user.firstName[0].toUpperCase()}${this.capitalizeFirstLetter(user.lastName)}`;\r\n user.confirmPassword = user.password;\r\n if(user.role === 'Manager' || user.role === 'Admin') {\r\n user.managerId = 0;\r\n }\r\n console.log(\"servisuser\")\r\n console.log(user)\r\n return this.http.post(this.apiUrl + 'user', user);\r\n }\r\n\r\n getAllUsers(queryParams = {currentPage: 0, itemsPerPage: 0, usernameQuery: '', firstNameQuery: '', lastNameQuery: '',\r\n idCardNoQuery: ''}) {\r\n let params = new HttpParams();\r\n params = params.append('usernameQuery', queryParams.usernameQuery);\r\n params = params.append('firstNameQuery', queryParams.firstNameQuery);\r\n params = params.append('lastNameQuery', queryParams.lastNameQuery);\r\n params = params.append('idCardNoQuery', queryParams.idCardNoQuery);\r\n params = params.append('pageNumber', queryParams.currentPage);\r\n params = params.append('pageSize', queryParams.itemsPerPage);\r\n return this.http.get(this.apiUrl + 'user', {params, observe: 'response'}).pipe(map((res: any) => {\r\n\r\n if(res) {\r\n this.paginationSource.next(JSON.parse(res.headers.get('pagination')));\r\n this.usersSource.next(res.body);\r\n }\r\n })).toPromise();\r\n }\r\n\r\n editUser(user) {\r\n return this.http.put(`${this.apiUrl}user/${user.id}`, user);\r\n }\r\n\r\n deleteUser(id) {\r\n return this.http.delete(`${this.apiUrl}user/${id}`);\r\n }\r\n\r\n changePassword(req) {\r\n return this.http.post(`${this.apiUrl}user/changePassword`, req);\r\n }\r\n\r\n resetPassword(user: User) {\r\n const password = `${user.firstName[0].toUpperCase()}${this.capitalizeFirstLetter(user.lastName)}`;\r\n const confirmPassword = password;\r\n const req = {username: user.username, password, confirmPassword};\r\n user.password = password;\r\n return this.http.post(`${this.apiUrl}user/resetPassword`, req);\r\n }\r\n\r\n // eslint-disable-next-line id-blacklist\r\n capitalizeFirstLetter(string: string) {\r\n // eslint-disable-next-line id-blacklist\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n }\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Visit } from '../models/visit.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VisitService {\r\n\r\n\r\n apiUrl = environment.apiUrl;\r\n private visitSource = new ReplaySubject(1);\r\n private paginationSource = new ReplaySubject(1);\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n visit$ = this.visitSource.asObservable();\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n paginationSettings$ = this.paginationSource.asObservable();\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getVisitById(visitId: number) {\r\n return this.http.get(this.apiUrl + 'api/Visit/' + visitId)\r\n }\r\n\r\n getVisitByCardId(cardId: string) {\r\n return this.http.get(this.apiUrl + 'api/Visit/GetByCardId/' + cardId)\r\n }\r\n\r\n getVisitQrCode(code: string) {\r\n return this.http.get(this.apiUrl + 'api/Visit/VisitCode/' + code)\r\n }\r\n\r\n printQrCode(code: string) {\r\n return this.http.get(this.apiUrl + 'api/Visit/PrintVisitQrCode/' + code, { responseType: 'arraybuffer' })\r\n }\r\n\r\n getAllVisits(queryParams = { currentPage: null, itemsPerPage: null, fullNameQuery: '', StatusQuery: '', phoneQuery: '' }) {\r\n let params = new HttpParams();\r\n params = params.append('fullNameQuery', queryParams.fullNameQuery);\r\n params = params.append('pageNumber', queryParams.currentPage);\r\n params = params.append('pageSize', queryParams.itemsPerPage);\r\n params = params.append('phoneQuery', queryParams.phoneQuery);\r\n\r\n\r\n return this.http.get(this.apiUrl + 'api/Visit/SearchVisits', { params, observe: 'response' }).pipe(map((res: any) => {\r\n\r\n if (res) {\r\n this.paginationSource.next(JSON.parse(res.headers.get('pagination')));\r\n this.visitSource.next(res.body);\r\n }\r\n })).toPromise();\r\n }\r\n\r\n\r\n getAllVisitsAdminManagerRole(queryParams = {\r\n currentPage: 1, itemsPerPage: 20, fullNameQuery: '', birthDateQuery: '', roomQuery: '',\r\n statusQuery: '', dateQuery: '', dateQueryEnd: '', enterTimeQuery: '', enterTimeQueryEnd: '', timeZoneQuery: '', gratisQuery:''\r\n }) {\r\n let params = new HttpParams();\r\n params = params.append('fullNameQuery', queryParams.fullNameQuery);\r\n params = params.append('birthDateQuery', queryParams.birthDateQuery);\r\n params = params.append('roomQuery', queryParams.roomQuery);\r\n params = params.append('statusQuery', queryParams.statusQuery);\r\n params = params.append('dateQuery', queryParams.dateQuery);\r\n params = params.append('dateQueryEnd', queryParams.dateQueryEnd);\r\n params = params.append('enterTimeQuery', queryParams.enterTimeQuery);\r\n params = params.append('enterTimeQueryEnd', queryParams.enterTimeQueryEnd);\r\n params = params.append('timeZoneQuery', queryParams.timeZoneQuery);\r\n params = params.append('gratisQuery', queryParams.gratisQuery);\r\n params = params.append('pageNumber', queryParams.currentPage);\r\n params = params.append('pageSize', queryParams.itemsPerPage);\r\n return this.http.get(this.apiUrl + 'api/Visit/SearchVisitsAdminRole', { params, observe: 'response' }).pipe(map((res: any) => {\r\n\r\n if (res) {\r\n this.paginationSource.next(JSON.parse(res.headers.get('pagination')));\r\n this.visitSource.next(res.body);\r\n }\r\n })).toPromise();\r\n }\r\n\r\n addVisit(visit: Visit, phone: string, email: string, cardType: number, hours: number,gratis:boolean) {\r\n return this.http.post(this.apiUrl + 'api/Visit/Checkin', { visitorId: visit.id, phoneVisit: phone, emailVisit: email, cardType: cardType, hours: hours, Gratis:gratis }\r\n , { responseType: 'arraybuffer' }\r\n );\r\n\r\n\r\n /* const formData = new FormData();\r\n formData.append(\"visitorId\", visit.id.toString());\r\n formData.append(\"cardId\",cardId);\r\n formData.append(\"phoneVisit\", phone);\r\n formData.append(\"emailVisit\",email);\r\n formData.append('ImageQr', ImageQr, `test.pdf`)\r\n return this.http.post(this.apiUrl + 'api/Visit/Checkin', formData); */\r\n }\r\n\r\n addVisitWithoutHours(visit: Visit, phone: string, email: string, cardType: number, gratis:boolean) {\r\n return this.http.post(this.apiUrl + 'api/Visit/Checkin', { visitorId: visit.id, phoneVisit: phone, emailVisit: email, cardType: cardType ,Gratis:gratis},\r\n { responseType: 'arraybuffer' }\r\n );\r\n }\r\n\r\n\r\n editCheckin(visit) {\r\n return this.http.put(`${this.apiUrl}api/Visit/${visit.id}`, visit);\r\n }\r\n\r\n exportCSV(queryParams = {\r\n currentPage: 1, itemsPerPage: 20, pageSize: 2147483647, fullNameQuery: '', birthDateQuery: '', roomQuery: '',\r\n statusQuery: '', dateQuery: '', dateQueryEnd: '', enterTimeQuery: '', enterTimeQueryEnd: '', gratisQuery:''\r\n }) {\r\n let params = new HttpParams();\r\n params = params.append('fullNameQuery', queryParams.fullNameQuery);\r\n params = params.append('birthDateQuery', queryParams.birthDateQuery);\r\n params = params.append('roomQuery', queryParams.roomQuery);\r\n params = params.append('statusQuery', queryParams.statusQuery);\r\n params = params.append('dateQuery', queryParams.dateQuery);\r\n params = params.append('dateQueryEnd', queryParams.dateQueryEnd);\r\n params = params.append('enterTimeQuery', queryParams.enterTimeQuery);\r\n params = params.append('enterTimeQueryEnd', queryParams.enterTimeQueryEnd);\r\n params = params.append('gratisQuery', queryParams.gratisQuery);\r\n params = params.append('pageNumber', queryParams.currentPage);\r\n params = params.append('pageSize', queryParams.pageSize);\r\n return this.http.get(this.apiUrl + 'api/Visit/exportCSV', { params, responseType: \"text\" })\r\n }\r\n\r\n\r\n getAllBlockedVisits(queryParams = { currentPage: 1, itemsPerPage: 20, fullNameBlockedVisitorsQuery: '' }) {\r\n let params = new HttpParams();\r\n params = params.append('fullNameBlockedVisitorsQuery', queryParams.fullNameBlockedVisitorsQuery);\r\n params = params.append('pageNumber', queryParams.currentPage);\r\n params = params.append('pageSize', queryParams.itemsPerPage);\r\n return this.http.get(this.apiUrl + 'api/Visit/SearchBlockedVisits', { params, observe: 'response' }).pipe(map((res: any) => {\r\n\r\n if (res) {\r\n this.paginationSource.next(JSON.parse(res.headers.get('pagination')));\r\n this.visitSource.next(res.body);\r\n }\r\n })).toPromise();\r\n }\r\n\r\n editVisitSurcharge(visit) {\r\n return this.http.put(`${this.apiUrl}api/Visit/VisitSurcharge/${visit.id}`, visit);\r\n }\r\n\r\n}\r\n","/* eslint-disable prefer-const */\r\n/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport {map} from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class VisitorService {\r\n\r\n apiUrl = environment.apiUrl;\r\n private visitorsSource = new ReplaySubject(1);\r\n private paginationSource = new ReplaySubject(1);\r\n visitors$ = this.visitorsSource.asObservable();\r\n paginationSettings$ = this.paginationSource.asObservable();\r\n\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n\r\n getAllVisitors() {\r\n let params = new HttpParams();\r\n // params = params.append('searchQuery', queryParams.usernameQuery);\r\n // params = params.append('pageNumber', queryParams.currentPage);\r\n // params = params.append('pageSize', queryParams.itemsPerPage);\r\n return this.http.get(this.apiUrl + 'visitor', {params, observe: 'response'}).pipe(map((res: any) => {\r\n\r\n if(res) {\r\n this.paginationSource.next(JSON.parse(res.headers.get('pagination')));\r\n this.visitorsSource.next(res.body);\r\n }\r\n })).toPromise();\r\n }\r\n\r\n deleteVisitor(id) {\r\n return this.http.delete(`${this.apiUrl}visitor/${id}`);\r\n }\r\n\r\n getAllVisitorsSearch(queryParams = {currentPage: 1, itemsPerPage: 20, fullNameQuery: '', emailQuery: '', phoneQuery: '', visitorStatusQuery: '', onlyChildren: false\r\n }) {\r\n let params = new HttpParams();\r\n params = params.append('fullNameQuery', queryParams.fullNameQuery);\r\n params = params.append('emailQuery', queryParams.emailQuery);\r\n params = params.append('phoneQuery', queryParams.phoneQuery);\r\n params = params.append('visitorStatusQuery', queryParams.visitorStatusQuery);\r\n params = params.append('pageNumber', queryParams.currentPage);\r\n params = params.append('pageSize', queryParams.itemsPerPage);\r\n params = params.append('onlyChildren', queryParams.onlyChildren);\r\n return this.http.get(this.apiUrl + 'visitor/SearchVisitors', {params, observe: 'response'}).pipe(map((res: any) => {\r\n\r\n if(res) {\r\n this.paginationSource.next(JSON.parse(res.headers.get('pagination')));\r\n this.visitorsSource.next(res.body);\r\n }\r\n })).toPromise();\r\n }\r\n getAllVisitorIdSearch(queryParams = {currentPage: 1, itemsPerPage: 20, fullNameQuery: '', emailQuery: '', phoneQuery: '',\r\n}) {\r\n let params = new HttpParams();\r\n params = params.append('fullNameQuery', queryParams.fullNameQuery);\r\n params = params.append('emailQuery', queryParams.emailQuery);\r\n params = params.append('phoneQuery', queryParams.phoneQuery);\r\n params = params.append('pageNumber', queryParams.currentPage);\r\n params = params.append('pageSize', queryParams.itemsPerPage);\r\n return this.http.get(this.apiUrl + 'visitor/SearchVisitorsId', {params, observe: 'response'}).pipe(map((res: any) => {\r\n\r\n if(res) {\r\n this.paginationSource.next(JSON.parse(res.headers.get('pagination')));\r\n this.visitorsSource.next(res.body);\r\n }\r\n })).toPromise();\r\n}\r\n getSignature(guid) {\r\n let headers = new HttpHeaders();\r\n headers = headers.set('Accept', 'application/pdf');\r\n\r\n return this.http.get(this.apiUrl + 'visitor/download/' + guid, { headers, responseType: 'blob' });\r\n }\r\n exportCSV(queryParams = {currentPage: 1, itemsPerPage: 20, pageSize:2147483647, fullNameQuery: '', emailQuery: '', phoneQuery: '',\r\n}) {\r\n let params = new HttpParams();\r\n params = params.append('fullNameQuery', queryParams.fullNameQuery);\r\n params = params.append('emailQuery', queryParams.emailQuery);\r\n params = params.append('phoneQuery', queryParams.phoneQuery);\r\n params = params.append('pageNumber', queryParams.currentPage);\r\n params = params.append('pageSize', queryParams.pageSize);\r\n return this.http.get(this.apiUrl + 'visitor/exportCSV', {params,responseType:\"text\"})\r\n}\r\n\r\neditVisitor(visitor) {\r\n const formData = new FormData();\r\n Object.keys(visitor).forEach(key => formData.append(key, visitor[key]));\r\n // eslint-disable-next-line @typescript-eslint/quotes\r\n formData.append(\"children\", JSON.stringify(visitor));\r\n return this.http.put(`${this.apiUrl}Visitor/updateStatusVisitor/${visitor.id}`, visitor);\r\n}\r\n\r\ngetAllBlockedVisitorEdit(queryParams = {currentPage: 1, itemsPerPage: 20, fullNameBlockedVisitorsQuery: '' }) {\r\n let params = new HttpParams();\r\n params = params.append('fullNameBlockedVisitorsQuery', queryParams.fullNameBlockedVisitorsQuery);\r\n params = params.append('pageNumber', queryParams.currentPage);\r\n params = params.append('pageSize', queryParams.itemsPerPage);\r\n return this.http.get(this.apiUrl + 'Visitor/SearchBlockedVisitors' , {params, observe: 'response'}).pipe(map((res: any) => {\r\n\r\n if(res) {\r\n this.paginationSource.next(JSON.parse(res.headers.get('pagination')));\r\n this.visitorsSource.next(res.body);\r\n }\r\n })).toPromise();\r\n}\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { PreloadAllModules, RouterModule, Routes } from '@angular/router';\r\nimport { ManagePlayroomsPage } from './admin//pages/manage-playrooms/manage-playrooms.page';\r\nimport { ManageUsersPage } from './admin//pages/manage-users/manage-users.page';\r\nimport { ManageVisitorsPage } from './admin//pages/manage-visitors/manage-visitors.page';\r\nimport { AdminSettingsPage } from './admin//pages/admin-settings/admin-settings.page';\r\nimport { VisitsPage } from './admin//pages/visits/visits.page';\r\nimport { AdminGuard } from './admin/guards/admin.guard';\r\nimport { LoggedOutGuard } from './admin/guards/logged-out.guard';\r\nimport { AdminManagerGuard } from './admin/guards/adminmanager.guard';\r\nimport { EmployeeGuard } from './admin/guards/employee.guard';\r\nimport { LoggedInGuard } from './admin/guards/logged-in.guard';\r\nimport { ManageVisitsComponent } from './admin//pages/manage-visits/manage-visits.component';\r\nimport { ManageRampsPage } from './admin//pages/manage-ramps/manage-ramps.page';\r\nimport { AdminComponent } from './admin/admin.component';\r\nimport { RegistrationComponent } from './registration/registration.component';\r\nimport { SelectRoomPage } from './registration/pages/select-room/select-room.page';\r\nimport { RegisterPage } from './registration/pages/register/register.page';\r\nimport { GroupRegistrationPage } from './registration/pages/group-registration/group-registration.page';\r\nimport { LandingPage } from './registration/pages/landing/landing.page';\r\nimport { ConsentComponent } from './registration/consent/consent/consent.component';\r\nimport { ConsentGroupVisitComponent } from './registration/consent-group-visit/consent-group-visit.component';\r\nimport { LoginPage } from './admin/pages/login/login.page';\r\nimport { RegistrationLoginPage } from './registration/pages/login/login.page';\r\nimport { RegistrationAdminGuard } from './registration/guards/admin.guard';\r\nimport { RegistrationLoggedOutGuard } from './registration/guards/logged-out.guard';\r\nimport { RegistrationLoggedInGuard } from './registration/guards/logged-in.guard';\r\nimport { OnlineRegistrationComponent } from './registration/pages/online-registration/online-registration/online-registration.component';\r\nimport { OnlineConsentComponent } from './registration/pages/online-registration/online-consent/online-consent.component';\r\nimport { ManageStaffcardsComponent } from './admin/pages/manage-staffcards/manage-staffcards/manage-staffcards.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n redirectTo: 'admin/manage-playrooms',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: 'admin',\r\n component: AdminComponent,\r\n children: [\r\n {\r\n path: 'login',\r\n component: LoginPage,\r\n canActivate: [LoggedOutGuard]\r\n },\r\n {\r\n path: 'manage-visits',\r\n component: VisitsPage,\r\n canActivate: [EmployeeGuard]\r\n },\r\n {\r\n path: 'manage-playrooms',\r\n component: ManagePlayroomsPage,\r\n canActivate: [AdminGuard]\r\n },\r\n {\r\n path: 'manage-visitors',\r\n component: ManageVisitorsPage,\r\n canActivate: [AdminManagerGuard]\r\n },\r\n {\r\n path: 'manage-users',\r\n component: ManageUsersPage,\r\n canActivate: [AdminManagerGuard]\r\n },\r\n {\r\n path: 'profile-settings',\r\n component: AdminSettingsPage,\r\n canActivate: [LoggedInGuard]\r\n },\r\n {\r\n path: 'visits',\r\n component: ManageVisitsComponent,\r\n canActivate: [AdminManagerGuard]\r\n },\r\n {\r\n path: 'manage-ramps',\r\n component: ManageRampsPage,\r\n canActivate: [AdminGuard]\r\n },\r\n {\r\n path: 'manage-staffcards',\r\n component: ManageStaffcardsComponent,\r\n canActivate: [AdminGuard]\r\n },\r\n ]\r\n },\r\n {\r\n path: 'registration',\r\n component: RegistrationComponent,\r\n children: [\r\n {\r\n path: 'select-room',\r\n component: SelectRoomPage,\r\n canActivate: [RegistrationAdminGuard]\r\n },\r\n {\r\n path: 'login',\r\n component: RegistrationLoginPage,\r\n canActivate: [RegistrationLoggedOutGuard]\r\n },\r\n {\r\n path: 'register',\r\n component: RegisterPage,\r\n canActivate: [RegistrationLoggedInGuard]\r\n },\r\n {\r\n path: 'online-registration',\r\n component: OnlineRegistrationComponent,\r\n },\r\n {\r\n path: 'online-consent',\r\n component: OnlineConsentComponent,\r\n },\r\n {\r\n path: 'register-group',\r\n component: GroupRegistrationPage,\r\n canActivate: [RegistrationLoggedInGuard]\r\n },\r\n {\r\n path: 'home',\r\n component: LandingPage,\r\n canActivate: [RegistrationLoggedInGuard]\r\n },\r\n {\r\n path: 'consent',\r\n component: ConsentComponent,\r\n canActivate: [RegistrationLoggedInGuard]\r\n },\r\n {\r\n path: 'consent-group-visit',\r\n component: ConsentGroupVisitComponent,\r\n canActivate: [RegistrationLoggedInGuard]\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })\r\n ],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { User } from './models/user.model';\r\nimport { Storage } from '@ionic/storage-angular';\r\nimport { AccountService } from './services/account.service';\r\nimport { LanguageService } from './services/language.service';\r\nimport { interval, Subscription, timer } from 'rxjs';\r\nimport { VisitorService } from './admin/services/visitor.service';\r\nimport { VisitService } from './admin/services/visit.service';\r\nimport { map, share } from 'rxjs/operators';\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 implements OnInit {\r\n\r\n loggedUser$ = this.accountService.currentUser$;\r\n dateTime:string;\r\n time = new Date();\r\n rxTime = new Date();\r\n intervalId;\r\n subscription: Subscription;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /* */\r\ni:number;\r\npaginationSettings = {totalItems: 0};\r\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\ncurrentPage: number = 1;\r\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\nitemsPerPage: number = 20;\r\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\nfullNameQuery: string = '';\r\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\nbirthDateQuery: string = '';\r\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\nroomQuery: string = '';\r\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\r\nstatusQuery: string = '';\r\n/* visits$ = this.visitService.visit$;\r\nvisitors$ = this.visitorService.visitors$; */\r\npageSize: number = 2147483647;\r\n\r\n\r\n/* */\r\n\r\n\r\n constructor(private accountService: AccountService, private languageService: LanguageService,\r\n private storage: Storage,private visitService:VisitService ) {\r\n this.initStorage();\r\n\r\n }\r\n\r\n async initStorage() {\r\n await this.storage.create();\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.setCurrentUser();\r\n this.languageService.setInitialAppLanguage();\r\n }\r\n\r\n setCurrentUser() {\r\n const user: User = JSON.parse(localStorage.getItem('loggedUser'));\r\n this.accountService.setCurrentUser(user);\r\n }\r\n}\r\n\r\n\r\n","/* eslint-disable prefer-arrow/prefer-arrow-functions */\r\nimport { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { RouteReuseStrategy } from '@angular/router';\r\nimport { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { AppRoutingModule } from './app-routing.module';\r\n\r\nimport { CodeInputModule } from 'angular-code-input';\r\n\r\nimport { TokenInterceptor } from './interceptors/token.interceptor';\r\nimport { AdminModule } from './admin/admin.module';\r\nimport { RegistrationComponent } from './registration/registration.component';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { IonicStorageModule } from '@ionic/storage-angular';\r\nimport { RegistrationModule } from './registration/registration.module';\r\n\r\n\r\nexport function createTranslateLoader(http: HttpClient) {\r\n return new TranslateHttpLoader(http, 'assets/i18n/', '.json');\r\n}\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent\r\n ],\r\n entryComponents: [],\r\n imports: [\r\n BrowserModule,\r\n IonicModule.forRoot(),\r\n AppRoutingModule,\r\n AdminModule,\r\n \r\n RegistrationModule,\r\n HttpClientModule,\r\n FormsModule, ReactiveFormsModule,\r\n CodeInputModule,\r\n IonicStorageModule.forRoot(),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: (createTranslateLoader),\r\n deps: [HttpClient]\r\n }\r\n }),\r\n ],\r\n providers: [\r\n { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },\r\n { provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true }\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, take } from 'rxjs/operators';\r\nimport { User } from '../models/user.model';\r\nimport { AccountService } from '../services/account.service';\r\nimport { NavController } from '@ionic/angular';\r\n\r\n@Injectable()\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n\r\n constructor(private accountService: AccountService, private nav: NavController) {}\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n let currentUser: User;\r\n\r\n this.accountService.currentUser$.pipe(take(1)).subscribe(user => currentUser = user);\r\n if (currentUser) {\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${currentUser.token}`\r\n }\r\n })\r\n }\r\n return next.handle(request).pipe(\r\n catchError((error) => {\r\n if (error.status === 401)\r\n {\r\n this.handleAuthError();\r\n return of(error);\r\n }\r\n throw error;\r\n }\r\n )\r\n );\r\n }\r\n\r\n private handleAuthError( ) {\r\n this.accountService.logout();\r\n this.nav.navigateRoot('/');\r\n }\r\n }","export class User {\r\n id: number;\r\n email: string;\r\n username: string;\r\n firstName: string;\r\n lastName: string;\r\n idCardNo: number;\r\n address: string;\r\n role: string;\r\n password: string;\r\n confirmPassword: string;\r\n token: string;\r\n managerId: number;\r\n visitorStatus:number;\r\n comment:string;\r\n constructor() {\r\n this.id = null;\r\n this.email = '';\r\n this.username = '';\r\n this.firstName = '';\r\n this.lastName = '';\r\n this.idCardNo = null;\r\n this.address = '';\r\n this.role = '';\r\n this.password = '';\r\n this.confirmPassword = '';\r\n this.token = '';\r\n this.managerId = null;\r\n this.visitorStatus=null;\r\n this.comment='';\r\n\r\n\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { IonModal, ModalController } from '@ionic/angular';\r\nimport { Subscription } from 'rxjs';\r\nimport { VisitorChild } from '../../../models/visitorChild';\r\nimport Keyboard from 'simple-keyboard';\r\n\r\n@Component({\r\n selector: 'app-add-child-modal',\r\n templateUrl: './add-child-modal.component.html',\r\n styleUrls: ['./add-child-modal.component.scss'],\r\n})\r\nexport class AddChildModalComponent implements OnInit {\r\n\r\n keyboard: Keyboard;\r\n inputName = \"fullName\";\r\n inputs = {\r\n fullName: \"\"\r\n };\r\n addedChild: VisitorChild;\r\n @ViewChild(IonModal) modal: IonModal;\r\n // date: string | any;\r\n // month: string | any;\r\n // year: string | any;\r\n // dateim: string | any;\r\n // monthsm: string | any;\r\n // yearsm: string | any;\r\n // namem: string | any;\r\n\r\n\r\n constructor(private modalController: ModalController) {\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n dismissModal() {\r\n this.modalController.dismiss(this.addedChild);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.keyboard = new Keyboard(\".simple-keyboard-modal\",{\r\n theme: \"simple-keyboard hg-theme-default hg-layout-default\",\r\n maxLength: {\r\n day: 2,\r\n month: 2,\r\n year: 4\r\n },\r\n inputName: this.inputName,\r\n onChange: (input) => this.onChange(input),\r\n onKeyPress: (button) => this.onKeyPress(button),\r\n preventMouseDownDefault: true // If you want to keep focus on input\r\n });\r\n\r\n /**\r\n * Since we have default values for our inputs,\r\n * we must sync them with simple-keyboard\r\n */\r\n this.keyboard.replaceInput(this.inputs);\r\n }\r\n\r\n onInputFocus = (event: any) => {\r\n this.inputName = event.target.id;\r\n\r\n console.log(\"Focused input\", this.inputName);\r\n\r\n this.keyboard.setOptions({\r\n inputName: event.target.id\r\n });\r\n };\r\n\r\n setInputCaretPosition = (elem: any, pos: number) => {\r\n if (elem.setSelectionRange) {\r\n elem.focus();\r\n elem.setSelectionRange(pos, pos);\r\n }\r\n };\r\n\r\n onInputChange = (event: any) => {\r\n this.keyboard.setInput(event.target.value, event.target.id);\r\n };\r\n\r\n onChange = (input: string) => {\r\n this.inputs[this.inputName] = input.toUpperCase();\r\n console.log(\"Input changed\", input);\r\n\r\n /**\r\n * Synchronizing input caret position\r\n * This part is optional and only relevant if using the option \"preventMouseDownDefault: true\"\r\n */\r\n let caretPosition = this.keyboard.caretPosition;\r\n\r\n if (caretPosition !== null)\r\n this.setInputCaretPosition(\r\n document.querySelector(`#${this.inputName}`),\r\n caretPosition\r\n );\r\n\r\n console.log(\"caretPosition\", caretPosition);\r\n };\r\n\r\n onKeyPress = (button: string) => {\r\n console.log(\"Button pressed\", button);\r\n\r\n /**\r\n * If you want to handle the shift and caps lock buttons\r\n */\r\n if (button === \"{shift}\" ) this.handleShift();\r\n };\r\n\r\n handleShift = () => {\r\n let currentLayout = this.keyboard.options.layoutName;\r\n let shiftToggle = currentLayout === \"default\" ? \"shift\" : \"default\";\r\n\r\n this.keyboard.setOptions({\r\n layoutName: shiftToggle\r\n });\r\n };\r\n\r\n addChild() {\r\n this.addedChild = new VisitorChild();\r\n this.addedChild.fullName = this.inputs.fullName;\r\n this.dismissModal();\r\n }\r\n\r\n cancel() {\r\n this.modalController.dismiss();\r\n }\r\n\r\n\r\n\r\n gotoNextField(nextElement) {\r\n nextElement.setFocus();\r\n }\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AccountService } from '../../../services/account.service';\r\nimport { LanguageService } from '../../../services/language.service';\r\n\r\n@Component({\r\n selector: 'app-start-layout',\r\n templateUrl: './start-layout.component.html',\r\n styleUrls: ['./start-layout.component.scss'],\r\n})\r\nexport class StartLayoutComponent implements OnInit {\r\n\r\n language$ = this.languageService.language$;\r\n language: string;\r\n\r\n constructor(private languageService: LanguageService, private accountService: AccountService, private router: Router) {}\r\n\r\n ngOnInit(): void {\r\n this.language$.subscribe(lng => this.language = lng.toUpperCase())\r\n }\r\n\r\n toggleLanguage() {\r\n this.language = this.language === 'EN' ? 'SR' : 'EN';\r\n this.languageService.setLanguage(this.language.toLowerCase());\r\n }\r\n\r\n isActivePage(pageName): boolean {\r\n const currentPath = window.location.href.split('/').pop();\r\n return currentPath.startsWith(pageName);\r\n }\r\n\r\n logout() {\r\n this.accountService.logout();\r\n this.router.navigateByUrl('/registration/login')\r\n }\r\n\r\n}\r\n","import { Component,ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IonModal, ModalController } from '@ionic/angular';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport domtoimage from 'dom-to-image';\r\nimport jsPDF from 'jspdf';\r\nimport SignaturePad from 'signature_pad';\r\nimport { Visitor } from '../models/visitor.model';\r\nimport { VisitorChild } from '../models/visitorChild';\r\nimport { LanguageService } from '../../services/language.service';\r\nimport { VisitorService } from '../services/visitor.service';\r\n\r\n@Component({\r\n selector: 'app-consent-group-visit',\r\n templateUrl: './consent-group-visit.component.html',\r\n styleUrls: ['./consent-group-visit.component.scss'],\r\n})\r\nexport class ConsentGroupVisitComponent implements OnInit {\r\n\r\n @ViewChild(IonModal) modal: IonModal;\r\n @ViewChild('canvas', { static: true }) signaturePadElement;\r\n @ViewChild('registerDoc')\r\n registerDoc!: ElementRef;\r\n @ViewChild('terms')\r\n terms!: ElementRef;\r\n @ViewChild('logo')\r\n logo!: ElementRef;\r\n @ViewChild('submitBtn')\r\n submitBtn!: ElementRef;\r\n @ViewChild('dateLabel')\r\n dateLabel!: ElementRef;\r\n @ViewChild('visitorForm')\r\n visitorForm!: ElementRef;\r\n language$ = this.languageService.language$;\r\n language: string;\r\n dateToday = new Date();\r\n areTermsRead: boolean = false;\r\n visitor: Visitor = new Visitor();\r\n isLoading = false;\r\n visitors: Array = [];\r\n isShow = false;\r\n isChildFormVisible = false;\r\n childEdit: VisitorChild;\r\n errMsg = '';\r\n private sub: any;\r\n id: any;\r\n\r\n constructor(private elementRef: ElementRef,\r\n private router: Router,\r\n private languageService: LanguageService,\r\n private visitorService: VisitorService,\r\n private notifierService: NotifierService,\r\n private modalController: ModalController, \r\n private route : ActivatedRoute) \r\n {\r\n this.sub = this.route\r\n .params\r\n .subscribe(params => {\r\n console.log(params);\r\n this.visitor = JSON.parse(params[\"visitor\"]);\r\n console.log(this.visitor);\r\n this.visitors = JSON.parse(params[\"visitors\"]);\r\n });\r\n }\r\n \r\n pagePath: string;\r\n signaturePad: any;\r\n isSignatured: boolean = false;\r\n ngOnInit() {\r\n this.language$.subscribe((lng) => (this.language = lng.toUpperCase()));\r\n this.pagePath = this.router.url;\r\n const canvas: any = this.elementRef.nativeElement.querySelector('canvas');\r\n canvas.width = 600;\r\n canvas.height = 180;\r\n if (this.signaturePad) {\r\n this.signaturePad.clear(); // Clear the pad on init\r\n }\r\n }\r\n\r\n toggleLanguage() {\r\n this.language = this.language === 'EN' ? 'SR' : 'EN';\r\n this.languageService.setLanguage(this.language.toLowerCase());\r\n }\r\n\r\n clear() {\r\n this.signaturePad.clear();\r\n this.isSignatured = false;\r\n }\r\n\r\n setIsSignatured() {\r\n this.isSignatured = true;\r\n }\r\n\r\n isCanvasBlank(): boolean {\r\n if (this.signaturePad) {\r\n return this.signaturePad.isEmpty() ? true : false;\r\n }\r\n }\r\n areFieldsPopulated(): boolean {\r\n return !!(\r\n this.isSignatured &&\r\n this.areTermsRead \r\n );\r\n }\r\n validateAddVisitor() {\r\n const user = this.visitor;\r\n let errMsg: string;\r\n if (!user.fullName) {\r\n errMsg = 'Unesite ime roditelja / staratelja.';\r\n // else if (!user.children) {\r\n // errMsg = 'Unesite ime korisnika.'; }\r\n } else if (!user.email) {\r\n errMsg = 'Unesite e-mail adresu.';\r\n } else if (!user.phone) {\r\n errMsg = 'Unesite broj telefona.';\r\n } else if (!user.address) {\r\n errMsg = 'Unesite adresu.';\r\n } else {\r\n errMsg = '';\r\n return { isValid: true, errMsg };\r\n }\r\n return { isValid: false, errMsg };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.signaturePad = new SignaturePad(\r\n this.signaturePadElement.nativeElement\r\n );\r\n this.signaturePad.clear();\r\n // mozemo dodatno smanjiti debljinu potpisa\r\n // this.signaturePad.minWidth = 1;\r\n // this.signaturePad.maxWidth = 1;\r\n this.signaturePad.penColor = 'rgb(56,128,255)';\r\n }\r\n\r\n \r\n\r\n async saveRegistration() {\r\n this.isLoading = true;\r\n const formValidation = this.validateAddVisitor();\r\n this.errMsg = formValidation.errMsg;\r\n if (formValidation.isValid) {\r\n const that = this;\r\n let div = this.registerDoc.nativeElement;\r\n let terms = this.terms.nativeElement;\r\n let logo = this.logo.nativeElement;\r\n let dateLabel = this.dateLabel.nativeElement;\r\n let submitBtn = this.submitBtn.nativeElement;\r\n dateLabel.style = 'display: block';\r\n submitBtn.style = 'visibility: hidden';\r\n //logo.style = 'top: 25px; left: -75px';\r\n let img: any;\r\n //--let filename;\r\n let newImage: any;\r\n\r\n domtoimage\r\n .toJpeg(div, { bgcolor: 'black' })\r\n .then(function(dataUrl) {\r\n img = new Image();\r\n img.src = dataUrl;\r\n newImage = img.src;\r\n img.onload = function() {\r\n const pdfWidth = img.width;\r\n const pdfHeight = img.height;\r\n\r\n // FileSaver.saveAs(dataUrl, 'my-pdfimage.png'); // Save as Image\r\n let doc: jsPDF;\r\n if (pdfWidth > pdfHeight) {\r\n doc = new jsPDF('l', 'px', [pdfWidth, pdfHeight]);\r\n } else {\r\n doc = new jsPDF('p', 'px', [pdfWidth, pdfHeight]);\r\n }\r\n\r\n const width = doc.internal.pageSize.getWidth();\r\n const height = doc.internal.pageSize.getHeight();\r\n\r\n doc.addImage(newImage, 'JPG', 10, 10, width, height);\r\n // filename = 'mypdf_' + '.pdf';\r\n // doc.save(filename);\r\n //terms.style = 'max-height: 250px; color: white; overflow:auto; opacity: 0.5; width: 586px;'\r\n submitBtn.style = 'visibility: visible';\r\n dateLabel.style = 'display: none';\r\n //logo.style = 'top: 130px; left: -217px';\r\n\r\n\r\n that.visitorService\r\n .saveGroupRegistration(that.visitor,that.visitors, doc.output('blob'))\r\n .subscribe(() => {\r\n that.isLoading = false;\r\n that.showSuccessAndRedirect();\r\n },\r\n error => {\r\n console.log('greska');\r\n console.log(error);\r\n that.showErrorAndRedirect(error);\r\n }\r\n );\r\n };\r\n })\r\n }\r\n }\r\n\r\n showErrorAndRedirect(error) {\r\n this.notifierService.show({\r\n message: '' + JSON.stringify(error.error.title),\r\n type: 'warning',\r\n });\r\n this.isLoading = false;\r\n }\r\n\r\n showSuccessAndRedirect() {\r\n this.notifierService.show({\r\n message: 'Grupna poseta uspešno registrovana!',\r\n type: 'success',\r\n });\r\n this.visitor = new Visitor();\r\n this.visitors = [];\r\n this.areTermsRead = false;\r\n this.signaturePad.clear();\r\n this.router.navigateByUrl('/registration/home');\r\n }\r\n \r\n\r\n\r\n\r\n}\r\n\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IonModal, ModalController } from '@ionic/angular';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { Visitor } from '../../models/visitor.model';\r\nimport { VisitorChild } from '../..//models/visitorChild';\r\nimport { LanguageService } from 'src/app/services/language.service';\r\nimport { VisitorService } from '../../services/visitor.service';\r\nimport domtoimage from 'dom-to-image';\r\nimport jsPDF from 'jspdf';\r\nimport SignaturePad from 'signature_pad';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-consent',\r\n templateUrl: './consent.component.html',\r\n styleUrls: ['./consent.component.scss'],\r\n})\r\nexport class ConsentComponent implements OnInit {\r\n @ViewChild(IonModal) modal: IonModal;\r\n @ViewChild('canvas', { static: true }) signaturePadElement;\r\n @ViewChild('registerDoc')\r\n registerDoc!: ElementRef;\r\n @ViewChild('terms')\r\n terms!: ElementRef;\r\n @ViewChild('logo')\r\n logo!: ElementRef;\r\n @ViewChild('submitBtn')\r\n submitBtn!: ElementRef;\r\n @ViewChild('dateLabel')\r\n dateLabel!: ElementRef;\r\n language$ = this.languageService.language$;\r\n language: string;\r\n dateToday = new Date();\r\n areTermsRead: boolean = false;\r\n visitor: Visitor = new Visitor();\r\n isLoading = false;\r\n visitors: Array = [];\r\n visitorsFormJson: Array = [];\r\n allVisitors: Array = [];\r\n isShow = false;\r\n isChildFormVisible = false;\r\n childEdit: VisitorChild;\r\n errMsg = '';\r\n private sub: any;\r\n id: any;\r\n combinedData: Array = [];\r\n\r\n\r\n constructor(private elementRef: ElementRef,\r\n private router: Router,\r\n private languageService: LanguageService,\r\n private visitorService: VisitorService,\r\n private notifierService: NotifierService,\r\n private modalController: ModalController,\r\n private route : ActivatedRoute,\r\n )\r\n {\r\n this.sub = this.route\r\n .params\r\n .subscribe(params => {\r\n this.visitor = JSON.parse(params[\"visitor\"]);\r\n this.visitorsFormJson = JSON.parse(params[\"visitorsFormJson\"]);\r\n // this.visitors = JSON.parse(params[\"visitors\"]);\r\n this.allVisitors.push(...this.visitorsFormJson);\r\n this.allVisitors.push(...this.visitors);\r\n });\r\n }\r\n\r\n pagePath: string;\r\n signaturePad: any;\r\n // isSignatured: boolean = false;\r\n ngOnInit() {\r\n\r\n this.language$.subscribe((lng) => (this.language = lng.toUpperCase()));\r\n this.pagePath = this.router.url;\r\n const canvas: any = this.elementRef.nativeElement.querySelector('canvas');\r\n canvas.width = 813;\r\n canvas.height = 242;\r\n if (this.signaturePad) {\r\n this.signaturePad.clear(); // Clear the pad on init\r\n }\r\n }\r\n \r\n\r\n resetNameControl() {\r\n this.visitor.fullName = '';\r\n this.visitor.phone = '';\r\n this.visitor.email = ''; \r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n toggleLanguage() {\r\n this.language = this.language === 'EN' ? 'SR' : 'EN';\r\n this.languageService.setLanguage(this.language.toLowerCase());\r\n }\r\n\r\n clear() {\r\n this.signaturePad.clear();\r\n // this.isSignatured = false;\r\n }\r\n\r\n // setIsSignatured() {\r\n // this.isSignatured = true;\r\n // }\r\n\r\n isCanvasBlank(): boolean {\r\n if (this.signaturePad) {\r\n return this.signaturePad.isEmpty() ? true : false;\r\n }\r\n }\r\n areFieldsPopulated(): boolean {\r\n return !!(\r\n // this.isSignatured &&\r\n this.areTermsRead\r\n );\r\n }\r\n validateAddVisitor() {\r\n const user = this.visitor;\r\n let errMsg: string;\r\n if (!user.fullName) {\r\n errMsg = 'Unesite ime roditelja / staratelja.';\r\n } else if (!user.phone) {\r\n errMsg = 'Unesite broj telefona.';\r\n } else {\r\n errMsg = '';\r\n return { isValid: true, errMsg };\r\n }\r\n return { isValid: false, errMsg };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.signaturePad = new SignaturePad(\r\n this.signaturePadElement.nativeElement\r\n );\r\n this.signaturePad.clear();\r\n // mozemo dodatno smanjiti debljinu potpisa\r\n // this.signaturePad.minWidth = 1;\r\n // this.signaturePad.maxWidth = 1;\r\n this.signaturePad.penColor = 'rgb(56,128,255)';\r\n }\r\n \r\n\r\n async saveVisitor() {\r\n this.isLoading = true;\r\n const formValidation = this.validateAddVisitor();\r\n this.errMsg = formValidation.errMsg;\r\n if (formValidation.isValid) {\r\n const that = this;\r\n let div = this.registerDoc.nativeElement;\r\n let terms = this.terms.nativeElement;\r\n let logo = this.logo.nativeElement;\r\n let dateLabel = this.dateLabel.nativeElement;\r\n let submitBtn = this.submitBtn.nativeElement;\r\n dateLabel.style = 'display: block';\r\n submitBtn.style = 'visibility: hidden';\r\n //logo.style = 'top: 25px; left: -75px';\r\n let img: any;\r\n //--let filename;\r\n let newImage: any;\r\n \r\n domtoimage\r\n .toJpeg(div, { bgcolor: 'black' })\r\n .then(function(dataUrl) {\r\n img = new Image();\r\n img.src = dataUrl;\r\n newImage = img.src;\r\n img.onload = function() {\r\n const pdfWidth = img.width;\r\n const pdfHeight = img.height;\r\n\r\n // FileSaver.saveAs(dataUrl, 'my-pdfimage.png'); // Save as Image\r\n let doc: jsPDF;\r\n if (pdfWidth > pdfHeight) {\r\n doc = new jsPDF('l', 'px', [pdfWidth, pdfHeight]);\r\n } else {\r\n doc = new jsPDF('p', 'px', [pdfWidth, pdfHeight]);\r\n }\r\n\r\n const width = doc.internal.pageSize.getWidth();\r\n const height = doc.internal.pageSize.getHeight();\r\n\r\n doc.addImage(newImage, 'JPG', 10, 10, width, height);\r\n // filename = 'mypdf_' + '.pdf';\r\n // doc.save(filename);\r\n //terms.style = 'max-height: 250px; color: white; overflow:auto; opacity: 0.5; width: 586px;'\r\n submitBtn.style = 'visibility: visible';\r\n dateLabel.style = 'display: none';\r\n //logo.style = 'top: 130px; left: -217px';\r\n that.visitorService\r\n .saveVisitor(that.visitor, that.allVisitors, doc.output('blob'))\r\n .subscribe(() => {\r\n \r\n that.resetNameControl();\r\n that.isLoading = false;\r\n that.showSuccessAndRedirect();\r\n },\r\n error => {\r\n console.log('greska');\r\n console.log(error);\r\n that.showErrorAndRedirect(error);\r\n }\r\n );\r\n };\r\n })\r\n }\r\n }\r\n showErrorAndRedirect(error) {\r\n this.notifierService.show({\r\n message: '' + JSON.stringify(error.error.title),\r\n type: 'warning',\r\n });\r\n this.isLoading = false;\r\n this.router.navigateByUrl('/registration/home');\r\n }\r\n\r\n showSuccessAndRedirect() {\r\n let message = '';\r\n if (this.language === 'SR') {\r\n message = 'Visit successfully registered!';\r\n } else {\r\n message = 'Poseta uspešno registrovana!';\r\n }\r\n this.notifierService.show({\r\n // eslint-disable-next-line object-shorthand\r\n message: message,\r\n type: 'success',\r\n });\r\n this.visitor = new Visitor();\r\n this.visitors = [];\r\n this.visitorsFormJson = [];\r\n \r\n this.areTermsRead = false;\r\n this.signaturePad.clear();\r\n this.router.navigateByUrl('/registration/home');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AccountService } from '../../services/account.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class RegistrationAdminGuard implements CanActivate {\r\n\r\n constructor(private accountService: AccountService, private route: Router) {}\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): boolean | UrlTree | Observable | Promise {\r\n return this.accountService.currentUser$.pipe(map(user => {\r\n if(user) {\r\n return true;\r\n } else {\r\n this.route.navigate(['/registration/login']);\r\n return false;\r\n }\r\n }))\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AccountService } from '../../services/account.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class RegistrationLoggedInGuard implements CanActivate {\r\n\r\n constructor(private accountService: AccountService, private route: Router) {}\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): boolean | UrlTree | Observable | Promise {\r\n return this.accountService.currentUser$.pipe(map(user => {\r\n if (user && (this.accountService.isAdminWithoutRoom() && !sessionStorage.selectedRoom)) {\r\n this.route.navigate(['/registration/select-room']);\r\n return false;\r\n } else if(user) {\r\n return true;\r\n } else {\r\n this.route.navigate(['/registration/login']);\r\n return false;\r\n }\r\n }))\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AccountService } from '../../services/account.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class RegistrationLoggedOutGuard implements CanActivate {\r\n\r\n constructor(private accountService: AccountService, private route: Router) {}\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): boolean | UrlTree | Observable | Promise {\r\n return this.accountService.currentUser$.pipe(map(user => {\r\n if (user) {\r\n this.route.navigate(['/registration/home']);\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }))\r\n }\r\n}\r\n","import { VisitorChild } from \"./visitorChild\";\r\n\r\nexport class Visitor {\r\n fullName: string;\r\n email: string;\r\n phone: string;\r\n address: string;\r\n city:string;\r\n roomId: number;\r\n numberOfVisit: number;\r\n \r\n constructor() {\r\n this.fullName = '';\r\n this.email = '';\r\n this.phone = '';\r\n this.address = '';\r\n this.city ='';\r\n }\r\n}\r\n","export class VisitorChild {\r\n\r\n fullName: string | any;\r\n\r\n\r\n constructor() {\r\n this.fullName = '';\r\n }\r\n}\r\n","import { Component, ElementRef, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport SignaturePad from 'signature_pad';\r\nimport { LanguageService } from '../../../services/language.service';\r\nimport domtoimage from 'dom-to-image';\r\nimport jsPDF from 'jspdf';\r\nimport { Visitor } from '../../models/visitor.model';\r\nimport { VisitorService } from '../../services/visitor.service';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { VisitorChild } from '../../models/visitorChild';\r\nimport { AddChildModalComponent } from '../../components/modals/add-child-modal/add-child-modal.component';\r\nimport { IonModal, ModalController } from '@ionic/angular';\r\n\r\n@Component({\r\n selector: 'app-group-registration',\r\n templateUrl: './group-registration.page.html',\r\n styleUrls: ['./group-registration.page.scss'],\r\n})\r\nexport class GroupRegistrationPage {\r\n @ViewChild('canvas', { static: true }) signaturePadElement;\r\n @ViewChild('registerDoc')\r\n registerDoc!: ElementRef;\r\n @ViewChild('terms')\r\n terms!: ElementRef;\r\n @ViewChild('visitorForm')\r\n visitorForm!: ElementRef;\r\n @ViewChild('dateLabel')\r\n dateLabel!: ElementRef;\r\n language$ = this.languageService.language$;\r\n language: string;\r\n dateToday = new Date();\r\n errMsg = '';\r\n areTermsRead: boolean = false;\r\n visitor: Visitor = new Visitor();\r\n isLoading = false;\r\n visitors: Array = [];\r\n childEdit: VisitorChild;\r\n // isShow = true;\r\n routerSubscription;\r\n date: string | any;\r\n month: string = ''\r\n year: string = '';\r\n datei: string | any;\r\n months: string | any;\r\n years: string | any;\r\n telephoneG: string | any;\r\n emailg: string | any;\r\n addressg: string | any;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private router: Router,\r\n private languageService: LanguageService,\r\n private visitorService: VisitorService,\r\n private notifierService: NotifierService,\r\n private modalController: ModalController\r\n ) {\r\n this.childEdit = new VisitorChild();\r\n\r\n this.childEdit = new VisitorChild();\r\n this.routerSubscription = this.router.events.subscribe((route: any) => {\r\n // clear data once we redirect to home\r\n if(route.url === '/registration/home') {\r\n this.visitor = new Visitor();\r\n this.visitors = [];\r\n this.date = '';\r\n this.month = '';\r\n this.year = '';\r\n }\r\n })\r\n }\r\n\r\n pagePath: string;\r\n signaturePad: any;\r\n isSignatured: boolean = false;\r\n\r\n ngOnInit() {\r\n this.visitor = new Visitor();\r\n this.language$.subscribe((lng) => (this.language = lng.toUpperCase()));\r\n this.pagePath = this.router.url;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.routerSubscription.unsubscribe();\r\n }\r\n\r\n toggleLanguage() {\r\n this.language = this.language === 'EN' ? 'SR' : 'EN';\r\n this.languageService.setLanguage(this.language.toLowerCase());\r\n }\r\n\r\n clear() {\r\n this.signaturePad.clear();\r\n this.isSignatured = false;\r\n }\r\n\r\n setIsSignatured() {\r\n this.isSignatured = true;\r\n }\r\n\r\n isCanvasBlank(): boolean {\r\n if (this.signaturePad) {\r\n return this.signaturePad.isEmpty() ? true : false;\r\n }\r\n }\r\n\r\n showSuccessAndRedirect() {\r\n this.notifierService.show({\r\n message: 'Poseta uspešno registrovana!',\r\n type: 'success',\r\n });\r\n this.visitor = new Visitor();\r\n this.visitors = [];\r\n this.areTermsRead = false;\r\n this.signaturePad.clear();\r\n this.router.navigateByUrl('/registration/home');\r\n }\r\n\r\n areFieldsPopulated(): boolean {\r\n const v = this.visitor;\r\n return !!(\r\n this.isSignatured &&\r\n this.areTermsRead &&\r\n v.fullName &&\r\n v.address &&\r\n v.city &&\r\n v.email &&\r\n v.phone &&\r\n this.date &&\r\n this.month &&\r\n this.year\r\n );\r\n }\r\n\r\n validateAddVisitor() {\r\n const user = this.visitor;\r\n let errMsg: string;\r\n if (!user.fullName) {\r\n errMsg = 'Unesite ime roditelja / staratelja.';\r\n }\r\n // else if (!user.children) {\r\n // errMsg = 'Unesite ime korisnika.'; }\r\n else if (!user.email) {\r\n errMsg = 'Unesite e-mail adresu.';\r\n } else if (!user.phone) {\r\n errMsg = 'Unesite broj telefona.';\r\n } else if (!user.address) {\r\n errMsg = 'Unesite adresu.';\r\n } else if (!user.city) {\r\n errMsg = 'Unesite grad.';\r\n } \r\n else {\r\n errMsg = '';\r\n return { isValid: true, errMsg };\r\n }\r\n return { isValid: false, errMsg };\r\n }\r\n\r\n areFirstFieldsPopulated(): boolean {\r\n const v = this.visitor;\r\n return !!(\r\n v.fullName &&\r\n v.address &&\r\n v.city &&\r\n v.email &&\r\n v.phone &&\r\n this.date &&\r\n this.month &&\r\n this.year \r\n );\r\n }\r\n\r\n resetForm(i) {\r\n this.visitors.splice(i,1);\r\n }\r\n\r\n async toggleDisplay() {\r\n \r\n // this.toggleDisplay2();\r\n const modal = await this.modalController.create({\r\n component: AddChildModalComponent,\r\n componentProps: {childEdit : this.childEdit, visitors:this.visitors},\r\n cssClass: 'basic-modal-css',\r\n backdropDismiss: true,\r\n swipeToClose: false,\r\n });\r\n\r\n modal.onDidDismiss()\r\n .then((data) => {\r\n const child:VisitorChild = data['data'];\r\n if(child!=null)\r\n this.visitors.push(child);\r\n });\r\n this.childEdit.fullName='';\r\n await modal.present();\r\n }\r\n\r\n goToOtherPage() {\r\n const formValidation = this.validateAddVisitor();\r\n this.errMsg = formValidation.errMsg;\r\n \r\n let visitorJson = JSON.stringify(this.visitor);\r\n let visitorsJson = JSON.stringify(this.visitors);\r\n if (formValidation.isValid) {\r\n this.router.navigate(['/registration/consent-group-visit', {visitor:visitorJson, visitors:visitorsJson}]);\r\n }\r\n}\r\n\r\n\r\n\r\n gotoNextField(nextElement){\r\n nextElement.setFocus();\r\n }\r\n \r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AccountService } from '../../../services/account.service';\r\n\r\n@Component({\r\n selector: 'app-landing-page',\r\n templateUrl: './landing.page.html',\r\n styleUrls: ['./landing.page.scss'],\r\n})\r\n\r\nexport class LandingPage implements OnInit {\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AccountService } from '../../../services/account.service';\r\n@Component({\r\n selector: 'app-login-page',\r\n templateUrl: './login.page.html',\r\n styleUrls: ['./login.page.scss'],\r\n})\r\n\r\nexport class RegistrationLoginPage implements OnInit {\r\n user: any = {\r\n username: '',\r\n password: ''\r\n }\r\n err: string;\r\n\r\n constructor(public accountService: AccountService, private router: Router, private translate: TranslateService) {}\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n ionViewDidEnter(){\r\n this.clearForm();\r\n this.clearErr();\r\n }\r\n\r\n clearForm(){\r\n this.user.username = '';\r\n this.user.password = '';\r\n }\r\n\r\n clearErr(){\r\n this.err = '';\r\n }\r\n\r\n login(){\r\n this.accountService.login(this.user).subscribe(res => {\r\n if(this.accountService.isAdminWithoutRoom()) {\r\n this.router.navigateByUrl('/registration/select-room');\r\n } else {\r\n this.router.navigateByUrl('/registration/home');\r\n }\r\n },error =>{\r\n this.err = this.translate.instant('LOGIN.bad_login')\r\n console.log(error);\r\n })\r\n }\r\n}","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport jsPDF from 'jspdf';\r\nimport SignaturePad from 'signature_pad';\r\nimport { Visitor } from 'src/app/registration/models/visitor.model';\r\nimport { VisitorChild } from 'src/app/registration/models/visitorChild';\r\nimport { VisitorService } from 'src/app/registration/services/visitor.service';\r\nimport { LanguageService } from 'src/app/services/language.service';\r\nimport domtoimage from 'dom-to-image';\r\nimport { NotifierService } from 'angular-notifier';\r\n\r\n\r\n@Component({\r\n selector: 'app-online-consent',\r\n templateUrl: './online-consent.component.html',\r\n styleUrls: ['./online-consent.component.scss'],\r\n})\r\nexport class OnlineConsentComponent implements OnInit {\r\n @ViewChild('canvas', { static: true }) signaturePadElement;\r\n @ViewChild('registerDoc')\r\n registerDoc!: ElementRef;\r\n @ViewChild('terms')\r\n terms!: ElementRef;\r\n @ViewChild('logo')\r\n logo!: ElementRef;\r\n @ViewChild('submitBtn')\r\n submitBtn!: ElementRef;\r\n @ViewChild('dateLabel')\r\n dateLabel!: ElementRef;\r\n language$ = this.languageService.language$;\r\n language: string;\r\n dateToday = new Date();\r\n areTermsRead: boolean = false;\r\n visitor: Visitor = new Visitor();\r\n isLoading = false;\r\n visitors: Array = [];\r\n visitorsFormJson: Array = [];\r\n allVisitors: Array = [];\r\n isShow = false;\r\n isChildFormVisible = false;\r\n childEdit: VisitorChild;\r\n errMsg = '';\r\n private sub: any;\r\n id: any;\r\n combinedData: Array = [];\r\n\r\n\r\n constructor(private elementRef: ElementRef,\r\n private router: Router,\r\n private languageService: LanguageService,\r\n private visitorService: VisitorService,\r\n private notifierService: NotifierService,\r\n private route : ActivatedRoute,\r\n )\r\n {\r\n this.sub = this.route\r\n .params\r\n .subscribe(params => {\r\n this.visitor = JSON.parse(params[\"visitor\"]);\r\n this.visitorsFormJson = JSON.parse(params[\"visitorsFormJson\"]);\r\n this.allVisitors.push(...this.visitorsFormJson);\r\n this.allVisitors.push(...this.visitors);\r\n });\r\n }\r\n\r\n pagePath: string;\r\n signaturePad: any;\r\n // isSignatured: boolean = false;\r\n \r\n ngOnInit() {\r\n this.language$.subscribe((lng) => (this.language = lng.toUpperCase()));\r\n this.pagePath = this.router.url;\r\n const canvas: any = this.elementRef.nativeElement.querySelector('canvas');\r\n \r\n if (window.innerWidth <= 1200) {\r\n canvas.width = 350;\r\n canvas.height = 200;\r\n } else {\r\n canvas.width = 700;\r\n canvas.height = 231;\r\n }\r\n \r\n if (this.signaturePad) {\r\n this.signaturePad.clear(); // Clear the pad on init\r\n }\r\n }\r\n \r\n\r\n resetNameControl() {\r\n this.visitor.fullName = '';\r\n this.visitor.phone = '';\r\n this.visitor.email = ''; \r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n toggleLanguage() {\r\n this.language = this.language === 'EN' ? 'SR' : 'EN';\r\n this.languageService.setLanguage(this.language.toLowerCase());\r\n }\r\n\r\n clear() {\r\n this.signaturePad.clear();\r\n }\r\n\r\n isCanvasBlank(): boolean {\r\n if (this.signaturePad) {\r\n return this.signaturePad.isEmpty() ? true : false;\r\n }\r\n }\r\n areFieldsPopulated(): boolean {\r\n return !!(\r\n this.areTermsRead\r\n );\r\n }\r\n validateAddVisitor() {\r\n const user = this.visitor;\r\n let errMsg: string;\r\n if (!user.fullName) {\r\n errMsg = 'Unesite ime roditelja / staratelja.';\r\n } else if (!user.phone) {\r\n errMsg = 'Unesite broj telefona.';\r\n } else {\r\n errMsg = '';\r\n return { isValid: true, errMsg };\r\n }\r\n return { isValid: false, errMsg };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.signaturePad = new SignaturePad(\r\n this.signaturePadElement.nativeElement\r\n );\r\n this.signaturePad.clear();\r\n // mozemo dodatno smanjiti debljinu potpisa\r\n // this.signaturePad.minWidth = 1;\r\n // this.signaturePad.maxWidth = 1;\r\n this.signaturePad.penColor = 'rgb(56,128,255)';\r\n }\r\n \r\n async saveVisitor() {\r\n this.isLoading = true;\r\n const formValidation = this.validateAddVisitor();\r\n this.errMsg = formValidation.errMsg;\r\n if (formValidation.isValid) {\r\n const that = this;\r\n let div = this.registerDoc.nativeElement;\r\n let terms = this.terms.nativeElement;\r\n let logo = this.logo.nativeElement;\r\n let dateLabel = this.dateLabel.nativeElement;\r\n let submitBtn = this.submitBtn.nativeElement;\r\n dateLabel.style = 'display: block';\r\n submitBtn.style = 'visibility: hidden';\r\n //logo.style = 'top: 25px; left: -75px';\r\n let img: any;\r\n //--let filename;\r\n let newImage: any;\r\n \r\n domtoimage\r\n .toJpeg(div, { bgcolor: 'black' })\r\n .then(function(dataUrl) {\r\n img = new Image();\r\n img.src = dataUrl;\r\n newImage = img.src;\r\n img.onload = function() {\r\n const pdfWidth = img.width;\r\n const pdfHeight = img.height;\r\n\r\n // FileSaver.saveAs(dataUrl, 'my-pdfimage.png'); // Save as Image\r\n let doc: jsPDF;\r\n if (pdfWidth > pdfHeight) {\r\n doc = new jsPDF('l', 'px', [pdfWidth, pdfHeight]);\r\n } else {\r\n doc = new jsPDF('p', 'px', [pdfWidth, pdfHeight]);\r\n }\r\n\r\n const width = doc.internal.pageSize.getWidth();\r\n const height = doc.internal.pageSize.getHeight();\r\n\r\n doc.addImage(newImage, 'JPG', 10, 10, width, height);\r\n // filename = 'mypdf_' + '.pdf';\r\n // doc.save(filename);\r\n //terms.style = 'max-height: 250px; color: white; overflow:auto; opacity: 0.5; width: 586px;'\r\n submitBtn.style = 'visibility: visible';\r\n dateLabel.style = 'display: none';\r\n //logo.style = 'top: 130px; left: -217px';\r\n that.visitorService\r\n .saveVisitor(that.visitor, that.allVisitors, doc.output('blob'))\r\n .subscribe(() => {\r\n \r\n that.resetNameControl();\r\n that.isLoading = false;\r\n that.showSuccessAndRedirect();\r\n },\r\n error => {\r\n console.log('greska');\r\n console.log(error);\r\n that.showErrorAndRedirect(error);\r\n }\r\n );\r\n };\r\n })\r\n }\r\n }\r\n showErrorAndRedirect(error) {\r\n this.notifierService.show({\r\n message: '' + JSON.stringify(error.error.title),\r\n type: 'warning',\r\n });\r\n this.isLoading = false;\r\n this.router.navigateByUrl('/registration/online-registration');\r\n }\r\n\r\n showSuccessAndRedirect() {\r\n let message = '';\r\n if (this.language === 'SR') {\r\n message = 'Visit successfully registered!';\r\n } else {\r\n message = 'Poseta uspešno registrovana!';\r\n }\r\n this.notifierService.show({\r\n // eslint-disable-next-line object-shorthand\r\n message: message,\r\n type: 'success',\r\n });\r\n this.visitor = new Visitor();\r\n this.visitors = [];\r\n this.visitorsFormJson = [];\r\n \r\n this.areTermsRead = false;\r\n this.signaturePad.clear();\r\n this.router.navigateByUrl('/registration/home');\r\n this.router.navigateByUrl('/registration/online-registration');\r\n }\r\n}\r\n","import { Component, ElementRef, ViewChild, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { IonModal, NavController } from '@ionic/angular';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { Location } from '@angular/common';\r\nimport Keyboard from 'simple-keyboard';\r\nimport { NavigationExtras } from '@angular/router';\r\nimport { VisitorChild } from 'src/app/registration/models/visitorChild';\r\nimport { Visitor } from 'src/app/registration/models/visitor.model';\r\nimport { LanguageService } from 'src/app/services/language.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-online-registration',\r\n templateUrl: './online-registration.component.html',\r\n styleUrls: ['./online-registration.component.scss'],\r\n})\r\nexport class OnlineRegistrationComponent implements OnInit {\r\n inputName = \"fullName\";\r\n inputs = {\r\n fullName: \"\",\r\n ['fullNameChild1']:\"\",\r\n phone:\"\",\r\n email: \"\",\r\n };\r\n addedChild: VisitorChild;\r\n language$ = this.languageService.language$;\r\n language: string;\r\n dateToday = new Date();\r\n errMsg = '';\r\n areTermsRead: boolean = false;\r\n visitor: Visitor = new Visitor();\r\n isLoading = false;\r\n visitors: Array = [];\r\n visitorsRegisterForm: Array = [];\r\n childrenForm: Array = [];\r\n isShow = false;\r\n isChildFormVisible = false;\r\n childEdit: VisitorChild;\r\n routerSubscription;\r\n children: { fullName: string }[] = [{ fullName: '' }];\r\n \r\n\r\n constructor(\r\n private router: Router,\r\n private languageService: LanguageService,\r\n private notifierService: NotifierService,\r\n private modalController: ModalController,\r\n private location: Location,\r\n )\r\n {\r\n this.childEdit = new VisitorChild();\r\n this.routerSubscription = this.router.events.subscribe((route: any) => {\r\n // clear data once we redirect to home\r\n if(route.url === '/registration/home') {\r\n this.visitor = new Visitor();\r\n this.visitors = [];\r\n this. visitorsRegisterForm = [];\r\n this.inputs.fullName =\"\";\r\n for (let i = 1; i <= this.children.length; i++) {\r\n const inputKey = 'fullNameChild' + i;\r\n this.inputs[inputKey] = \"\";\r\n }\r\n this.inputs.phone = \"\";\r\n this.inputs.email = \"\";\r\n }\r\n })\r\n }\r\n\r\n pagePath: string;\r\n signaturePad: any;\r\n isSignatured: boolean = false;\r\n\r\n ngOnInit() {\r\n this.visitor = new Visitor();\r\n this.language$.subscribe((lng) => (this.language = lng.toUpperCase()));\r\n this.pagePath = this.router.url;\r\n this.inputs[this.inputName] = \"\";\r\n }\r\n toggleDisplay() {\r\n this.visitors.push({\r\n fullName: '',\r\n });\r\n}\r\n ngOnDestroy() {\r\n this.routerSubscription.unsubscribe();\r\n }\r\n\r\n toggleLanguage() {\r\n this.language = this.language === 'EN' ? 'SR' : 'EN';\r\n this.languageService.setLanguage(this.language.toLowerCase());\r\n }\r\n\r\n clear() {\r\n this.signaturePad.clear();\r\n this.isSignatured = false;\r\n \r\n }\r\n\r\n setIsSignatured() {\r\n this.isSignatured = true;\r\n }\r\n\r\n isCanvasBlank(): boolean {\r\n if (this.signaturePad) {\r\n return this.signaturePad.isEmpty() ? true : false;\r\n }\r\n }\r\n\r\n showErrorAndRedirect(error) {\r\n this.notifierService.show({\r\n message: '' + JSON.stringify(error.error.title),\r\n type: 'warning',\r\n });\r\n this.isLoading = false;\r\n }\r\n\r\n showSuccessAndRedirect() {\r\n this.notifierService.show({\r\n message: 'Poseta uspešno registrovana!',\r\n type: 'success',\r\n });\r\n this.visitor = new Visitor();\r\n this.visitors = [];\r\n this.areTermsRead = false;\r\n this.signaturePad.clear();\r\n this.router.navigateByUrl('/registration/online-registration');\r\n }\r\n\r\n areFirstFieldsPopulated(): boolean {\r\n const hasChild1 = !!this.inputs['fullNameChild1'];\r\n const isChild1Valid = !!this.inputs['fullNameChild1'];\r\n \r\n const isPhoneValid = !!this.inputs.phone && !isNaN(Number(this.inputs.phone)) && this.inputs.phone.length >= 9;\r\n \r\n return !!(this.inputs.fullName&& isPhoneValid && (!hasChild1 || isChild1Valid));\r\n }\r\n\r\n goToOtherPage() {\r\n this.fillVisitorData();\r\n \r\n const newChildren = [];\r\n for (let i = 0; i < this.children.length; i++) {\r\n const inputKey = 'fullNameChild' + (i + 1);\r\n const childFullName = this.inputs[inputKey];\r\n if (childFullName) {\r\n newChildren.push({\r\n fullName: childFullName\r\n });\r\n }\r\n }\r\n \r\n this.visitorsRegisterForm = newChildren;\r\n \r\n console.log(this.visitorsRegisterForm);\r\n \r\n let visitorJson = JSON.stringify(this.visitor);\r\n let visitorsFormJson = JSON.stringify(this.visitorsRegisterForm);\r\n \r\n this.router.navigate(['/registration/online-consent', { visitor: visitorJson, visitorsFormJson }]);\r\n }\r\n \r\n addChildIfNotExists(name, inputName) {\r\n if (name) {\r\n const existingChild = this.visitorsRegisterForm.find(child => child.fullName === name);\r\n \r\n if (!existingChild) {\r\n this.visitorsRegisterForm.push({ fullName: name });\r\n }\r\n }\r\n }\r\n \r\nhasVisitor(name) {\r\n return this.visitorsRegisterForm.some(visitor => visitor.fullName === name);\r\n}\r\n\r\n resetForm(i) {\r\n this.visitors.splice(i,1);\r\n }\r\n\r\n fillVisitorData() {\r\n this.visitor.fullName = this.inputs.fullName;\r\n this.visitor.phone = this.inputs.phone;\r\n this.visitor.email = this.inputs.email;\r\n }\r\n\r\n addInputField() {\r\n if (this.children.length < 100) {\r\n const newChildFullName = `fullNameChild${this.children.length +0}`;\r\n this.children.push({fullName:''});\r\n }\r\n }\r\n\r\n removeInputField(index: number) {\r\n if (index >= 0 && index < this.children.length) {\r\n const childFullNameToRemove = `fullNameChild${index + 1}`;\r\n delete this.inputs[childFullNameToRemove]; \r\n this.children.splice(index, 1);\r\n }\r\n }\r\n\r\n gotoNextField(nextElement){\r\n nextElement.setFocus();\r\n }\r\n\r\n addChild() {\r\n this.addedChild = new VisitorChild();\r\n this.addedChild.fullName = this.inputs.fullName;\r\n }\r\n\r\n shouldEnableField(index: number): boolean {\r\n return !this.inputs['fullNameChild' + (index + 1)] || this.inputs['fullNameChild' + (index + 1)].trim() === '';\r\n }\r\n \r\n areNamesValid(): boolean {\r\n for (let i = 0; i < this.children.length; i++) {\r\n const inputName = this.inputs['fullNameChild' + (i + 1)];\r\n if (inputName && !/^[a-zA-Z]+\\s[a-zA-Z ]+$/.test(inputName)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n } \r\n\r\n resetPage() {\r\n this.childEdit = new VisitorChild();\r\n this.visitor = new Visitor();\r\n this.visitors = [];\r\n this. visitorsRegisterForm = [];\r\n this.inputs.fullName =\"\";\r\n for (let i = 1; i <= this.children.length; i++) {\r\n const inputKey = 'fullNameChild' + i;\r\n this.inputs[inputKey] = \"\";\r\n }\r\n this.inputs.phone = \"\";\r\n this.inputs.email = \"\";\r\n \r\n \r\n \r\n }\r\n \r\n \r\n}\r\n\r\n","/* eslint-disable no-var */\r\nimport { Component, ElementRef, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LanguageService } from '../../../services/language.service';\r\nimport { Visitor } from '../../models/visitor.model';\r\nimport { NotifierService } from 'angular-notifier';\r\nimport { VisitorChild } from '../../models/visitorChild';\r\nimport { IonModal, NavController } from '@ionic/angular';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { AddChildModalComponent } from '../../components/modals/add-child-modal/add-child-modal.component';\r\nimport Keyboard from 'simple-keyboard';\r\nimport { NavigationExtras } from '@angular/router';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-register-page',\r\n templateUrl: './register.page.html',\r\n styleUrls: ['./register.page.scss'],\r\n})\r\nexport class RegisterPage {\r\n keyboard: Keyboard;\r\n inputName = \"fullName\";\r\n inputs = {\r\n fullName: \"\",\r\n ['fullNameChild1']:\"\",\r\n phone:\"\",\r\n email: \"\",\r\n };\r\n addedChild: VisitorChild;\r\n language$ = this.languageService.language$;\r\n language: string;\r\n dateToday = new Date();\r\n errMsg = '';\r\n areTermsRead: boolean = false;\r\n visitor: Visitor = new Visitor();\r\n isLoading = false;\r\n visitors: Array = [];\r\n visitorsRegisterForm: Array = [];\r\n childrenForm: Array = [];\r\n isShow = false;\r\n isChildFormVisible = false;\r\n childEdit: VisitorChild;\r\n routerSubscription;\r\n children: { fullName: string }[] = [{ fullName: '' }];\r\n \r\n\r\n constructor(\r\n private router: Router,\r\n private languageService: LanguageService,\r\n private notifierService: NotifierService,\r\n private modalController: ModalController,\r\n )\r\n {\r\n this.childEdit = new VisitorChild();\r\n this.routerSubscription = this.router.events.subscribe((route: any) => {\r\n // clear data once we redirect to home\r\n if(route.url === '/registration/home') {\r\n this.visitor = new Visitor();\r\n this.visitors = [];\r\n this. visitorsRegisterForm = [];\r\n this.children = [];\r\n this.inputs.fullName =\"\";\r\n this.inputs['fullNameChild']=\"\";\r\n this.inputs.phone = \"\";\r\n this.inputs.email = \"\";\r\n window.location.reload();\r\n }\r\n })\r\n }\r\n\r\n pagePath: string;\r\n signaturePad: any;\r\n isSignatured: boolean = false;\r\n\r\n ngOnInit() {\r\n this.visitor = new Visitor();\r\n this.language$.subscribe((lng) => (this.language = lng.toUpperCase()));\r\n this.pagePath = this.router.url;\r\n this.inputs[this.inputName] = \"\";\r\n }\r\n toggleDisplay() {\r\n this.visitors.push({\r\n fullName: '',\r\n });\r\n}\r\n ngOnDestroy() {\r\n this.routerSubscription.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.keyboard = new Keyboard({\r\n inputName: this.inputName,\r\n \r\n \r\n onChange: (input) => this.onChange(input),\r\n onKeyPress: (button) => this.onKeyPress(button),\r\n preventMouseDownDefault: true // If you want to keep focus on input\r\n \r\n });\r\n /**\r\n * Since we have default values for our inputs,\r\n * we must sync them with simple-keyboard\r\n */\r\n \r\n this.keyboard.replaceInput(this.inputs);\r\n \r\n }\r\n\r\n onInputFocus = (event: any) => {\r\n this.inputName = event.target.id;\r\n \r\n\r\n console.log(\"Focused input\", this.inputName);\r\n\r\n this.keyboard.setOptions({\r\n inputName: event.target.id\r\n });\r\n };\r\n\r\n setInputCaretPosition = (elem: any, pos: number) => {\r\n if (elem.setSelectionRange) {\r\n elem.focus();\r\n elem.setSelectionRange(pos, pos);\r\n }\r\n };\r\n\r\n onInputChange = (event: any) => {\r\n this.keyboard.setInput(event.target.value, event.target.id);\r\n \r\n };\r\n\r\n onChange = (input: string) => {\r\n this.inputs[this.inputName] = input.toUpperCase();\r\n \r\n console.log(\"Input changed\", input);\r\n \r\n /**\r\n * Synchronizing input caret position\r\n * This part is optional and only relevant if using the option \"preventMouseDownDefault: true\"\r\n */\r\n let caretPosition = this.keyboard.caretPosition;\r\n\r\n if (caretPosition !== null)\r\n this.setInputCaretPosition(\r\n document.querySelector(`#${this.inputName}`),\r\n caretPosition\r\n );\r\n\r\n console.log(\"caretPosition\", caretPosition);\r\n \r\n };\r\n \r\n onKeyPress = (button: string) => {\r\n console.log(\"Button pressed\", button);\r\n \r\n /**\r\n * If you want to handle the shift and caps lock buttons\r\n */\r\n if (button === \"{shift}\") this.handleShift();\r\n };\r\n\r\n handleShift = () => {\r\n let currentLayout = this.keyboard.options.layoutName;\r\n let shiftToggle = currentLayout === \"default\" ? \"shift\" : \"default\";\r\n\r\n this.keyboard.setOptions({\r\n layoutName: shiftToggle\r\n });\r\n };\r\n\r\n toggleLanguage() {\r\n this.language = this.language === 'EN' ? 'SR' : 'EN';\r\n this.languageService.setLanguage(this.language.toLowerCase());\r\n }\r\n\r\n clear() {\r\n this.signaturePad.clear();\r\n this.isSignatured = false;\r\n \r\n }\r\n\r\n setIsSignatured() {\r\n this.isSignatured = true;\r\n }\r\n\r\n isCanvasBlank(): boolean {\r\n if (this.signaturePad) {\r\n return this.signaturePad.isEmpty() ? true : false;\r\n }\r\n }\r\n\r\n showErrorAndRedirect(error) {\r\n this.notifierService.show({\r\n message: '' + JSON.stringify(error.error.title),\r\n type: 'warning',\r\n });\r\n this.isLoading = false;\r\n }\r\n\r\n showSuccessAndRedirect() {\r\n this.notifierService.show({\r\n message: 'Poseta uspešno registrovana!',\r\n type: 'success',\r\n });\r\n this.visitor = new Visitor();\r\n this.visitors = [];\r\n this.areTermsRead = false;\r\n this.signaturePad.clear();\r\n this.router.navigateByUrl('/registration/home');\r\n }\r\n\r\n areFirstFieldsPopulated(): boolean {\r\n const hasChild1 = !!this.inputs['fullNameChild1'];\r\n const isChild1Valid = !!this.inputs['fullNameChild1'];\r\n \r\n const isPhoneValid = !!this.inputs.phone && !isNaN(Number(this.inputs.phone)) && this.inputs.phone.length >= 9;\r\n \r\n return !!(this.inputs.fullName&& isPhoneValid && (!hasChild1 || isChild1Valid));\r\n }\r\n\r\n goToOtherPage() {\r\n this.fillVisitorData();\r\n \r\n const newChildren = [];\r\n for (let i = 0; i < this.children.length; i++) {\r\n const inputKey = 'fullNameChild' + (i + 1);\r\n const childFullName = this.inputs[inputKey];\r\n if (childFullName) {\r\n newChildren.push({\r\n fullName: childFullName\r\n });\r\n }\r\n }\r\n \r\n this.visitorsRegisterForm = newChildren;\r\n \r\n console.log(this.visitorsRegisterForm);\r\n \r\n let visitorJson = JSON.stringify(this.visitor);\r\n let visitorsFormJson = JSON.stringify(this.visitorsRegisterForm);\r\n \r\n this.router.navigate(['/registration/consent', { visitor: visitorJson, visitorsFormJson }]);\r\n }\r\n \r\n addChildIfNotExists(name, inputName) {\r\n if (name) {\r\n const existingChild = this.visitorsRegisterForm.find(child => child.fullName === name);\r\n \r\n if (!existingChild) {\r\n this.visitorsRegisterForm.push({ fullName: name });\r\n }\r\n }\r\n }\r\n \r\nhasVisitor(name) {\r\n return this.visitorsRegisterForm.some(visitor => visitor.fullName === name);\r\n}\r\n\r\n resetForm(i) {\r\n this.visitors.splice(i,1);\r\n }\r\n\r\n fillVisitorData() {\r\n this.visitor.fullName = this.inputs.fullName;\r\n this.visitor.phone = this.inputs.phone;\r\n this.visitor.email = this.inputs.email;\r\n }\r\n\r\naddInputField() {\r\n if (this.children.length < 100) {\r\n const newChildFullName = `fullNameChild${this.children.length +0}`;\r\nthis.children.push({fullName:''});\r\n }\r\n }\r\n\r\n removeInputField(index: number) {\r\n if (index >= 0 && index < this.children.length) {\r\n const childFullNameToRemove = `fullNameChild${index + 1}`;\r\n delete this.inputs[childFullNameToRemove]; \r\n this.children.splice(index, 1);\r\n }\r\n }\r\n\r\n gotoNextField(nextElement){\r\n nextElement.setFocus();\r\n }\r\n\r\n addChild() {\r\n this.addedChild = new VisitorChild();\r\n this.addedChild.fullName = this.inputs.fullName;\r\n }\r\n\r\n shouldEnableField(index: number): boolean {\r\n return !this.inputs['fullNameChild' + (index + 1)] || this.inputs['fullNameChild' + (index + 1)].trim() === '';\r\n }\r\n \r\n areNamesValid(): boolean {\r\n for (let i = 0; i < this.children.length; i++) {\r\n const inputName = this.inputs['fullNameChild' + (i + 1)];\r\n if (inputName && !/^[a-zA-Z]+\\s[a-zA-Z ]+$/.test(inputName)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n } \r\n \r\n}\r\n\r\n","import { Component } from '@angular/core';\r\nimport { PlayroomService } from '../../services/playroom.service';\r\n@Component({\r\n selector: 'app-select-room-page',\r\n templateUrl: './select-room.page.html',\r\n styleUrls: ['./select-room.page.scss'],\r\n})\r\n\r\nexport class SelectRoomPage {\r\n\r\n playrooms$ = this.roomService.playrooms$;\r\n\r\n constructor(private roomService: PlayroomService) {}\r\n\r\n ngOnInit() {\r\n this.roomService.getAllPlayrooms();\r\n }\r\n\r\n roomSelected(e) {\r\n sessionStorage.selectedRoom = e.detail.value;\r\n }\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-registration',\r\n templateUrl: './registration.component.html',\r\n styleUrls: ['./registration.component.css']\r\n})\r\nexport class RegistrationComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { RouteReuseStrategy, RouterModule } from '@angular/router';\r\n\r\nimport { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\r\n\r\nimport { CodeInputModule } from 'angular-code-input';\r\nimport { NotifierModule } from 'angular-notifier';\r\n\r\n// pages\r\nimport { SelectRoomPage } from './pages/select-room/select-room.page';\r\nimport { LandingPage } from './pages/landing/landing.page';\r\nimport { RegisterPage } from './pages/register/register.page';\r\nimport { GroupRegistrationPage } from './pages/group-registration/group-registration.page';\r\n\r\n\r\n// components\r\nimport { StartLayoutComponent } from './components/start-layout/start-layout.component';\r\nimport { AddChildModalComponent } from './components/modals/add-child-modal/add-child-modal.component';\r\nimport { ConsentComponent } from './consent/consent/consent.component';\r\nimport { ConsentGroupVisitComponent } from './consent-group-visit/consent-group-visit.component';\r\n\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\n\r\nimport { IonicStorageModule } from '@ionic/storage-angular';\r\nimport { RegistrationComponent } from './registration.component';\r\nimport { RegistrationLoginPage } from './pages/login/login.page';\r\nimport { OnlineRegistrationComponent } from './pages/online-registration/online-registration/online-registration.component';\r\nimport { OnlineConsentComponent } from './pages/online-registration/online-consent/online-consent.component';\r\n\r\nexport function createTranslateLoader(http: HttpClient) {\r\n return new TranslateHttpLoader(http, 'assets/i18n/', '.json');\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n RegistrationComponent, SelectRoomPage, RegistrationLoginPage, LandingPage, RegisterPage, GroupRegistrationPage, StartLayoutComponent, AddChildModalComponent, ConsentComponent, ConsentGroupVisitComponent, OnlineRegistrationComponent, OnlineConsentComponent\r\n ],\r\n entryComponents: [],\r\n imports: [\r\n BrowserModule,\r\n IonicModule.forRoot(),\r\n RouterModule,\r\n HttpClientModule,\r\n FormsModule, ReactiveFormsModule,\r\n CodeInputModule,\r\n NotifierModule,\r\n IonicStorageModule.forRoot(),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: (createTranslateLoader),\r\n deps: [HttpClient]\r\n }\r\n }),\r\n ]\r\n})\r\nexport class RegistrationModule {}\r\n","/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport {map} from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class PlayroomService {\r\n\r\n apiUrl = environment.apiUrl;\r\n private playroomsSource = new ReplaySubject(1);\r\n playrooms$ = this.playroomsSource.asObservable();\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getAllPlayrooms() {\r\n return this.http.get(this.apiUrl + 'room').pipe(map((rooms) => {\r\n if(rooms) {\r\n this.playroomsSource.next(rooms);\r\n }\r\n })).toPromise();\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Visitor } from '../models/visitor.model';\r\nimport { VisitorChild } from '../models/visitorChild';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class VisitorService {\r\n\r\n apiUrl = environment.apiUrl;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n saveVisitor(visitor: Visitor, combineDate: Array, signatureFile) {\r\n const formData = new FormData();\r\n Object.keys(visitor).forEach(key => formData.append(key, visitor[key]));\r\n formData.append(\"children\", JSON.stringify(combineDate));\r\n if(sessionStorage.selectedRoom) {\r\n formData.append('roomId', sessionStorage.selectedRoom);\r\n }\r\n formData.append('signature', signatureFile, `${visitor.fullName.replace(/\\s/g,'_')}${visitor.phone}.pdf`)\r\n return this.http.post(this.apiUrl + 'visitor', formData);\r\n }\r\n\r\n saveGroupRegistration(visitor: Visitor, visitors: Array, signatureFile) {\r\n const formData = new FormData();\r\n //Object.keys(visitor).forEach(key => formData.append(key, visitor[key]));\r\n formData.append(\"LeaderFullName\", visitor.fullName);\r\n formData.append(\"children\", JSON.stringify(visitors));\r\n formData.append(\"email\", visitor.email);\r\n formData.append(\"phone\", visitor.phone);\r\n formData.append(\"address\", visitor.address);\r\n formData.append(\"city\", visitor.city);\r\n if(sessionStorage.selectedRoom) {\r\n formData.append('roomId', sessionStorage.selectedRoom);\r\n }\r\n formData.append('signature', signatureFile, `${visitor.fullName.replace(/\\s/g,'_')}${visitor.phone}.pdf`)\r\n return this.http.post(this.apiUrl + 'groupvisit', formData);\r\n }\r\n}\r\n","/* eslint-disable prefer-arrow/prefer-arrow-functions */\r\n/* eslint-disable no-var */\r\n/* eslint-disable @typescript-eslint/dot-notation */\r\n/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport {map} from 'rxjs/operators';\r\nimport { User } from '../models/user.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AccountService {\r\n\r\n homepageRoutes = {\r\n Admin: '/',\r\n Manager: '/admin/manage-users',\r\n Employee: '/admin/manage-visits'\r\n }\r\n\r\n apiUrl = environment.apiUrl;\r\n private currentUserSource = new ReplaySubject(1);\r\n currentUser$ = this.currentUserSource.asObservable();\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n login(model: any) {\r\n return this.http.post(this.apiUrl + 'user/login', model).pipe(\r\n map((tokenRes) =>{\r\n if (tokenRes) {\r\n const user = {...this.parseJwt(tokenRes['token']), token: tokenRes['token']};\r\n localStorage.setItem('loggedUser', JSON.stringify(user));\r\n this.currentUserSource.next(user);\r\n return user;\r\n }\r\n })\r\n );\r\n }\r\n\r\n parseJwt(token) {\r\n var base64Url = token.split('.')[1];\r\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n\r\n return JSON.parse(jsonPayload);\r\n };\r\n\r\n setCurrentUser(user: User) {\r\n this.currentUserSource.next(user);\r\n }\r\n\r\n logout() {\r\n localStorage.removeItem('loggedUser');\r\n this.currentUserSource.next(null);\r\n }\r\n\r\n isAdminWithoutRoom() {\r\n let isAdminWithoutRoom = true;\r\n this.currentUser$.subscribe(jwt => {\r\n const user = this.parseJwt(jwt['token'])\r\n const roomId = parseInt(user['roomId']);\r\n if(roomId && roomId > 0) {\r\n isAdminWithoutRoom = false;\r\n }\r\n })\r\n return isAdminWithoutRoom;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Storage } from '@ionic/storage-angular';\r\nimport { ReplaySubject } from 'rxjs';\r\n\r\nconst LNG_KEY = 'PLAYROOM_LANG';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class LanguageService {\r\n\r\n private langSource = new ReplaySubject(1);\r\n language$ = this.langSource.asObservable();\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n private storage: Storage\r\n ) {}\r\n\r\n setInitialAppLanguage() {\r\n let language = this.translate.getBrowserLang();\r\n this.translate.setDefaultLang(language);\r\n\r\n this.storage.get(LNG_KEY).then(val => {\r\n if (val) {\r\n this.setLanguage(val);\r\n this.langSource.next(val);\r\n } else {\r\n this.langSource.next(language);\r\n }\r\n })\r\n }\r\n\r\n setLanguage(lng) {\r\n this.translate.use(lng);\r\n this.langSource.next(lng);\r\n this.storage.set(LNG_KEY, lng)\r\n }\r\n}","export const validateAddUser = (user) => {\r\n let errMsg: string;\r\n if (!/^[a-z0-9_\\.]+$/.exec(user.username) || user.username?.length < 4) {\r\n errMsg =\r\n 'Korisničko ime mora imati barem 4 karaktera, od kojih su dozvoljeni: mala slova, brojevi, tačka i donja crta.';\r\n } else if (!user.role) {\r\n errMsg = 'Odaberite ulogu korisnika.';\r\n } else if (user.role === 'Employee' && (!user.managerId)) {\r\n errMsg = 'Morate odabrati menadžera.';\r\n } else {\r\n errMsg = '';\r\n return { isValid: true, errMsg };\r\n }\r\n return { isValid: false, errMsg };\r\n};\r\n\r\nexport const validateEditUser = (user) => {\r\n let errMsg: string;\r\n if (!/^[a-z0-9_\\.]+$/.exec(user.username) || user.username?.length < 4) {\r\n errMsg =\r\n 'Korisničko ime mora imati barem 4 karaktera, od kojih su dozvoljeni: mala slova, brojevi, tačka i donja crta.';\r\n } else if (user.firstName?.length < 2 || user.lastName?.length < 2) {\r\n errMsg = 'Ime i prezime moraju imati barem 2 karaktera.';\r\n } else if (!user.idCardNo) {\r\n errMsg = 'Unesite broj lične karte.';\r\n } else if (user.address?.length < 5) {\r\n errMsg = 'Unesite ispravnu adresu.';\r\n } else if (!user.role) {\r\n errMsg = 'Odaberite ulogu korisnika.';\r\n } else if (user.role === 'Employee' && !user.managerId) {\r\n errMsg = 'Morate odabrati menadžera';\r\n } else {\r\n errMsg = '';\r\n return { isValid: true, errMsg };\r\n }\r\n return { isValid: false, errMsg };\r\n};\r\n\r\nexport const validateRoom = (room) => {\r\n let errMsg: string;\r\n if ( room.roomName?.length < 2) {\r\n errMsg = 'Unesite ime igraonice.';\r\n } else if (!room.workingHoursFrom || !room.workingHoursTo) {\r\n errMsg = 'Unesite radno vreme igraonice.';\r\n } else if (!room.phone) {\r\n errMsg = 'Unesite broj telefona';\r\n } else if (room.address?.length < 5) {\r\n errMsg = 'Unesite ispravnu adresu.';\r\n } else if(!room.managerId) {\r\n errMsg = 'Morate odabrati menadžera za igraonicu.';\r\n } else {\r\n errMsg = '';\r\n return { isValid: true, errMsg };\r\n }\r\n return { isValid: false, errMsg };\r\n};\r\n\r\nexport const validateVisit = (visit) => {\r\n let errMsg: string;\r\n if (!visit.leave) {\r\n errMsg = 'Unesite vreme izlaska iz igraonice.';\r\n } else{\r\n errMsg = '';\r\n return { isValid: true, errMsg };\r\n }\r\n return { isValid: false, errMsg };\r\n};\r\nexport const validateRamp = (ramp) => {\r\n let errMsg: string;\r\n if ( ramp.brojRampe?.length < 4) {\r\n errMsg = 'Unesite naziv rampe.';\r\n \r\n } \r\n else if( !ramp.roomId)\r\n {\r\n errMsg = 'Morate odabrati igraonicu.';\r\n\r\n } \r\n else if(( ramp.izlazna==false && ramp.ulazna==false) )\r\n {\r\n errMsg = 'Morate odabrati Rampu.';\r\n\r\n }\r\n else {\r\n errMsg = '';\r\n return { isValid: true, errMsg };\r\n }\r\n return { isValid: false, errMsg };\r\n};\r\nexport const validateStaffCard = (staffCard) => {\r\n let errMsg: string;\r\n if ( staffCard.fullName?.length < 4) {\r\n errMsg = 'Unesite naziv .';\r\n \r\n } \r\n else if( staffCard.roomIds === undefined || staffCard.roomIds.length == 0)\r\n {\r\n errMsg = 'Morate odabrati igraonicu.';\r\n\r\n } \r\n else if(( staffCard.izlazna==false ) )\r\n {\r\n errMsg = 'Morate odabrati da li dozvoljenja.';\r\n\r\n }\r\n else {\r\n errMsg = '';\r\n return { isValid: true, errMsg };\r\n }\r\n return { isValid: false, errMsg };\r\n};","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n apiUrl: 'https://cosmoplayroom.azurewebsites.net/'\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n","var map = {\n\t\"./ion-accordion_2.entry.js\": [\n\t\t70079,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-accordion_2_entry_js\"\n\t],\n\t\"./ion-action-sheet.entry.js\": [\n\t\t25593,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-action-sheet_entry_js\"\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t13225,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-alert_entry_js\"\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t4812,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-app_8_entry_js\"\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t86655,\n\t\t\"node_modules_ionic_core_dist_esm_ion-avatar_3_entry_js\"\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t44856,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-back-button_entry_js\"\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t13059,\n\t\t\"node_modules_ionic_core_dist_esm_ion-backdrop_entry_js\"\n\t],\n\t\"./ion-breadcrumb_2.entry.js\": [\n\t\t58648,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-breadcrumb_2_entry_js\"\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t98308,\n\t\t\"node_modules_ionic_core_dist_esm_ion-button_2_entry_js\"\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t44690,\n\t\t\"node_modules_ionic_core_dist_esm_ion-card_5_entry_js\"\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t64090,\n\t\t\"node_modules_ionic_core_dist_esm_ion-checkbox_entry_js\"\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t36214,\n\t\t\"node_modules_ionic_core_dist_esm_ion-chip_entry_js\"\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t69447,\n\t\t\"node_modules_ionic_core_dist_esm_ion-col_3_entry_js\"\n\t],\n\t\"./ion-datetime-button.entry.js\": [\n\t\t17950,\n\t\t\"default-node_modules_ionic_core_dist_esm_data-caf38df0_js-node_modules_ionic_core_dist_esm_th-d3ab8e\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-datetime-button_entry_js\"\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t79689,\n\t\t\"default-node_modules_ionic_core_dist_esm_data-caf38df0_js-node_modules_ionic_core_dist_esm_th-d3ab8e\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-datetime_3_entry_js\"\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t18840,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-fab_3_entry_js\"\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t40749,\n\t\t\"node_modules_ionic_core_dist_esm_ion-img_entry_js\"\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t69667,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-infinite-scroll_2_entry_js\"\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t83288,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-input_entry_js\"\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t35473,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-item-option_3_entry_js\"\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t53634,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-item_8_entry_js\"\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t22855,\n\t\t\"node_modules_ionic_core_dist_esm_ion-loading_entry_js\"\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t495,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-menu_3_entry_js\"\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t58737,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-modal_entry_js\"\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t99632,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-nav_2_entry_js\"\n\t],\n\t\"./ion-picker-column-internal.entry.js\": [\n\t\t54446,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-picker-column-internal_entry_js\"\n\t],\n\t\"./ion-picker-internal.entry.js\": [\n\t\t32275,\n\t\t\"node_modules_ionic_core_dist_esm_ion-picker-internal_entry_js\"\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t48050,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-popover_entry_js\"\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t18994,\n\t\t\"node_modules_ionic_core_dist_esm_ion-progress-bar_entry_js\"\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t23592,\n\t\t\"node_modules_ionic_core_dist_esm_ion-radio_2_entry_js\"\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t35454,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-range_entry_js\"\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t290,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-refresher_2_entry_js\"\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t92666,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-reorder_2_entry_js\"\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t64816,\n\t\t\"node_modules_ionic_core_dist_esm_ion-ripple-effect_entry_js\"\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t45534,\n\t\t\"node_modules_ionic_core_dist_esm_ion-route_4_entry_js\"\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t94902,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-searchbar_entry_js\"\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t91938,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-segment_2_entry_js\"\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t78179,\n\t\t\"node_modules_ionic_core_dist_esm_ion-select_3_entry_js\"\n\t],\n\t\"./ion-slide_2.entry.js\": [\n\t\t90668,\n\t\t\"node_modules_ionic_core_dist_esm_ion-slide_2_entry_js\"\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t61624,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-spinner_entry_js\"\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t19989,\n\t\t\"node_modules_ionic_core_dist_esm_ion-split-pane_entry_js\"\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t28902,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-tab-bar_2_entry_js\"\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t70199,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-tab_2_entry_js\"\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t48395,\n\t\t\"node_modules_ionic_core_dist_esm_ion-text_entry_js\"\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t96357,\n\t\t\"node_modules_ionic_core_dist_esm_ion-textarea_entry_js\"\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t38268,\n\t\t\"node_modules_ionic_core_dist_esm_ion-toast_entry_js\"\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t15269,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-toggle_entry_js\"\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t32875,\n\t\t\"node_modules_ionic_core_dist_esm_ion-virtual-scroll_entry_js\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 50863;\nmodule.exports = webpackAsyncContext;"],"names":["Component","Router","ModalController","UserService","validateEditUser","EditUserModalComponent","constructor","modalController","userService","router","curentPage","ngOnInit","user","managerId","id","resetUserPassword","resetPassword","subscribe","res","passwordResetSuccess","editUser","formValidation","errMsg","isValid","loadusers","dismissModal","err","console","error","openResetPasswordUserModal","dismiss","modal","create","component","componentProps","cssClass","backdropDismiss","swipeToClose","present","getAllUsers","currentPage","itemsPerPage","usernameQuery","firstNameQuery","lastNameQuery","idCardNoQuery","paginationSettings$","pagSettings","paginationSettings","selector","template","AddPlayroomModalComponent","DeletePlayroomModalComponent","EditPlayroomModalComponent","PlayroomService","ManagePlayroomsPage","roomService","playrooms$","getAllPlayrooms","allUsers$","allUsers","managers","filter","e","role","openAddRoomModal","openDeleteRoomModal","room","openEditRoomModal","getFullNameOrSlash","firstName","lastName","getWorkingHours","from","Date","workingHoursFrom","toLocaleTimeString","hour","minute","hour12","to","workingHoursTo","AddRampModalComponent","DeleteRampModalComponent","EditRampModalComponent","RampService","ManageRampsPage","rampService","totalItems","ramp$","getAllRamp","ulaznaQuery","izlaznaQuery","brojRampeQuery","roomNameQuery","StatusQuery","openAddRampModal","openDeleteRampModal","ramp","openEditRampModal","rooms","AddStaffcardModalComponent","DeleteStaffcardModalComponent","EditStaffcardModalComponent","StaffcardService","ManageStaffcardsComponent","staffCardService","staffCard$","getAllStaffCard","enterQuery","fullNameQuery","openAddStaffCardModal","openDeleteStaffCardModal","staffCard","openEditStaffCardModal","AddUserModalComponent","DeleteUserModalComponent","ManageUsersPage","openAddUserModal","openDeleteUserModal","openEditUserModal","changePage","pageNumber","loadSearchResult","resetFilters","DeleteVisitorModalComponent","EditVisitorModalComponent","Visitor","VisitorService","ManageVisitorsPage","visitorService","visitors$","getAllVisitorsSearch","emailQuery","phoneQuery","visitorStatusQuery","onlyChildren","log","getArrayChildrenNames","downloadSignature","visitor","guid","signatureUrl","split","getSignature","source","URL","createObjectURL","el","document","createElement","setAttribute","fullName","replace","phone","body","appendChild","click","remove","openDeleteVisitorModal","children","openEditVisitorModal","blobToFile","data","type","fileName","a","style","display","blob","Blob","url","window","href","download","revokeObjectURL","CSV","exportCSV","pageSize","response","getVisitorStatus","value","next","arr","i","j","visitorsArray","len","length","ChildrenNamesArray","Array","FullName","push","ChildrenNames","join","ActivatedRoute","AddVisitModalComponent","EditVisitModalComponent","VisitService","environment","signalR","BlockedStatusComponent","SurchargeModalComponent","ViewQrCodeComponent","VisitsPage","visitService","route","home","signin","search","visit$","apiUrl","queryString","location","urlParams","URLSearchParams","stepParam","get","loadActiveVisits","loggedUser","JSON","parse","localStorage","getItem","roomId","selectedVisit","naPromeniCheckbox","event","sakrijKolonu","target","checked","getAllBlockedVisitors","getAllBlockedVisitorEdit","fullNameBlockedVisitorsQuery","ngOnDestroy","visitInterval","clearInterval","connection","stop","catch","changeQueryParam","step","navigate","relativeTo","queryParams","loadActiveVisitLogic","setInterval","page","getAllVisits","fullNameVisitorQuery","visitStatusQuery","loadNonActiveVisitors","selectedVisitor","changePagePagination","getTimeInside","visit","enter","now","toISOString","slice","diffMs","diffDays","Math","floor","diffHrs","diffMins","round","hrs","toString","loadSearchVisitIdResult","getAllVisitorIdSearch","loadSearchResultVisits","loadBlockedVisitors","openAddVisitModal","openEditVisitModal","passVisit","visitId","ensureSignalRConnected","state","HubConnectionState","Connected","start","then","send","openBlockedStatusModal","openSurchargeModal","onDidDismiss","onchnge","index","cl","getElementsByClassName","classList","showFormRoditelj","add","getCardType","hours","getCardByCode","code","Storage","AccountService","LanguageService","AppComponent","accountService","languageService","storage","currentUser$","initStorage","setCurrentUser","setInitialAppLanguage","ElementRef","ViewChild","IonModal","NotifierService","domtoimage","jsPDF","SignaturePad","ConsentGroupVisitComponent","elementRef","notifierService","language$","sub","params","visitors","lng","language","toUpperCase","pagePath","canvas","nativeElement","querySelector","width","height","signaturePad","clear","toggleLanguage","setLanguage","toLowerCase","isSignatured","setIsSignatured","isCanvasBlank","isEmpty","areFieldsPopulated","areTermsRead","validateAddVisitor","email","address","ngAfterViewInit","signaturePadElement","penColor","saveRegistration","isLoading","that","div","registerDoc","terms","logo","dateLabel","submitBtn","img","newImage","toJpeg","bgcolor","dataUrl","Image","src","onload","pdfWidth","pdfHeight","doc","internal","getWidth","getHeight","addImage","saveGroupRegistration","output","showSuccessAndRedirect","showErrorAndRedirect","show","message","stringify","title","navigateByUrl","args","static","ConsentComponent","visitorsFormJson","allVisitors","resetNameControl","unsubscribe","saveVisitor","VisitorChild","AddChildModalComponent","GroupRegistrationPage","childEdit","routerSubscription","events","date","month","year","v","city","areFirstFieldsPopulated","resetForm","splice","toggleDisplay","child","goToOtherPage","visitorJson","visitorsJson","gotoNextField","nextElement","setFocus","OnlineConsentComponent","innerWidth"],"sourceRoot":"webpack:///","x_google_ignoreList":[81]}